WEKA
WEKA のページ (http://www.cs.waikato.ac.nz/ml/weka/)中の Download から "Other platforms (Linux etc.)"用の weka-3-6-3.zip をダウンロード.ただし,張られているリンク先は weka-3-6-2.zip のため,http://prdownloads.sourceforge.net/weka/weka-3-6-3.zip へ直接アクセス.
Download のページに書かれているとおり,weka-3-6-3.zip を unzip し,起動すると,GUI のソフトが動作した.
API の利用
Iris データを Naive Bayes により分類する.学習データと同じ値をもつデータを事例(テストサンプル)として与えた結果,正しく分類された.
import weka.classifiers.Classifier; import weka.classifiers.Evaluation; import weka.classifiers.bayes.NaiveBayes; import weka.core.Attribute; import weka.core.Instance; import weka.core.Instances; import weka.core.converters.ConverterUtils.DataSource; public class WekaTest { public static void main(String[] args) { try { //データセットとして Iris データを用いる DataSource source = new DataSource("iris.arff"); Instances instances = source.getDataSet(); instances.setClassIndex(4); // クラスの次元 //分類器の生成 Classifier classifier = new NaiveBayes(); classifier.buildClassifier(instances); //分類器を評価する Evaluation eval = new Evaluation(instances); eval.evaluateModel(classifier, instances); System.out.println(eval.toSummaryString()); //事例(テストデータ)の属性を設定 Attribute sepallength = new Attribute("sepallength", 0); Attribute sepalwidth = new Attribute("sepalwidth", 1); Attribute petallength = new Attribute("petallength", 2); Attribute petalwidth = new Attribute("petalwidth", 3); //事例(テストデータ)の値を設定 //(メモ)学習データのうち,Iris-versicolor クラスの1個目の値をセットする. // classifyInstance() の結果は 1.0 となるはず. Instance instance = new Instance(4); // 属性数 (4次元) instance.setValue(sepallength, 7.0); instance.setValue(sepalwidth, 3.2); instance.setValue(petallength, 4.7); instance.setValue(petalwidth, 1.4); instance.setDataset(instances); //事例を分類させて結果を得る double result = classifier.classifyInstance(instance); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } }
結果は以下のとおり.クラス2(1.0)と判定された.
$ java -cp weka-3-6-3/weka.jar:. WekaTest Correctly Classified Instances 144 96 % Incorrectly Classified Instances 6 4 % Kappa statistic 0.94 Mean absolute error 0.0324 Root mean squared error 0.1495 Relative absolute error 7.2883 % Root relative squared error 31.7089 % Total Number of Instances 150 1.0
追記
WEKA は,Ubuntu 10.04 のパッケージにも入っていました.バージョンは 3.6.0.