当前位置:   article > 正文

Sklearn之Ensemble 估计器_from sklearn.ensemble import randomforestclassifie

from sklearn.ensemble import randomforestclassifier

分类器统计每个子分类器的预测类别数,再用「多数投票」原则得到最终预测。

回归器计算每个子回归器的预测平均值。

最常用的 Ensemble 估计器排列如下:

  • AdaBoostClassifier: 逐步提升分类器

  • AdaBoostRegressor: 逐步提升回归器

  • BaggingClassifier: 装袋分类器

  • BaggingRegressor: 装袋回归器

  • GradientBoostingClassifier: 梯度提升分类器

  • GradientBoostingRegressor: 梯度提升回归器

  • RandomForestClassifier: 随机森林分类器

  • RandomForestRegressor: 随机森林回归器

  • VotingClassifier: 投票分类器

  • VotingRegressor: 投票回归器

 

1、含同质估计器 RandomForestClassifier 

2、含异质估计器 VotingClassifier 

RandomForestClassifier 测试:

  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. from sklearn import metrics
  4. from sklearn.ensemble import RandomForestClassifier
  5. iris = load_iris()#加载数据
  6. X_train, X_test, y_train, y_test= train_test_split( iris['data'], iris['target'], test_size=0.2 )#按照80:20的比例切分数据
  7. RF = RandomForestClassifier( n_estimators=4, max_depth=5 )#有4颗树组成,每棵树最大深度为5
  8. RF.fit( X_train, y_train )#拟合
  9. print( RF.n_estimators )#元估计器有多少估计器(随即森林有多少树)
  10. print ( "RF - Accuracy (Train): %.4g" % metrics.accuracy_score(y_train, RF.predict(X_train)) )
  11. print ( "RF - Accuracy (Test): %.4g" % metrics.accuracy_score(y_test, RF.predict(X_test)))

测试结果:

  1. F:\开发工具\pythonProject\tools\venv\Scripts\python.exe F:/开发工具/pythonProject/tools/python的sklear学习/sklearndudu.py
  2. 4
  3. RF - Accuracy (Train): 0.975
  4. RF - Accuracy (Test): 0.9667
  5. Process finished with exit code 0

VotingClassifier 测试:

  1. from sklearn.linear_model import LogisticRegression #逻辑回归分类器
  2. from sklearn.naive_bayes import GaussianNB #高斯贝叶斯分类器
  3. from sklearn.ensemble import RandomForestClassifier #随机森林分类器
  4. from sklearn.ensemble import VotingClassifier #投片分类器
  5. from sklearn.model_selection import train_test_split #拆分数据类
  6. from sklearn.datasets import load_iris #加载数据
  7. from sklearn import metrics#metrics 来计算各种性能指标
  8. iris = load_iris()#加载数据
  9. X_train, X_test, y_train, y_test= train_test_split( iris['data'], iris['target'], test_size=0.2 )#按照80:20的比例拆分数据
  10. LR=LogisticRegression(solver="lbfgs",multi_class="multinomial")#逻辑回归分类器
  11. RF=RandomForestClassifier(n_estimators=5)#随即森林分类
  12. GNB=GaussianNB()#高斯贝叶斯
  13. Ensemble=VotingClassifier(estimators=[("lr",LR),("rf",RF),("gnb",GNB)],voting="hard")#里面装在三个分类器
  14. Ensemble.fit(X_train,y_train)#拟合训练数据
  15. print( len(Ensemble.estimators_) )#元估计器的个数
  16. #分别查看各个数据分类器的拟合
  17. LR.fit( X_train, y_train )
  18. RF.fit( X_train, y_train )
  19. GNB.fit( X_train, y_train )
  20. #分别查看预测得分情况
  21. print("LR:",metrics.accuracy_score(y_train,LR.predict(X_train)))
  22. print("RF:",metrics.accuracy_score(y_train,RF.predict(X_train)))
  23. print("GNB:",metrics.accuracy_score(y_train,GNB.predict(X_train)))
  24. print("Ensemble:",metrics.accuracy_score(y_train,Ensemble.predict(X_train)))
  25. print("-----------------------------------------------------------------\n")
  26. #测试数据的拟合预测情况
  27. print("LR:",metrics.accuracy_score(y_test,LR.predict(X_test)))
  28. print("RF:",metrics.accuracy_score(y_test,RF.predict(X_test)))
  29. print("GNB:",metrics.accuracy_score(y_test,GNB.predict(X_test)))
  30. print("Ensemble:",metrics.accuracy_score(y_test,Ensemble.predict(X_test)))

测试结果:

  1. F:\开发工具\pythonProject\tools\venv\Scripts\python.exe F:/开发工具/pythonProject/tools/python的sklear学习/sklearnfff.py
  2. 3
  3. LR: 0.9916666666666667
  4. RF: 1.0
  5. GNB: 0.95
  6. Ensemble: 0.9833333333333333
  7. -----------------------------------------------------------------
  8. LR: 0.9
  9. RF: 0.9333333333333333
  10. GNB: 0.9333333333333333
  11. Ensemble: 0.9
  12. Process finished with exit code 0

 

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

闽ICP备14008679号