机器学习——集成算法

(一)集成算法原理

集成算法
构建多个学习器,然后通过一定策略结合把它们来完成学习任务的,常常可以获得比单一学习显著优越的学习器。

集成算法一般分为三类:Bagging,Boosting,Stacking(我们可以把它简单地看成并行,串行和树型)

1.1 Bagging模型

Bagging模型详解

Bagging的全称是bootstrap averaging,它把各个基模型的结果组织起来,具体实现也有很多种类型,以sklearn中提供的Bagging集成算法为例(下面代码中会用到部分算法):

  1. BaggingClassifier/BaggingRegressor是从原始数据集抽选S次(抽取实例,抽取属性),得到S个新数据集(有的值可能重复,有的值可能不出现)。使用同一模型,训练得到S个分类器,预测时使用投票结果最多的分类。
  2. RandomForestClassifier随机森林,它是对决策树的集成,用随机的方式建立一个决策树的森林。当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行判断,预测时使用投票结果最多的分类,也是少数服从多数的算法。
  3. VotingClassifier,可选择多个不同的基模型,分别进行预测,以投票方式决定最终结果。

Bagging中各个基算法之间没有依赖,可以并行计算,它的结果参考了各种情况,实现的是在欠拟合和过拟合之间取折中。

最典型的代表就是随机森林

随机:数据采样随机,特征选择随机

森林:很多个决策树并行放在一起

随机森林优势:

  1. 它能够处理很高维度(feature很多)的数据,并且不用做特征选择。
  2. 在训练完后,它能够给出哪些feature比较重要。
  3. 容易做成并行化方法,速度比较快。
  4. 可以进行可视化展示,便于分析。

树模型:

理论上越多的树效果会越好,但实际上基本超过一定数量就差不多上下浮动了。

训练多个分类器取平均 f ( x ) = 1 / M ∑ m = 1 M f m ( x ) f(x)=1/M\sum_{m=1}^{M}f_{m}(x) f(x)=1/Mm=1Mfm(x)
M表示建立树模型的个数。

1.2 Boosting模型

从弱学习器开始加强,通过加权来进行训练。
F m ( x ) = F m − 1 ( x ) + a r g m i n h ∑ i = 1 n L ( y i , F m − 1 ( x i + h ( x i ) ) F_{m}(x)=F_{m-1}(x)+argmin_{h}\sum_{i=1}^{n}L(y_{i},F_{m-1}(x_{i}+h(x_{i})) Fm(x)=Fm1(x)+argmin

  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
集成算法是一种机器学习算法,通过结合多个弱分类器的预测结果,以提高整体性能和准确度。在Python中,可以使用scikit-learn库来实现集成算法。 以下是一个使用集成算法中的随机森林算法的Python代码示例: ```python # 导入所需的库 from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 准备数据集,X为特征矩阵,y为目标变量 X = [[0, 0], [1, 1]] y = [0, 1] # 将数据集分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) # 创建随机森林分类器对象 rf = RandomForestClassifier() # 在训练集上训练模型 rf.fit(X_train, y_train) # 在测试集上进行预测 y_pred = rf.predict(X_test) # 计算准确度 accuracy = accuracy_score(y_test, y_pred) print(f"准确度:{accuracy}") ``` 在以上代码中,首先导入所需的库,然后准备数据集。使用`train_test_split`函数将数据集分为训练集和测试集。接下来,创建一个随机森林分类器对象`rf`,并使用`fit`方法在训练集上训练模型。然后,使用`predict`方法对测试集进行预测,并使用`accuracy_score`函数计算准确度。最后,打印输出准确度。 这只是集成算法中的一个例子,scikit-learn库还提供了其他集成算法的实现,如AdaBoost、GBDT等。通过调整参数和选择不同的集成算法,可以根据具体问题选择最合适的算法来提高预测性能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值