《AI安全之对抗样本入门》—1.5.2 Bagging算法
1.5.2 Bagging算法
与Boosting算法不同,Bagging算法的分类器之间没有依赖关系,可以并行生成。Bagging使用自助采样法,即对于m个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,也就是说下次采样时该样本仍有可能被采集到,这样采集m次,最终可以得到m个样本的采样集。由于是随机采样,每次的采样集不同于原始训练集和其他采样集,这样得到了多个不同的分类器。
下面举个例子,数据集使用随机生成的数据,使用BaggingClassifier,分类器个数设置为100:
x, y = datasets.make_classification(n_samples=1000,
n_features=100,n_redundant=0, random_state = 1)
train_X, test_X, train_Y, test_Y = train_test_split(x,
y,
test_size=0.2,
random_state=66)
clf = BaggingClassifier(n_estimators=100)
clf.fit(train_X, train_Y)
pred_Y = clf.predict(test_X)
report(test_Y, pred_Y)
输出对应的性能指标,准确度为83.5%,f1为84.21%,准确率为84.61%,召回率为83.81%,AUC为0.83:
accuracy_score:
0.835
f1_score:
0.842105263158
recall_score:
0.838095238095
precision_score:
0.846153846154
confusion_matrix:
[[79 16]
[17 88]]
AUC:
0.834837092732
对应的ROC曲线如图1-37所示,综合指标优于之前的KNN,也略优于AdaBoost。
图1-37 Bagging的ROC曲线
- 点赞
- 收藏
- 关注作者
评论(0)