把它放在一起訓練一棵樹

樹可以構建可以處理獨立特徵和二階效應的模型。所以他們可能是這個領域的好候選人。樹是一起連結的規則,規則將在子組中達到規則的例項分開,傳遞給規則下的規則。

樹形學習者生成規則,將它們連結在一起並在他們覺得規則過於具體時停止構建樹木,以避免過度擬合。過度擬合意味著構建一個對我們正在尋找的概念過於複雜的模型。過度擬合的模型在列車資料上表現良好,但新資料表現不佳

我們使用 J48,一種流行的演算法 C4.5 的 JAVA 實現。

//We train a tree using J48
//J48 is a JAVA implementation of the C4.5 algorithm
J48 classifier4 = new J48();
//We set it's confidence level to 0.1
//The confidence level tell J48 how specific a rule can be before it gets pruned
classifier4.setOptions(weka.core.Utils.splitOptions("-C 0.1"));
classifier4.buildClassifier(trainset);
// Next we test it against the testset
Test = new Evaluation(trainset);
Test.evaluateModel(classifier4, testset);
System.out.println(Test.toSummaryString());

System.out.print(classifier4.toString());

//We set it's confidence level to 0.5
//Allowing the tree to maintain more complex rules
classifier4.setOptions(weka.core.Utils.splitOptions("-C 0.5"));
classifier4.buildClassifier(trainset);
// Next we test it against the testset
Test = new Evaluation(trainset);
Test.evaluateModel(classifier4, testset);
System.out.println(Test.toSummaryString());
     
System.out.print(classifier4.toString());

以最高置信度訓練的樹木學習者生成最具體的規則,並且在測試集上具有最佳效能,顯然特定性是有保證的。

StackOverflow 文件 StackOverflow 文件

注意:兩個學習者都以花瓣寬度為準。還記得我們如何在視覺化中注意到這個維度?