集成学习模型 | 更文挑战

226 阅读3分钟

“这是我参与更文挑战的第28天,活动详情查看: 更文挑战

集成学习模型使用一系列弱学习器(也称为基础模型或基模型)进行学习,并将各个弱学习器的结果进行整合,从而获得比单个学习器更好的学习效果。集成学习模型的常见算法有Bagging算法和Boosting算法两种。

随机森林模型的基本原理

随机森林(Random Forest)是一种经典的Bagging模型,其弱学习器为决策树模型。

1.数据随机

所有数据当中有放回地随机抽取数据作为其中一个决策树模型的训练数据。例如,有1000个原始数据,有放回地抽取1000次,构成一组新的数据,用于训练某一个决策树模型。

2.特征随机

如果每个样本的特征维度为M,指定一个常数k<M,随机地从M个特征中选取k个特征。在使用Python构造随机森林模型时,默认选取特征的个数k为根号M。

与单独的决策树模型相比,随机森林模型由于集成了多个决策树,其预测结果会更准确,且不容易造成过拟合现象,泛化能力更强。

随机森林分类模型的演示代码如下。

from sklearn.ensemble import RandomForestClassifier
X = [[1,2],[3,4],[5,6],[7,8],[9,10]]
y = [0,0,0,1,1]

model = RandomForestClassifier(n_estimators=10,random_state=213)
model.fit(X,y)

print(model.predict([[5,5]]))

第1行代码引入随机森林分类模型相关库RandomForestClassifier。

第2行代码中的X是特征变量,共有2个特征。

第3行代码中的y是目标变量,共有2个分类——0和1。

第5行代码引入模型,并设置弱学习器的数量n_estimators为10,即共有10个决策树模型作为弱学习器;设置random_state为123,使得每次运行结果一致(如果不设置则可能出现每次预测结果不一样的情况,这是因为随机森林遵循“数据随机”和“特征随机”的基本原则)。

第6行代码用fit()函数训练模型。

第8行代码用predict()函数进行预测,预测结果如下。

[0]

随机森林回归模型的演示代码如下。

from sklearn.ensemble import RandomForestRegressor
X = [[1,2],[3,4],[5,6],[7,8],[9,10]]
y = [1,2,3,4,5]

model = RandomForestRegressor(n_estimators=10,random_state=123)
model.fit(X,y)

print(model.predict([[5,5]]))

第1行代码引入随机森林回归模型相关库RandomForestRegressor。

第2行代码中的X是特征变量,共有2个特征

第3行代码中的y是目标变量,它是一个连续值。

第5行代码引入模型,并设置弱学习器的数量n_estimators为10,即共有10个决策树模型作为弱学习器;设置random_state为123,使得每次运行结果一致。

第6行代码用fit()函数训练模型。

第8行代码用predict()函数进行预测,预测结果如下。

[2.8]