当前位置:   article > 正文

随机森林在sklearn中的实现和调参_clf = decisiontreeclassifier(random_state=0) rfc =

clf = decisiontreeclassifier(random_state=0) rfc = randomforestclassifier(ra

集成算法的概述

集成算法
集成算法会考虑多个评估器的建模结果,汇总之后得到一个结果,以此来获取比单个模型更好的回归或分类表现。

随机深林是袋装法的代表模型

RandomForestClassifier分类树

RandomForestClassifier类
随机森林分类器
sklearn.ensemble.RandomForestClassifier
参数
决策树中遇到过的参数
参数
其他参数
n_estimators
越大,模型的效果往往越好。
一般0~200之间比较好

还是用sklearn.datasets里的红酒数据集,先用train_test_split来划分测试集和训练集,方法如下`

from sklearn.model_selection import train_test_split

Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)
#首先先分训练集和测试集,用train_test_split来划分
#实例化
clf = DecisionTreeClassifier(random_state=0)
rfc = RandomForestClassifier(random_state=0)
# 把训练集带入实例化后的模型进行训练,使用的接口是fit
clf = clf.fit(Xtrain,Ytrain)
rfc = rfc.fit(Xtrain,Ytrain)
# 使用score接口将测试集导入我们训练好的模型,去获取我们希望获取的结果(score,Y_test)
score_c = clf.score(Xtest,Ytest)
score_r = rfc.score(Xtest,Ytest)
print("Single Tree:{}".format(score_c)
      ,"Random Forest:{}".format(score_r)
     )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

代码结果为:
Single Tree:0.9444444444444444
Random Forest:0.9629629629629629

可以看出来好像随机森林比决策树的分类结果要好一点。
如果不信的话可以用交叉验证(cross_val_score)来验证一下

#交叉验证: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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/547721
推荐阅读
相关标签
  

闽ICP备14008679号