集成学习
**集成学习(Ensemble learning)**是机器学习中近年来的一大热门领域。其中的集成方法是用多种学习方法的组合来获取比原方法更优的结果。
使用于组合的算法是弱学习算法,即分类正确率仅比随机猜测略高的学习算法,但是组合之后的效果仍可能高于强学习算法,即集成之后的算法准确率和效率都很高。
三个臭皮匠,赛过诸葛亮!!!以弱搏强,就是集成学习!

主要方法包括:
- Bagging
- Boosting
- Stacking
Stacking方法(知识蒸馏)
==Stacking方法(知识蒸馏)==是指训练一个模型用于组合其他各个模型。
- 先训练多个不同的模型,然后把训练得到的各个模型的输出作为输入来训练一个模型,以得到一个最终的输出。
- 原理:将多个不同模型的预测结果作为新的特征,输入到一个或多个元模型(meta-learner)中进行训练。

装袋法(Bagging)
装袋法(Bagging)又称为Bootstrap Aggregating, 是通过组合多个训练集的分类结果来提升分类效果
原理:对原始数据集进行多次有放回的抽样(bootstrap sampling),生成多个不同的训练数据集。
装袋法由于多次采样,每个样本被选中的概率相同,因此噪声数据的影响下降,所以装袋法太容易受到过拟合的影响。
【[数据挖掘Python] 26 集成学习 1 bagging算法 BaggingClassifier 个人银行贷款数据】
Bagging算法就是用多个弱分类器(CART)对划分的不同数据集进行分类,对于弱分类器的结果进行投票或者加权得到最终的结果。
Bagging对鸢尾花数据集进行分类
鸢尾花数据集是4个类别。
- 导入数据集
- 对数据集进行划分:·
KFold函数进行K折交叉验证 - 创建CART决策树:
cart = DecisionTreeClassifier(criterion='gini', max_depth=3)
cart_result = cart.fit(X, Y)# 训练决策树模型
- 利用CART模型作为基决策器生产Bagging模型:
可以设置基决策器的数量n_estimators,但不是越多越好哦!
model = BaggingClassifier(estimator=cart, n_estimators=100, random_state=seed)
result = cross_val_score(model, X, Y, cv=kfold)
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
# 1.获取数据
iris = datasets.load_iris()
X = iris.data
Y = iris.target
seed = 42
# 创建K折交叉验证,设置分割数为10,打乱数据,设置随机种子
kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
# 2.构建模型
# 创建决cart模型基础模型,设置使用基尼系数作为分裂标准,树的最大深度为3
cart = DecisionTreeClassifier(criterion='gini', max_depth=3)
cart_result = cart.fit(X, Y)# 训练决策树模型
result = cross_val_score(cart_result, X, Y, cv=kfold)# 使用交叉验证计算决策树模型的分数
print("CART树结果:", result.mean

最低0.47元/天 解锁文章
1367

被折叠的 条评论
为什么被折叠?



