现在有一个需求需要实现如下功能:
根据x,y,z的值得到状态,比如:0.5,0.1,0.2 状态是sit;0.6,0.1,0.2 状态是stand.
后来上网查到weka这个东西,因为我对算法确实不太了解,也没看懂,只能模仿。
我有一个训练样本,命名test1.arff,内容的一部分如下:
@relation test1
@attribute x numeric
@attribute y numeric
@attribute z numeric
@attribute status {sit, sit_down, stand, stand_up, walk}
@data
-0.09375,0.01178,-0.96912,sit
-0.09375,0.01178,-1.0003,sit
-0.078125,0.027283,-1.0004,sit
-0.10931,0.027283,-1.0004,sit
-0.1875,0.01178,-0.96948,sit
-0.21844,0.089783,-1.0009,sit
-0.21844,0.074158,-0.9541,sit
-0.24976,0.074341,-1.0009,sit
采集的数据我放到一个.csv文件中,命名testcsv.csv,内容如下:
x y z
-0.31317 -0.15991 -0.92328
-0.34442 -0.15991 -0.92328
-0.34442 -0.15991 -0.92328
-0.34442 -0.15997 -0.9389
-0.34442 -0.15997 -0.92328
-0.34442 -0.17554 -0.92322
-0.32886 -0.17554 -0.92322
-0.3288 -0.15985 -0.90759
-0.34442 -0.15997 -0.9389
-0.34442 -0.1756 -0.92328
-0.34448 -0.15991 -0.92322
现在就是想能通过weka的朴素贝叶斯算法,根据训练样本数据的状态分类,得到我采集的这些数据的状态。请问该如何实现呢。
// 读入训练样本
File file = new File("D:\wekaTest\test1.arff");
ArffLoader loader = new ArffLoader();
loader.setFile(file);
ins = loader.getDataSet();
ins.setClassIndex(ins.numAttributes() - 1);
// 初始化分类器
cfs = (Classifier) Class.forName("weka.classifiers.bayes.NaiveBayes").newInstance();
// 使用训练样本进行分类
cfs.buildClassifier(ins);
System.out.println(cfs.toString());
下面就不会写了。。。。
非常着急啊,weka的API也没看懂,全英文。。。
请大神指点。