svmtest
svmtest
Classifier m_classifier = new LibSVM();
使用父類 分類器 實例化svm類
ArffLoader atf = new ArffLoader();
arff文件裝載器
裝載arff分兩種,第一種訓(xùn)練模型用的訓(xùn)練文件,第二種測試模型用的測試文件,這里訓(xùn)練文件為test,測試文件為test2
atf.setFile(inputFile);
arff文件裝載器,第一步設(shè)置文件路徑,然后使用getDataSet()方法獲取文件中的數(shù)據(jù)集合,數(shù)據(jù)集合放在weka自定義的數(shù)據(jù)結(jié)構(gòu)Instances中
Instances instancesTrain = atf.getDataSet();
數(shù)據(jù)集.numAttributes()獲取數(shù)據(jù)集的列數(shù)
數(shù)據(jù)集.numInstances()獲取數(shù)據(jù)集的行數(shù)
instancesTrain.setClassIndex(instancesTrain.numAttributes()-1);
獲取數(shù)據(jù)集后,需要設(shè)置數(shù)據(jù)集中的指針,將其指向數(shù)據(jù)集中列的最后一位。因為調(diào)用算法處理時,算法只會處理指針范圍內(nèi)的列,也就是說,如果一張表有50列,指針指向8,那么算法只會處理1-8,具體到數(shù)據(jù)中的下標,就是0-7,這也是需要獲取列數(shù)后-1的原因。
m_classifier.buildClassifier(instancesTrain); //訓(xùn)練
調(diào)用算法,輸入數(shù)據(jù)集,通過數(shù)據(jù)訓(xùn)練形成模型
m_classifier.classifyInstance(instancesTest.instance(i))
分類器給定的實例測試方法,輸入單條數(shù)據(jù),返回0 1
固定代碼塊
輸出arff文件
//設(shè)置輸出文檔路徑
File file2=new File("E://java//test.arff");
//實例化操作類
ArffSaver saver=new ArffSaver();
//獲取數(shù)據(jù)源
saver.setInstances(dataInsatnces);
//建立輸出文件
saver.setFile(file2);
//打印數(shù)據(jù)源數(shù)據(jù)到目標文件
saver.writeBatch();
zk.classifiers.Classifier cModel = new zk.classifiers.bayes.NaiveBayes();
cModel.buildClassifier(dataInsatnces);
//4.測試分類器
??
Evaluation eTest = new Evaluation(dataInsatnces);
eTest.evaluateModel(cModel, dataInsatnces);
??
//打印測試結(jié)果
System.out.println(eTest.toSummaryString());
?
logistic.java
建立模型函數(shù)
buildClassifier(Instances train)
獲取測試類的實例化對象,在調(diào)用測試方法來測試傳入的數(shù)據(jù)集
getCapabilities().testWithFail(train);
將數(shù)據(jù)集中,所有有缺失數(shù)據(jù)的記錄刪除,自帶的清洗功能
train = new Instances(train);
train.deleteWithMissingClass();
獲取過濾規(guī)則
m_ReplaceMissingValues = new ReplaceMissingValues();
設(shè)定過濾規(guī)則對象
m_ReplaceMissingValues.setInputFormat(train);
靜態(tài)過濾器裝載過濾對象及過濾規(guī)則
train = Filter.useFilter(train, m_ReplaceMissingValues);
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/Anroam/p/3302909.html
總結(jié)
- 上一篇: xml入门简介--两天学会xml
- 下一篇: Sublime Text 2 中怎样查找