决策树使用“如果-则”语句(if-then statements)来定义数据中的规律。例如,如果一栋房子的海拔高于某个数据,则该房子位于旧金山。 在机器学习中,这些条件被称为分支(forks)。分支根据某些维度值把数据分成两个支路(branches),这个值被称为分割点(split point)。在这个分割点左边的数据被归入一类,右边的被归入另一类。分割点即是决策树的分界。 权衡
选择分割点时需要权衡。我们最初选择的分割点(海拔240ft)就把很多旧金山的房子错误划分为纽约市的了。 上面的饼状图里绿色的部分就是错误划分到旧金山的房子,这些分错的样本叫做假负类(false negative)。 但是,如果一个分割点把所有的旧金山的房子都正确划分,那它就会同时错误地把许多纽约市的房子也包括进来,这类错误叫做假正类( false positives)。 最佳分割点
最佳的分割点应该使每个分支的分类结果尽可能均质(homogeneous)。统计学中有几种方法可以用来计算最佳分割点。 如上图所示,一个特征的最佳分割点还不能完全正确地把旧金山和纽约的房子区分开来。 递归
为了增加另一个分割点,算法在第一个分支后的子数据集中重复上述过程。机器学习中,这种重复叫做递归(recursion),是训练模型时常用的方法。 新分支的最佳分割点取决于各边的数据。例如,在左边海拔较低的分支,最佳分割维度是每平方英尺价格,分割点在$1061 per sqft,在右边海拔较高的分支,最佳分割维度是房价,分割点在$514500。 栽培决策树
增加分支意味着增加新信息,从而提高决策树的预测准确性(prediction accuracy)。在本例中,增加一层决策树的准确性提高到84%。再加几层,准确性达到96% 我们甚至可以继续增加分支,直到决策树的准确度达到100%。这样,决策树末梢的所有分类结果都纯粹地属于旧金山或纽约。 决策树的这些末梢又叫叶节点(leaf nodes)。决策树模型对每个叶节点里的数据(房子)的分类取决于其中的多数派。 作出预测
训练好的决策树模型通过把数据集里的每一栋房子(图示的点/数据)从根部顺着分支走到叶节点进行分类,叶节点属于哪一类,这个数据就属于哪一类。每条路径都有决定预测分类的规则(if-then语句)。 这些数据叫做训练数据(training data),因为它们是用来训练模型的。由于我们这个决策树是用这些训练数据训练出来的,所以这个决策树分类训练数据的准确率当然是100%。 用真实数据测试
用真实数据测试是指用决策树未见过的数据(previously-unseen data)来做分类任务,这类数据叫做测试数据(test data)。 理想情况下,决策树对测试数据的分类的准确性应该和训练数据的结果差距不大。在这个例子中,我们的模型得到了89.7%的正确率,如此看来这个决策树做得不算很好。 (责任编辑:本港台直播) |