《AI安全之对抗样本入门》—1.5.2 Bagging算法

举报
华章计算机 发表于 2019/06/17 17:40:45 2019/06/17
【摘要】 本节书摘来自华章计算机《AI安全之对抗样本入门》一书中的第1章,第1.5.2节,作者是兜哥。

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。

 image.png

图1-37 Bagging的ROC曲线


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。