机器学习算法很多,今天和大家聊一个很强悍的算法-
集成学习算法,基本上是处理复杂问题的首选.话不多说,直奔主题.
2.1思想
Bagging(Bootstrap Aggregating)又称装袋法 是一种 并行训练 多个模型的方法, 使用 Bootstrap方法,即:通过有放回 的对训练数据集进行 随机采样 得到多个数据子集,每个子集的大小与原始数据集相同。并 在每个子集上 训练一个独立的模型,结合这些模型的预测结果 来减少方差(即:模型的波动性),最后通过 投票或平均 的方法 作为最终结果.
可以处理回归问题也可处理分类问题,才用不同的评估方式:
2.2代表算法
随机森林:一种通过 样本和特征随机化 构建 多棵决策树 并集成它们结果的集成学习方法。在训练过程中,随机森林对训练数据进行 有放回的随机抽样(Bootstrap 采样),为每棵决策树生成不同的训练子集。同时,在每个决策树的节点分裂时,随机选择特征子集以进行最佳分裂,增加了模型的多样性并降低了过拟合风险。最终,分类任务通过多数投票法整合各棵树的预测结果,回归任务则通过对预测值取平均值生成最终预测。由于两种随机化的引入,随机森林在面对高维数据或噪声数据时表现稳定且具有较强的泛化能力。
2.3API
在 中, 通过 中的 或 实现:
常用 API 参数(以 和 为例):
- n_estimators:默认值为 100
- 表示构建多少棵决策树。树的数量越多,模型的泛化能力通常越强,但训练时间会变长。
- criterion:默认值为 (分类)和 (回归)
- 决定树的分裂标准。分类任务中可选择 或 ,回归任务中可选择 或 。
- max_depth:默认值为
- 决定决策树的最大深度。如果不设置,树会一直生长直到叶子节点中的样本数小于 或叶子节点纯度足够高。
- min_samples_split:默认值为 2
- 内部节点再划分所需的最小样本数。可以控制树的生长,防止过拟合。
- min_samples_leaf:默认值为 1
- 叶子节点最少包含的样本数。设置较大的值可以让模型更加保守,防止过拟合。
- max_features:默认值为 (分类)和 (回归)
- 在每次分裂时考虑的最大特征数。分类任务中,默认使用特征数的平方根;回归任务中,默认使用全部特征。
- bootstrap:默认值为
- 是否使用 Bootstrap 采样。如果设为 ,则使用所有样本构建每棵树。
- oob_score:默认值为
- 是否使用袋外样本(Out-of-Bag samples)来估计模型的泛化误差。启用该参数可以在不使用交叉验证的情况下估计模型性能。
- n_jobs:默认值为
- 并行化构建决策树的数量。可以设置为 -1 使用所有的 CPU 核心来加速训练。
- random_state:默认值为
- 设置随机数种子,确保模型在每次运行时的行为一致性。
Boosting :又称提升法是一种 串行训练 多个模型的方法, 每次训练时, 将重点放在前一轮 被错误分类 的样本上, 使 后续模型 能够更好的 纠正前面模型的错误, 从而 逐步提高 模型整体预测的准确性. 最后将 所有模型的输出 加权组合成 最终的预测结果.
3.1 AdaBoost
3.1.1思想
AdaBoost(AdaptiveBoosting 自适应提升) 是一种基于 加权 的集成学习算法.
3.1.2API
在 中, 通过 中的 实现
3.2 GBDT
3.2.1思想
梯度提升决策树(GradientBoostingDecisionTree) 是一种基于 梯度残差的集成学习方法 .
3.2.2API
使用 中 GBDT 的回归示例
常用参数
在 中,GBDT 由 (分类)和 (回归)实现。常用的超参数包括:
- n_estimators:默认值为 100
- 弱学习器(决策树)的数量。增加此值会提升模型的性能,但也可能导致过拟合。
- learning_rate:默认值为 0.1
- 学习率用于缩减每个弱学习器的贡献。较低的学习率需要更多的树才能达到相同的效果。
- max_depth:默认值为 3
- 每棵决策树的最大深度。控制单棵树的复杂度,防止模型过拟合。
- subsample:默认值为 1.0
- 每棵树构建时使用的样本比例。较低的值可以引入更多的随机性,增强模型的泛化能力。
- min_samples_split:默认值为 2
- 决策树节点再分裂所需的最小样本数。较大的值可以使树更加保守,防止过拟合。
- min_samples_leaf:默认值为 1
- 叶节点最少样本数。较大的值会减少模型复杂度,防止过拟合。
- max_features:默认值为
- 构建每棵树时考虑的最大特征数。可以设置为 “auto”, “sqrt”, 或 “log2” 来引入随机性。
- loss:默认值为
- 损失函数。分类任务中通常为 “deviance”(即逻辑损失),回归任务可选择 (平方误差)或 (绝对误差)。
- random_state:默认值为
- 控制随机数生成,确保结果的可重复性。
- warm_start:默认值为
- 是否使用之前训练的模型进行训练(增量训练)。设为 可以在已有模型的基础上增加新的弱学习器。
3.3 XGBoost
3.3.1思想
XGBoost(Extreme Gradient Boosting 极限提升树) 是一种基于 梯度残差并结合正则化与并行化 的集成学习方法.
3.3.2API
使用 进行分类任务的简单例子
常用参数
XGBoost 的实现是通过 xgboost.XGBClassifier (分类任务)和 xgboost.XGBRegressor(回归任务)
- n_estimators:默认值为 100
- 树的数量,也称为 boosting 轮数。
- learning_rate(或 ):默认值为 0.3
- 学习率,用于缩小每棵树的贡献值。较小的值通常需要更多的 boosting 轮数来达到相同效果。
- max_depth:默认值为 6
- 控制每棵树的最大深度。较大的深度会使模型更复杂,但也可能导致过拟合。
- subsample:默认值为 1
- 每棵树随机使用的训练样本比例,类似于 GBDT 中的 ,用于减少过拟合。
- colsample_bytree:默认值为 1
- 每棵树随机使用的特征比例。可以通过降低此值来引入更多随机性,提高模型的泛化能力。
- colsample_bylevel:默认值为 1
- 每个树的每一层使用的特征比例。进一步增加随机性。
- reg_alpha:默认值为 0
- L1 正则化项,用于控制模型的稀疏性。较大的值可以减少模型的复杂度。
- reg_lambda:默认值为 1
- L2 正则化项,用于控制模型的权重值。较大的值会让模型更保守,防止过拟合。
- gamma:默认值为 0
- 节点分裂所需的最小损失下降值。值越大,算法越保守。
- objective:默认值为
- 定义损失函数。例如:
- :用于二分类的逻辑回归。
- :用于多分类任务,输出离散的类别值。
- :用于回归任务的平方误差。
- 定义损失函数。例如:
- scale_pos_weight:默认值为 1
- 适用于类别不平衡的数据。通常设为负类样本数/正类样本数,以平衡数据。
- eval_metric:默认值为 (分类)和 (回归)
- 评估指标。例如:、、。
- seed:默认值为 0
- 控制随机数生成,确保结果的可重复性。
在仿生学中我们根据小鸟的灵感创造了飞机,通过生物神经元抽象出了神经网络.其实人本身也是一个模型需要不断的训练和提升.
好了,以上就是今天和大家分享的机器学习中关于集成学习算法的内容,有兴趣的小伙伴可以点赞关注哦,持续更新中…
到此这篇sigmoid算法(siddon算法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/49055.html