当前位置:   article > 正文

scikit-learn机器学习--随机森林_randomforestclassifier参数

randomforestclassifier参数

目录

随机森林 RandomForestClassifier参数

实战部分

试验一

试验二:

 n_estimators学习曲线


 

ensemble模块
ensemble.AdaBoostClassifierAdaBoost分类
ensemble.AdaBoostRegressorAdaboost回归
ensemble.RandomForestClassifier 随机森林分类
ensemble.RandomForestRegressor随机森林回归
ensemble.BaggingClassifier装袋分类器
ensemble.BaggingRegressor装袋回归器
ensemble.GradientBoostingClassifier梯度提升分类
ensemble.GradientBoostingRegressor梯度提升回归
。。。 
。。。 
。。。 
。。。 
。。。 
。。。 

 

随机森林 RandomForestClassifier参数

  1. class sklearn.ensemble.RandomForestClassifier (
  2. n_estimators=10’, #生成森林的个数,越大效果越好,当然内存消耗和训练时长增加
  3. criterion=’gini’, #特征选择
  4. max_depth=None, #树的最大深度
  5. min_samples_split=2, #一个节点分支后至少包含这么多个样本,否则不分支
  6. min_samples_leaf=1,
  7. min_weight_fraction_leaf=0.0,
  8. max_features=’auto’,
  9. max_leaf_nodes=None,
  10. min_impurity_decrease=0.0,
  11. min_impurity_split=None,
  12. bootstrap=True, #自助采样(有放回的采样),让基分类器尽量不一样 0.632采了 保留了0.368
  13. oob_score=False, #设置为True,训练完就可以用 oob_score_ 查看袋外数据测试分数
  14. n_jobs=None,
  15. random_state=None,
  16. verbose=0,
  17. warm_start=False,
  18. class_weight=None)

 

实战部分

试验一

  1. #导入决策树分类器 和 随机森林分类器 以及自带的红酒数据
  2. from sklearn.tree import DecisionTreeClassifier
  3. from sklearn.ensemble import RandomFore
  4. from sklearn.datasets import load_wine
  5. #导入数据
  6. wine = load_wine()
  7. #分割训练集与测试集
  8. from sklearn.model_selection import train_test_split
  9. Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size=0.3)
  10. #实例化树与森林
  11. clf = DecisionTreeClassifier(random_state=0)
  12. rfc = RandomForestClassifier(random_state=0)
  13. #训练树与森林
  14. clf = clf.fit(Xtrain,Ytrain)
  15. rfc = rfc.fit(Xtrain,Ytrain)
  16. #查看准确度
  17. score_c = clf.score(Xtest,Ytest)
  18. score_r = rfc.score(Xtest,Ytest)
  19. print(,score_c,score_r)

 

试验二:

  1. #用交叉验证试验一下
  2. from sklearn.model_selection import cross_val_score
  3. import matplotlib.pyplot as plt
  4. #实例化并使用交叉验证
  5. rfc = RandomForestClassifier(n_estimators=25)
  6. rfc_s = cross_val_score(rfc,wine.data,wine.target,cv=10)
  7. #实例化并使用交叉验证
  8. clf = DecisionTreeClassifier()
  9. clf_s = cross_val_score(clf,wine.data,wine.target,cv=10)
  10. plt.plot(range(1,11),rfc_s,label = "RandomForest")
  11. plt.plot(range(1,11),clf_s,label = "Decision Tree")
  12. plt.legend()
  13. plt.show()
  14. """
  15. rfc_l = []
  16. clf_l = []
  17. for i in range(10):
  18. rfc = RandomForestClassifier(n_estimators=25)
  19. rfc_s = cross_val_score(rfc,wine.data,wine.target,cv=10).mean()
  20. rfc_l.append(rfc_s)
  21. clf = DecisionTreeClassifier()
  22. clf_s = cross_val_score(clf,wine.data,wine.target,cv=10).mean()
  23. clf_l.append(clf_s)
  24. plt.plot(range(1,11),rfc_l,label = "Random Forest")
  25. plt.plot(range(1,11),clf_l,label = "Decision Tree")
  26. plt.legend()
  27. plt.show()
  28. """

 n_estimators学习曲线

  1. #n_estimators学习曲线
  2. superpa = []
  3. for i in range(200):
  4. rfc = RandomForestClassifier(n_estimators=i+1,n_jobs=-1)
  5. rfc_s = cross_val_score(rfc,wine.data,wine.target,cv=10).mean()
  6. superpa.append(rfc_s)
  7. print(max(superpa),superpa.index(max(superpa)))
  8. plt.figure(figsize=[20,5])
  9. plt.plot(range(1,201),superpa)
  10. plt.show()

n_estimators越大,模型的效果往往越好。但是相应的,任何模型都有决策边界,n_estimators达到一定的程度之后,随机森林的精确性往往不在上升或开始波动,并且,n_estimators越大,需要的计算量和内存也越大,训练的时间也会越来越长。对于这个参数,我们是渴望在训练难度和模型效果之间取得平衡。

 

除此之外,依然有四个常用接口:apply, fit, predictscore还需要注意随机森林的predict_proba接口

 

参考资源:菜菜的sklearn课堂直播间: https://live.bilibili.com/12582510

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/547752
推荐阅读
相关标签
  

闽ICP备14008679号