sklearn中的集成学习之Bagging与Pasting
2020-11-01 本文已影响0人
生信编程日常
虽然有很多的机器学习方法,但从投票角度来看仍然不够多。所以需要创建更多的子模型,并且子模型之间不能一致,必须要有差异。
如何创造这种差异性呢?可以每个子模型只看一部分的数据。
比如一共有五百个数据,每个子模型只看其中的100个数据。
假设每个子模型有51%的准确率;
![](https://img.haomeiwen.com/i20297934/c96951897d2d761f.png)
![](https://img.haomeiwen.com/i20297934/51c76a91d7edd874.png)
![](https://img.haomeiwen.com/i20297934/0d836cba7962c6dd.png)
在取样中,有放回取样和不放回取样两种方式。前者被称为Bagging,后者被称为Pasting。Bagging在实际应用中更常见。
sklearn中的使用:
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import BaggingClassifier
bagging_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=500,
max_samples=100, bootstrap=True)
# n_estimators是集成多少个tree; bootstrap是否放回取样
bagging_clf.fit(X_train, y_train)
bagging_clf.score(X_test, y_test)
【以上是学习自liuyubobobo的课程】