Mengubah CSV menjadi ARFF WEKA – Format data berbasis tabular yang paling sering digunakan yaitu CSV/XML/JSON karena independent OS/machine. Kalau menggunakan office, kita biasa menggunakan excel/xlsx. Berbicara mengenai machie learning java biasanya data science menggunakan WEKA dan menggunakan file berupa *.atrr
WEKA
Merupakan tools machine learning yang ditulis menggunakan java, ada banyak sekali algoritma yang dikembangkan. Terkadang butuh cepat juga dalam analisis data, nah daripada coding mulu pakai python / R / Octave / Matlab maka WEKA sudah sangat bagus. WEKA adalah opensource sehingga bisa kita menggunakan library weka di kode java.
WEKA Gradle
Repositori weka sudah bisa kita gunakan di gradle, cukup ketikan perintah berikut
implementation group: 'nz.ac.waikato.cms.weka', name: 'weka-stable', version: '3.8.0'
Kita akan mengubah file .csv menjadi .atrr, misalkan kita punya file D:/dataset.csv seperti berikut yang berisi
No,File,B,G,R,Kelas,Keterangan 0,IMG20210729165327_00.jpg,47,61,91,0.0,Matang 1,IMG20210729165339_00.jpg,45,59,86,0.0,Matang 2,IMG20210729165350_00.jpg,44,65,88,0.0,Matang
akan diubah menjadi format *.arff WEKA yang disimpan dengan nama D:/dataset.arff secara programatically java
@relation dataset @attribute No numeric @attribute File {IMG20210729165327_00.jpg,IMG20210729165339_00.jpg,IMG20210729165350_00.jpg} @attribute B numeric @attribute G numeric @attribute R numeric @attribute Kelas numeric @attribute Keterangan {Matang} @data 0,IMG20210729165327_00.jpg,47,61,91,0,Matang 1,IMG20210729165339_00.jpg,45,59,86,0,Matang 2,IMG20210729165350_00.jpg,44,65,88,0,Matang
Maka kode yang digunakan yaitu
CSVLoader loader = new CSVLoader(); try { loader.setSource(new File("D:/dataset.csv")); Instances trainingDataSet = loader.getDataSet(); // save ARFF ArffSaver saver = new ArffSaver(); saver.setInstances(trainingDataSet); String filename = "D:/dataset.arff"; saver.setFile(new File(filename)); saver.writeBatch(); } catch (IOException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); }
Cukup mudah bukan? langkah selanjutnya kalian langsung bisa menggunakan *.arff di WEKA secara programatical java
Referensi
- https://www.programcreek.com/java-api-examples/?api=weka.core.converters.CSVLoader
- https://stackoverflow.com/questions/44979355/how-can-i-load-a-csv-file-in-java-code-to-test-with-weka