bagging的思路
与投票法不同的是,Bagging不仅仅集成模型最后的预测结果,同时采用一定策略来影响基模型训练,保证基模型可以服从一定的假设。在上一章中我们提到,希望各个模型之间具有较大的差异性,而在实际操作中的模型却往往是同质的,因此一个简单的思路是通过不同的采样增加模型的差异性。
bagging的原理分析
bagging的案例分析(基于sklearn,介绍随机森林的相关理论以及实例)
Sklearn为我们提供了 BaggingRegressor 与 BaggingClassifier 两种Bagging方法的API,我们在这里通过一个完整的例子演示Bagging在分类问题上的具体应用。这里两种方法的默认基模型是树模型。
我们创建一个含有1000个样本20维特征的随机分类数据集:
# test classification
from numpy import mean
from numpy import std
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import RepeatedStratifiedKFold
from sklearn.ensemble import BaggingClassifier
# define dataset
X,y = make_classification(n_samples=1000,n_features=20,n_informative=15,n_redundant=5,random_state=5)
# summarize the dataset
print(X.shape,y.shape)
(1000, 20) (1000,)
# define the model
model = BaggingClassifier()
# evalute the model
cv = RepeatedStratifiedKFold(n_splits=10,n_repeats=3,random_state=1)
n_scores = cross_val_score(model,X,y,scoring='accuracy',cv=cv,n_jobs=-1,error_score='raise')
# 看看效果分数
print('Accuracy: % 3f (%.3f)' % (np.mean(n_scores),np.std(n_scores)))
Accuracy: 0.863667 (0.036)
参考 : GitHub开源集成学习(上) Datawhale