结果如下:
可以看到准确率达到了100%。
在测试集上的预测:
结果如下:
在测试集上的准确率为96.7%,30个测试样本有29个预测正确。
- 模型总结
决策树很容易出现过拟合。因为只要树的深度足够大(叶子节点足够多),我们总是能完美地拟合训练集的数据,只要我们把训练集每一个样例作为一个单独的叶子节点即可。决策树的优点是具有极高的可解释性。
6.6 集成算法
前面我们了解了如何使用决策树进行分类和回归。决策树很少会直接拿来使用,这是因为随着树的深度增大很容易发生过拟合。本节介绍的基于树的集成算法很好地解决了这一问题。集成算法是机器学习中最重要的思想之一。绝大多数集成算法都是基于树的集成算法,反过来几乎所有用到树的模型都是通过集成算法进行封装而实现的。集成算法既可以用于分类,也可以用于回归。在讲解概念时,为了方便,在没有特别说明时,我们默认讨论分类集成算法。回归问题的思路与分类问题相似。
6.6.1 集成算法简述
集成算法是将多个分类器结合而成的新的分类算法。集成算法由一系列的弱分类器(weakclassifiers)组成,这些弱分类器通常是非常简单的分类器,比如决策树。通过将这些弱分类器组合在一起,形成一个性能更强的分类器,作为最终预测的输出结果。最常见的集成学习手段有两种:Bagging和Boosting。前者的代表算法是随机森林,后者的代表算法包括Adaboost、GBDT 和 Xgboost。
Bagging和Boosting都采取了上述集成学习的思想,将若干个弱分类器进行组合。假设弱分类器有T个,那么一共就需要T轮训练。不同的是,在Bagging中,各个弱分类器的训练是并行进行的,而Boosting中的T轮训练需要依次进行。
182