把它放在一起训练一棵树

树可以构建可以处理独立特征和二阶效应的模型。所以他们可能是这个领域的好候选人。树是一起链接的规则,规则将在子组中达到规则的实例分开,传递给规则下的规则。

树形学习者生成规则,将它们链接在一起并在他们觉得规则过于具体时停止构建树木,以避免过度拟合。过度拟合意味着构建一个对我们正在寻找的概念过于复杂的模型。过度拟合的模型在列车数据上表现良好,但新数据表现不佳

我们使用 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 文档

注意:两个学习者都以花瓣宽度为准。还记得我们如何在可视化中注意到这个维度?