xgb用python写的时候基分类器可以换别的么
1个回答
展开全部
可以呀,有很多种的
from sklearn import ensemble
集成分类器(ensemble):
1.bagging(ensemble.bagging.BaggingClassifier)
对随机选取的子样本集分别建立基本分类器,然后投票决定最终的分类结果
2.RandomForest(ensemble.RandomForestClassifier)
对随机选取的子样本集分别建立m个CART(Classifier and Regression Tree),然后投票决定最终的分类结果
Random在此处的意义:
1)Bootstrap 中的随机选择子样本集
2)Random subspace 的算法从属性中随机选择k个属性,每个树节点分裂时从这随机的k个属性中,选择最优的
3.Boosting(ensemble.weight_boosting)
在选择分类超平面时给样本加了一个权值,使得loss function尽量考虑那些分错类的样本。(i.e.分错类的样本weight 大)
-boosting 重采样的不是样本,而是样本的分布。最后的分类结果是几个弱分类器的线性加权和。注意这几个弱分类器都是一种base classifier类别。
-与bagging的区别:bagging 的训练集是随机的,各训练集是独立的;而boosting训练集的选择不是独立的,每次选择的训练集都依赖于上一次学习的结果;
bagging的每个预测函数(即弱假设)没有权重,而Boosting根据每一次训练的训练误差得到该次预测函数的权重;
bagging的各个预测函数可以并行生成,而boosting的只能顺序生成。对于神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量的时间开销。
-与bagging的共同点:都可以通过使用for循环给estimator赋不同的分类器类型,以实现集成多种分类器,而不是单一的某一种(比如决策树)。
代表算法 Adaboost 和 Realboost。总的来说,Adaboost 简单好用,Realboost 准确
4.Stacking
在stacking(堆叠)方法中,每个单独分类器的输出会作为更高层分类器的输入,更高层分类器可以判断如何更好地合并这些来自低层的输出。
from sklearn import ensemble
集成分类器(ensemble):
1.bagging(ensemble.bagging.BaggingClassifier)
对随机选取的子样本集分别建立基本分类器,然后投票决定最终的分类结果
2.RandomForest(ensemble.RandomForestClassifier)
对随机选取的子样本集分别建立m个CART(Classifier and Regression Tree),然后投票决定最终的分类结果
Random在此处的意义:
1)Bootstrap 中的随机选择子样本集
2)Random subspace 的算法从属性中随机选择k个属性,每个树节点分裂时从这随机的k个属性中,选择最优的
3.Boosting(ensemble.weight_boosting)
在选择分类超平面时给样本加了一个权值,使得loss function尽量考虑那些分错类的样本。(i.e.分错类的样本weight 大)
-boosting 重采样的不是样本,而是样本的分布。最后的分类结果是几个弱分类器的线性加权和。注意这几个弱分类器都是一种base classifier类别。
-与bagging的区别:bagging 的训练集是随机的,各训练集是独立的;而boosting训练集的选择不是独立的,每次选择的训练集都依赖于上一次学习的结果;
bagging的每个预测函数(即弱假设)没有权重,而Boosting根据每一次训练的训练误差得到该次预测函数的权重;
bagging的各个预测函数可以并行生成,而boosting的只能顺序生成。对于神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量的时间开销。
-与bagging的共同点:都可以通过使用for循环给estimator赋不同的分类器类型,以实现集成多种分类器,而不是单一的某一种(比如决策树)。
代表算法 Adaboost 和 Realboost。总的来说,Adaboost 简单好用,Realboost 准确
4.Stacking
在stacking(堆叠)方法中,每个单独分类器的输出会作为更高层分类器的输入,更高层分类器可以判断如何更好地合并这些来自低层的输出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询