Mengubah CSV menjadi ARFF WEKA

By | August 1, 2021
63 Views

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

 

Leave a Reply

Your email address will not be published.




Enter Captcha Here :