菜菜的机器学习sklearn实战-----集成学习----随机森林
菜菜的机器学习sklearn实战-----集成学习----随机森林
集成学习
集成学习算法概述
集成学习是通过建立很多模型,集成各个模型的结果和参数来提升最终模型的效果
集成算法会考虑多个评估的建模结果,汇总得到最终的评估结果
Bagging和Boosting

sklearn中的集成学习算法
sklearn中的集成算法模块ensemble

随机森林
是一个Bagging算法,每个基评估器都是一个决策树
bagging是对基评估器的预测结果进行平均或者用多数表决原则来决定集成评估器的结果
使用Bagging时,基分类器是相互独立的,是不相同的
RandomForestClassifier
重要参数
控制基评估器的参数

n_estimators
控制基评估器的数量,通常都是越大越好,但是受困于计算量的限制。
默认值为10或者100,一般我们去0到200
来建一片森林吧
%matplotlib inline
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
wine = load_wine()
wine.data.shape
Xtrain,Xtest,Ytrain,Ytest = train_test_split(wine.data,wine.target,test_size = 0.3)
clf = DecisionTreeClassifier(random_state=0)
rfc = RandomForestClassifier(random_state=0)
clf = clf.fit(Xtrain,Ytrain)
rfc = rfc.fit(Xtrain,Ytrain)
score_c = clf.score(Xtest,Ytest)
score_r = rfc.score(Xtest,Ytest)
print("Single Tree:",format(score_c))
print("Random Forest:",format(score_r))
交叉验证 cross_val_score
from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt
rfc = RandomForestClassifier(n_estimators=25)
rfc_s = cross_val_score(rfc,wine.data,wine.target,cv=10)
clf = DecisionTreeClassifier()
clf_s = cross_val_score(clf,wine.data,wine.target,cv=10)
plt.plot(range(1,11),rfc_s,label="RandomForest")
plt.plot(range(1,11),


4768

被折叠的 条评论
为什么被折叠?



