深圳外贸网站,七牛搭建网站,高端定制开发网站,深圳10大产品设计公司1.11. Ensemble methods#xff08;集成学习#xff09; 目标#xff1a; 相对于当个学习器#xff0c;集成学习通过使用多个基学习器的预测结果来来提高学习预测的泛化性能以及鲁棒性#xff1b; 集成学习的两个思路#xff1a; 1#xff09;、通过使用并行的学习… 1.11. Ensemble methods集成学习 目标 相对于当个学习器集成学习通过使用多个基学习器的预测结果来来提高学习预测的泛化性能以及鲁棒性 集成学习的两个思路 1、通过使用并行的学习得到多个学习模型然后取其平均结果目的在于减少方差代表算法有随机森林。通常来说多个学习器的集成要比单个学习器的效果要好多。 2、采用串行的方式生成多个学习器目的在于减少偏差bias使用多个弱分类器组合成为一个强分类器代表算法adaBoosting以及boosting tree、GDBT。 1.11.1. Bagging meta-estimator 集成学习中bagging方法使用训练集的一个随机子集来进行训练多个黑盒分类器然后将不同的黑盒分类器集成到一起得到一个最终的预测模型。在生成训练模型的过程中引入随机化并在最后集成结果的方式可以减少整个训练模型的方差同时不用因为底层的学习器的不同而发生改变。随机森林通过引入随机性来避免过拟合因此在生成基学习器时可以考虑完成生成即基学习器越强越好对于boosting的方法则是相反要求基学习器要弱一点才好。boosting减少偏差因为越强越吻合3反而容易出现过拟合。 随机森林根据训练数据不同的生成方式包括一下 1、又放回的抽取称作bagging 2、针对特征进行随机化成为随机子空间random subspace 3、针对特征和样本都做随机化称为随机patchs补丁、块 4、随机抽取样本称为 Pasting scikit-learn框架中sklearn.ensemble中有BaggingClassifier和BaggingRegressor两个对象可以实现Bagging方法。方法中可以通过参数指定模型使用基学习器的类型以及抽取子集的策略。通用的参数为一下几个参数 max_sample指定随机子集的规模小于1表示比例大于1则为样本数 max_features指定训练数据的特征规模小于1表示比例大于1则为样本数 boostrap:指定是否又放回的抽样true/false boostrap_features:指定特征是否又放回的抽样true/false oob_score true:表示使用带外数据衡量泛化能力数据越大越好 一下实例中基学习器采用K近邻算法样本规模为原样本的50%特征为50% from sklearn.ensemble import BaggingClassifier
from sklearn.neighbors import KNeighborsClassifier
bagging BaggingClassifier(KNeighborsClassifier(),max_samples0.5, max_features0.5) View Code 1.11.2. Forests of randomized trees 基于随机化的决策树算法sklearn.ensemble包含了两种平均结果的算法随机森林和Extra-Tree。在构建分类器时通过引入随机性生成了一系列不相同的树然后将不同的分类树的结果进行平均作为最终的输出结果。 树算法的训练和其他的算法一样都是使用两个数组作为参数X承载训练特征 Y承载训练数据的标签值。如下例所示 from sklearn.ensemble import RandomForestClassifier
X [[0, 0], [1, 1]]
Y [0, 1]
clf RandomForestClassifier(n_estimators10)
clf clf.fit(X, Y) View Code 如果扩展成为多分类的问题那么将Y扩展成为[n_samples, outputs] 1.11.2.1. Random Forests 随机森林的使用主要包括这两个类RandomForestClassifier and RandomForestRegressor一个负责分类一个负责回归。在随机森林生成过程中数据采用又放回的抽取同时在选择划分时选中的划分只是在相应的特征子集上的最优而不是全部特征的最优这样就会使得最终的bias会有所增大但是通过多棵树的平均使得方差varience减少很多因此这种方法还是很有效的。在最终预测结果时现有版本采取的方式是平均所有类别的输出的概率然后选择最大的输出只在最后产生一个结果抛弃了原有的对类别的投票在每棵树上都有一个分类结果 1.11.2.2. Extremely Randomized Trees省略应该是计算划分点的计算方式发生变化。 1.11.2.3. Parameters n_estimators生成的基学习器的数量越多越好但是越费时间 max_features抽样后样本的最大值在回归问题中一般直接等于原有的特征数在分类问题中一般采用sqrt原有特征 max_depthNone生成基学习器树的最大深度 min_samples_split1选择划分最小的样本数越小生成的树就越完全通常和max_depth搭配使用产生一个发育完全的树 bootstrapFalse同上面说的 oob_score true:同上当然在使用又放回抽样时使用; n_jobs k:设置并行化计算参数任务被分成k分使用机器的k个核心计算当k1时使用机器的全部核心可以提升计算速度但是不是线性关系。 1.11.2.5. Feature importance evaluation 在决策树的生成过程中特征使用的先后顺序可以作为一个特征相对重要性判断的一个指标越先使用的特征对结果的贡献就越大因次该特征也就相对来说比较重要因此可以使用该特征对最后结果的贡献度来表示该特征的相对重要性。 在实际的使用中使用feature_importances_属性来存储每个特征的重要性指标维度就是特征的数量其总和为1 转载于:https://www.cnblogs.com/daguankele/p/6706651.html