集成学习2之Bagging

Bagging 两种情况:¶

1: 对于分类问题:K个模型采用投票的方式得到分类结果 2: 对于回归问题:计算K个模型的均值作为最后的结果

Bagging集成学习

虽然有很多的机器学习方法,但是从投票的角度看,仍然不够多,如果在有限的几个算法中出了问题,那么整体的学习率将会下降,因此集成学习还有另一种方式:创建最优模型多个相同的副本。

1.创建多个子模型,集成更多的子模型的意见
2.子模型之前不能一致,相同的子模型用来查看不同的样本数据类保证模型的差异性 (500个样本数据,每个子模型只看200个样本数据)
3.每个模型不需要太高的准确率, 但是经过累计可以拥有比较客观的效果
5.Bagging 支持返回取样,总共有500个样本,第一个模型取出200个后,这些样本又重新放回到样本池中 (与交叉验证的区别)

from sklearn import datasets
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
X,y = datasets.make_moons(n_samples=500,shuffle=True,noise=0.5,random_state=42)
# print(X.shape,y.shape,y)
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
plt.show()

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

# 与交叉验证的区别,此处K个模型采用的是有回放的抽取
# K个训练模型是彼此独立的。K个训练集得到的是K个模型(基模型)
from sklearn.ensemble import BaggingClassifier
from sklearn.linear_model import LogisticRegression
# X_train = 500 * 0.75 = 375
bagging_clf2 = BaggingClassifier(base_estimator = LogisticRegression(),n_estimators=5000,max_samples=300)
bagging_clf2.fit(X_train,y_train)
print('训练时准确率',bagging_clf2.score(X_train,y_train),'测试集准确率',bagging_clf2.score(X_test,y_test))
print('-'*100)

随机森林¶

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树

# 随机森林本身就是一种特殊的集成学习。
from sklearn.ensemble import RandomForestClassifier
# 并且在继承学习的基础上增加了对特征选择的随机性(max_features),并非总是考虑全部的特征。较大程度上进一步提高了树的差异性。
rfc = RandomForestClassifier(n_estimators=5000,max_depth=5,criterion="entropy",random_state=1,max_samples=300)
rfc.fit(X_train,y_train)
print(f'训练集正确率{rfc.score(X_train,y_train)}测试集正确率{rfc.score(X_test,y_test)}')

阶段总结

1.VotingClassifier 帮我们找到适合数据的最优模型

  1. BaggingClassifier 综合多个最优模型的总体表现 (行的随机性)

  2. RandomForestClassifier = BaggingClassifier + max_features (列的随机性)

  3. RandomForestClassifier + 网格搜索 = 最优模型的最优参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪闪发亮的小星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值