网站的作用,网站建设商城网站,wordpress 爬虫,三网合一企业网站文章目录 1 集成学习#xff08;Ensemble Learning)1.1 集成学习1.2 Why need Ensemble Learning?1.3 Bagging方法 2 随机森林(Random Forest)2.1 随机森林的优点2.2 随机森林算法案例2.3 随机森林的思考#xff08;---提升学习#xff09; 3 随机森林#xff08;RFEnsemble Learning)1.1 集成学习1.2 Why need Ensemble Learning?1.3 Bagging方法 2 随机森林(Random Forest)2.1 随机森林的优点2.2 随机森林算法案例2.3 随机森林的思考---提升学习 3 随机森林RF的推广算法3.1 Extra Tree3.2 Totally Random Trees Embedding(TRTE)3.3 Isolation Forest(IForest)3.3.1 异常点的判断 3.4 RF随机森林总结3.5 RF scikit-learn相关参数 4 Boosting提升学习4.1 Adaboost算法4.1.1 Adaboost算法原理4.1.2 Adaboost算法4.1.3 Adaboost算法推导4.1.4 Adaboost算法构建过程4.1.5 Adaboost算法的直观理解4.1.6 Adaboost scikit-learn相关参数4.1.7 Adaboost总结 4.2 梯度提升迭代决策树GBDT4.2.1 GBDT算法原理4.2.2 GBDT中回归算法和分类算法的区别4.2.3 GBDT scikit-learn相关参数4.2.4 GBDT总结 5 Bagging、Boosting的区别面试重点6 Stacking 1 集成学习Ensemble Learning)
1.1 集成学习
集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型各自独立地学习和作出预测。这些预测最后结合成单预测因此优于任何一个单分类的做出预测。
集成学习的思想是将若干个学习器分类器回归器组合之后产生一个新学习器。弱分类器weak learner指那些分类准确率只稍微好于随机猜测的分类器error rate 0.5集成算法的成功在于保证弱分类器的多样性Diversity。而且集成不稳定的算法也能够得到一个比较明显的性能提升。常见的集成学习思想有 BaggingBoostingStacking
1.2 Why need Ensemble Learning?
弱分类器间存在一定的差异性这会导致分类的边界不同也就是说可能存在错误。那么将多个弱分类器合并后就可以得到更加合理的边界减少整体的错误率实现更好的效果对于数据集过大或者过小可以分别进行划分和有放回的操作产生不同的数据子集然后使用数据子集训练不同的分类器最终再合并成为一个大的分类器如果数据的划分边界过于复杂使用线性模型很难描述情况那么可以训练多个模型然后再进行模型的融合对于多个异构的特征集的时候很难进行融合那么可以考虑每个数据集构建一个分类模型然后将多个模型融合。
1.3 Bagging方法
Bagging方法又叫做自举汇聚法Bootstrap Aggregating思想是在原始数据集上通过有放回的抽样的方式重新选择出S个新数据集来分别训练S个分类器的集成技术。也就是说这些模型的训练数据中允许存在重复数据。Bagging方法训练出来的模型在预测新样本分类的时候会使用多数投票或者求均值的方式来统计最终的分类结果。Bagging方法的弱学习器可以是基本的算法模型egLinearRidgeLasso 、LogisticSoftmaxID3C4.5CARTSVM、KNN等。备注Bagging方式是有放回的抽样并且每个子集的样本数量必须和原始样本数量一致但是子集中允许存在重复数据。
2 随机森林(Random Forest)
在Bagging策略的基础上进行修改后的一种算法
从原始样本集n个样本中用Bootstrap采样有放回重采样选出n个样本从所有属性中随机选择K个属性选择出最佳分割属性作为节点创建决策树重复以上两步m次即建立m棵决策树这m个决策树形成随机森林通过投票表决结果决定数据属于那一类
定义在机器学习中随机森林是一个包含多个决策树的分类器并且其输出的类别是由个别树输出的类别的众数而定。
例如如果你训练了5个树, 其中有4个树的结果是True, 1个数的结果是False, 那么最终结果会是True.
根据下列算法而建造每棵树 用N来表示训练用例样本的个数M表示特征数目。 输入特征数目m用于确定决策树上一个节点的决策结果其中m应远小于M。 从N个训练用例样本中以有放回抽样的方式取样N次形成一个训练集即bootstrap取样并用未抽到的用例样本作预测评估其误差。 为什么要随机抽样训练集
如果不进行随机抽样每棵树的训练集都一样那么最终训练出的树分类结果也是完全一样的 为什么要有放回地抽样
如果不是有放回的抽样那么每棵树的训练样本都是不同的都是没有交集的这样每棵树都是“有偏的”都是绝对“片面的”当然这样说可能不对也就是说每棵树训练出来都是有很大的差异的而随机森林最后分类取决于多棵树弱分类器的投票表决。 2.1 随机森林的优点
在当前所有算法中具有极好的准确率能够有效地运行在大数据集上能够处理具有高维特征的输入样本而且不需要降维能够评估各个特征在分类问题上的重要性对于缺省值问题也能够获得很好得结果
2.2 随机森林算法案例
使用随机森林算法API对乳腺癌数据进行分类操作根据特征属性预测是否会得腺癌的四个目标属性的值并理解随机森数量和决策树深度对模型的影响数据来源乳腺癌数据
# 目标属性
boolFInsemann arget vanabe
boolSchillertarget variable
boolCytologytarget variable
boolBiopsytarget variable2.3 随机森林的思考—提升学习
在随机森林的构建过程中由于各棵树之间是没有关系的相对独立的在构建的过程中构建第m棵子树的时候不会考虑前面的m-1棵树。思考 如果在构建第m棵子树的时候考虑到前m-1棵子树的结果会不会对最终结果产生有益的影响各个决策树组成随机森林后在形成最终结果的时候能不能给定一种既定的决策顺序呢也就是哪棵子树先进行决策、哪棵子树后进行决策
3 随机森林RF的推广算法
RF算法在实际应用中具有比较好的特性应用也比较广泛主要应用在分类、回归、特征转换、异常点检测等。常见的RF变种算法如下
Extra TreeTotally Random Trees EmbeddingTRTEIsolation Forest
3.1 Extra Tree
Extra Tree是RF的一个变种原理基本和RF一样区别如下
RF会随机采样来作为子决策树的训练集而Extra Tree每个子决策树采用原始数据集训练RF在选择划分特征点的时候会和传统决策树一样会基于信息增益、信息增益率、基尼系数、均方差等原则来选择最优特征值而Extra Tree会随机的选择一个特征值来划分决策树。
Extra Tree因为是随机选择特征值的划分点这样会导致决策树的规模一般大于RF所生成的决策树。也就是说Extra Tree模型的方差相对于RF进一步减少。在某些情况下Extra Tree的泛化能力比RF的强。
3.2 Totally Random Trees Embedding(TRTE) TRTE是一种非监督的数据转化方式。将低维的数据集映射到高维从而让映射到高维的数据更好的应用于分类回归模型。 TRTE算法的转换过程类似RF算法的方法建立T个决策树来拟合数据。当决策树构建完成后数据集里的每个数据在T个决策树中叶子节点的位置就定下来了将位置信息转换为向量就完成了特征转换操作。 3.3 Isolation Forest(IForest)
IForest是一种异常点检测算法使用类似RF的方式来检测异常点IForest算法和RF算法的区别在于
在随机采样的过程中一般只需要少量数据即可在进行决策树构建过程中IForest算法会随机选择一个划分特征并对划分特征随机选择一个划分阈值IForest算法构建的决策树一般深度max_depth是比较小的。
区别原因目的是异常点检测所以只要能够区分异常的即可不需要大量数据另外在异常点检测的过程中一般不需要太大规模的决策树。
3.3.1 异常点的判断
对于异常点的判断则是将测试样本x拟合到T棵决策树上。计算在每棵树上该样本的叶子节点的深度htx。从而计算出平均深度hx然后就可以使用下列公式计算样本点x的异常概率值pxm的取值范围为[01]越接近于1则是异常点的概率越大。 3.4 RF随机森林总结
RF的主要优点
训练可以并行化对于大规模样本的训练具有速度的优势由于进行随机选择决策树划分特征列表这样在样本维度比较高的时候仍然具有比较高的训练性能给以给出各个特征的重要性列表由于存在随机抽样训练出来的模型方差小泛化能力强RF实现简单对于部分特征的缺失不敏感。
RF的主要缺点
在某些噪音比较大的特征上RF模型容易陷入过拟合取值比较多的划分特征对RF的决策会产生更大的影响从而有可能影响模型的效果。
3.5 RF scikit-learn相关参数 4 Boosting提升学习 提升学习Boosting是一种机器学习技术可以用于回归和分类的问题它每一步产生弱预测模型(如决策树)并加权累加到总模型中如果每一步的弱预测模型的生成都是依据损失函数的梯度方式的那么就称为梯度提升(Gradient boosting) 提升技术的意义如果一个问题存在弱预测模型那么可以通过提升技术的办法得到一个强预测模型 常见的模型有 AdaboostGradient Boosting(GBT/GBDT/GBRT) 4.1 Adaboost算法
4.1.1 Adaboost算法原理
Adaptive Boosting是一种迭代算法。每轮迭代中会在训练集上产生一个新的学习器然后使用该学习器对所有样本进行预测以评估每个样本的重要性(Informative)。换句话来讲就是算法会为每个样本赋予一个权重每次用训练好的学习器标注/预测各个样本如果某个样本点被预测的越正确则将其权重降低否则提高样本的权重。权重越高的样本在下一个迭代训练中所占的比重就越大也就是说越难区分的样本在训练过程中会变得越重要整个迭代过程直到错误率足够小或者达到一定的迭代次数为止。
4.1.2 Adaboost算法
Adaboost算法将基分类器的线性组合作为强分类器同时给分类误差率较小的基本分类器以大的权值给分类误差率较大的基分类器以小的权重值构建的线性组合为 最终分类器是在线性组合的基础上进行Sign函数转换 4.1.3 Adaboost算法推导 4.1.4 Adaboost算法构建过程 4.1.5 Adaboost算法的直观理解 4.1.6 Adaboost scikit-learn相关参数 4.1.7 Adaboost总结
Adaboost的优点如下
可以处理连续值和离散值模型的鲁棒性比较强解释强结构简单。
Adaboost的缺点如下
对异常样本敏感异常样本可能会在迭代过程中获得较高的权重值最终影响模型效果。
4.2 梯度提升迭代决策树GBDT
GBDT也是Boosting算法的一种但是和AdaBoost算法不同区别如下AdaBoost算法是利用前一轮的弱学习器的误差来更新样本权重值然后一轮一轮的迭代GBDT也是迭代但是GBDT要求弱学习器必须是CART模型而且GBDT在模型训练的时候是要求模型预测的样本损失尽可能的小。别名GBTGradient Boosting Tree、GTBGradient Tree Boosting、GBRTGradient Boosting Regression TreeGBDTGradient Boosting Decison Tree、MARTMultiple Additive Regression Tree GBDT由三部分构成DTRegression Decistion TreeGBGradient Boosting和Shrinkage衰减由多棵决策树组成所有树的结果累加起来就是最终结果迭代决策树和随机森林的区别 随机森林使用抽取不同的样本构建不同的子树也就是说第m棵树的构建和前m-1棵树的结果是没有关系的迭代决策树在构建子树的时候使用之前子树构建结果后形成的残差作为输入数据构建下一个子树然后最终预测的时候按照子树构建的顺序进行预测并将预测结果相加。
4.2.1 GBDT算法原理 4.2.2 GBDT中回归算法和分类算法的区别
两者唯一的区别就是选择不同的损失函数回归算法选择的损失函数一般是均方差最小二乘或者绝对值误差而在分类算法中一般的损失函数选择对数函数来表示。 4.2.3 GBDT scikit-learn相关参数 4.2.4 GBDT总结
GBDT的优点如下
可以处理连续值和离散值在相对少的调参情况下模型的预测效果也会不错模型的鲁棒性比较强。
GBDT的缺点如下
由于弱学习器之间存在关联关系串行难以并行训练模型。
5 Bagging、Boosting的区别面试重点 样本选择Bagging算法是有放回的随机采样Boosting算法是每一轮训练集不变只是训练集中的每个样例在分类器中的权重发生变化而权重根据上一轮的分类结果进行调整 样例权重Bagging使用随机抽样样例的权重Boosting根据错误率不断的调整样例的权重值错误率越大则权重越大 预测函数Bagging所有预测模型的权重相等Boosting算法对于误差小的分类器具有更大的权重。 并行计算Bagging算法可以并行生成各个基模型Boosting理论上只能顺序生产因为后一个模型需要前一个模型的结果 Bagging是减少模型的variance方差Boosting是减少模型的Bias偏度。 Bagging里每个分类模型都是强分类器因为降低的是方差方差过高是过拟合Boosting里每个分类模型都是弱分类器因为降低的是偏度偏度过高是欠拟合。 errorBias偏度variance方差 Bagging对样本重采样对每一轮的采样数据集都训练一个模型最后取平均。由于样本集的相似性和使用的同种模型因此各个模型的具有相似的bias和variance 6 Stacking
Stacking是指训练一个模型用于组合combine其它模型基模型/基学习器的技术。即首先训练出多个不同的模型然后再以之前训练的各个模型的输出作为输入来新训练一个新的模型从而得到一个最终的模型。一般情况下使用单层的Logistic回归作为组合模型。