决策树集成
集成是合并多个机器学习模型来构建更强大模型的方法。
两种集成模型:随机森林和梯度决策树。
随机森林
构造很多树(确定用于构造的树的个数),并且每棵树的预测都很好,但都以不同的方式过拟合,那么可以对这些树的结果取平均值来降低过拟合。随机森林中树的随机化方法有两种:
- 通过选择用于构造树的数据点,即对数据进行自助采样
- 通过选择每次划分测试的特征,即在每个结点处算法随机选择特征的一个子集,并对其中的一个特征寻找最佳测试
对于回归问题,对每棵树的预测结果取平均值作为最终预测。
对于分类问题,采取软投票策略。
随机森林中树的深度往往比决策树还要大,可以使用n_jobs = -1来使用计算机的所有内核。它不擅长处理维度非常高的稀疏数据。对于分类,默认值是max_features = sqrt(n_features);对于回归,默认值是max_features = n_features。
#将由五棵树组成的随机森林应用到前面研究过的two_moons数据集上
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import mglearn
X,y = make_moons(n_samples = 100, noise = 0.25, random_state = 3) #从100个数据点中自助采样
X_train,X_test,y_train,y_test = train_test_