2.随机森林Random Forest

前提是你 提交于 2020-01-01 02:39:43

今天学了菜菜第二章,随机森林。顺便回顾了昨天学的决策树。

具体学到了什么 总结到下面用代码和注释的形式给出,相当于给自己理清楚思路。

划分训练集和测试集的代码:

from sklearn.model_selection import train_test_split
Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)
# 划分为训练集和测试集的代码

 建随机森林的代码(三行):

rfc=RandomForestClassifier(random_state=0)
rfc=rfc.fit(Xtrain,Ytrain)
score_r=rfc.score(Xtest,Ytest)
# 建随机森林来分析的代码

建决策树的代码(三行):

clf=DecisionTreeClassifier(random_state=0)
clf=clf.fit(Xtrain,Ytrain)
score_c=clf.score(Xtest,Ytest)
# 建决策树来分析的代码

交叉验证法(也叫k折交叉验证法)的用法:

rfc_l = []

for i in range(10):
    rfc = RandomForestClassifier(n_estimators=25)
    rfc_s = cross_val_score(rfc, wine.data, wine.target, cv=10).mean() 
    rfc_l.append(rfc_s)


#     定义列表 用来存每次评测的分数

#     n_estimators是森林中树木的数量,即基评估器的数量
#     cross_val_score是交叉验证法(cross validation),

#     也叫k折交叉验证法。参数:(随机森林,数据,标签,cv)  cv:每次的测试折数
#     append用法:在列表后插入括号里面的数值

 把十折交叉验证的结果画成图:

import matplotlib.pyplot as plt
# 画图用plot,在matplotlib的子库pyplot里

plt.plot(range(1,11),rfc_l,label = "Random Forest") 
plt.plot(range(1,11),clf_l,label = "Decision Tree") 
# plt画图的语句 标准写法

plt.legend()
plt.show()

随机森林的四个重要属性:

rfc.feature_importances_
# 是返回特征的重要性
# 这个属性最重要

rfc.apply(Xtest)
# apply中输入测试集 返回每个测试样本所在的叶子结点的索引

rfc.predict(Xtest)
# 输入测试集 返回每个测试样本的标签

rfc.predict_proba(Xtest)
# 这个接口返回每个测试样本对应的被分到每一类标签的概率,
# 标签有几个分类 就返回几个概率。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!