'''
scikit-learn基于AdaBoosts算法提供了两个模型:
1.AdaBoostClassifier用于解决分类问题
2.AdaBoostRegressor用于解决回归问题
'''
from sklearn.ensemble import AdaBoostClassifier
AdaBoostClassifier(base_estimator=None,
n_estimators=50,
learning_rate=1.,
algorithm='SAMME.R',
random_state=None)
'''
参数含义:
1.Base_estimator:object, optional (default=DecisionTreeClassifier)
基分类器。默认为DecisionTreeClassifier。
基分类器需要支持带样本权重的学习以及具备classes_和n_classes_属性。
2.n_estimator:integer, optional (default=50)
整数,默认是50.指定基分类器的数量。
提升学习过程被终止时基分类器的最大数量。当完美的拟合训练数据了,
提升算法会提前停止。这时的基本分类器数量小于给定的值
3.learn_rate:float, optional (default=1.).
学习率。默认是1.
通过learning_rate缩减每个分类器的贡献。在learning_rate和n_estimators之间需要权衡。
通常学习率越小,需要的基本分类器就越多,因此在learning_rate和n_estimators之间要有所折中。
学习率就是下面公式中的v:
F_m(x)=F_m-1(x)+v*alpha_m*G_m(x)
其中G_m(x)就是第m个基本分类器。aplha_m是第m个基本分类器的系数。
4.algorithm:{'SAMME', 'SAMME.R'}, optional (default='SAMME.R')
指定所采用的算法。默认为'SAMME.R'。
标准的AdaBoost算法只适用于二分类问题。SAMME适用于AdaBoost多分类问题
(1).algorithm='SAMME',采用SAMME离散提升算法。
(2).algorith='SAMME.R',采用SAMME.R真正的提升算法。如果选择SAMME.R算法,
基本分类器必须必须支持类别概率的计算。
(3).SAMME.R算法通常比SAMME收敛得更快,通过较少的提升迭代实现较低的测试误差。
5.random_state:int, RandomState instance or None, optional (default=None)
(1).如果为整数,则它指定了随机数生成器的种子。
(2).如果为RandomState实例,则指定了随机数生成器。
(3).如果为None,则使用默认的随机数生成器。
属性:
1.estimators_:list of classifiers.分类器列表。所有训练过的基本分类器。
2.classes_ : array of shape = [n_classes]。类别标签。
3.n_classes_ : int。类别数量。
4.estimator_weights_ : array of floats。数组,存放每个基本分类器的权重。
5.estimator_errors_ : array of floats。数组,存放每个基本分类器的分类误差。
6.feature_importances_ : array of shape = [n_features]
每个特征的重要性。
方法:
1.fit():模型训练。
2.predict():模型预测。
3.predict_log_proba():预测的每个样本属于各个类别的概率对数值。
4.predict_proba():预测的每个样本属于各个类别的概率值。
5.staged_predict():预测每一轮迭代后输入样本的预测值。
6.staged_predict_proba():预测每一轮迭代后输入样本属于各个类别的概率值。
'''
from sklearn.ensemble import AdaBoostRegressor
AdaBoostRegressor(base_estimator=None,
n_estimators=50,
learning_rate=1.,
loss='linear',
random_state=None)
'''
参数含义:
1.base_estimator:object, optional (default=DecisionTreeRegressor)
基本分类器。默认是DecisionTreeRegressor
基分类器需要支持带样本权重的学习。
2.n_estimators:integer, optional (default=50)
整数,默认是50.指定基分类器的数量。
提升学习过程被终止时基分类器的最大数量。当完美的拟合训练数据了,
提升算法会提前停止。这时的基本分类器数量小于给定的值.
3.learning_rate:float, optional (default=1.)
学习率。默认是1.
通过learning_rate缩减每个分类器的贡献。在learning_rate和n_estimators之间需要权衡。
通常学习率越小,需要的基本分类器就越多,因此在learning_rate和n_estimators之间要有所折中。
学习率就是下面公式中的v:
F_m(x)=F_m-1(x)+v*alpha_m*G_m(x)
其中G_m(x)就是第m个基本分类器。aplha_m是第m个基本分类器的系数。
4.loss:{'linear', 'square', 'exponential'}, optional (default='linear')
指定损失函数。
(1).loss='linear',线性损失函数。
(2).loss='square',平方损失函数。
(3).loss='exponential',指数损失函数。
(4).在每一轮提升迭代之后,都需要通过损失函数更新权重。
5.random_state:int, RandomState instance or None, optional (default=None)
(1).如果为整数,则它指定了随机数生成器的种子。
(2).如果为RandomState实例,则指定了随机数生成器。
(3).如果为None,则使用默认的随机数生成器。
属性:
1.estimators_:list of classifiers.分类器列表。存放所有训练过的基本回归器。
2.estimator_weights_ : arra
机器学习库sklearn中集成学习模型参数释义
最新推荐文章于 2024-04-27 11:05:07 发布
本文详细介绍了sklearn库中AdaBoostClassifier和AdaBoostRegressor的参数和使用,包括学习率、基本分类器、损失函数等关键设置。此外,还探讨了GradientBoostingClassifier和GradientBoostingRegressor(GBDT和GBRT)的参数,如损失函数、学习率和决策树相关参数。最后,概述了RandomForestClassifier和RandomForestRegressor的参数,如决策树数量、特征选择和节点分裂条件。这些模型是机器学习中常用的集成学习方法。
摘要由CSDN通过智能技术生成