元算法(meta-algorithm)是对其他算法进行组合的一种方式,即模型融合。
模型融合主要分为三种:Bagging、Boosting和Stacking。 思想:将弱分类器融合成强分类器,融合后比最强的弱分类器更好。 视频导学:https://www.bilibili.com/video/BV1y4411g7ia?p=8 参考:
https://www.cnblogs.com/hithink/p/6424508.html https://www.cnblogs.com/rongyux/p/5621854.html 注释https://www.cnblogs.com/zy230530/p/6909288.html单层决策树(decision stump)分类器 -> 运用Adaboost -》 处理非均衡分类问题。
多种分类器的组合成为集成方法(ensemble method)或者元算法(meta-algorithm)。集成方式包括:不同算法集成、同一算法不同设置的集成、数据集不同部分分配给不同的分类器的集成。
bagging:基于数据随机重抽样的分类器构建方法 · 自举汇聚法(bootstrap aggregating),也称为bagging方法。 · 各分类器权重相同 · 并行预测 · 有放回抽取得到S个数据集 · 代表方法:随机森林(random forest)
boosting: 关注被已有分类器错分的数据来获得新的分类器。 · 基于所有分类器 结果的加权求和 · 各分类器权重不相同 · 串行顺序预测 · 同一数据集 · 分类器的权重对应于上一轮迭代中的成功度 · 代表方法:AdaBoost, GBDT, XGBoost.
即 adaptive boosting,自适应boosting。 训练数据中的每个样本,赋予了一个权重,这些权重构成了向量 D D D; 为了从所有弱分类器中得到最终的分类结果,AdaBoost为每个分类器分配了一个权重值 α \alpha α, 这些 α \alpha α值基于每个弱分类器的错误率。
在每一轮如何改变训练数据的权值或者概率分布? 提高错分样本的权值,减少分对样本的权值。( D D D)
通过什么方式组合弱分类器? 通过加法模型将弱分类器进行线性组合,比如adaboost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器权值。( α \alpha α) 分类正确的样本,权重更改为: D i t + 1 = D i ( t ) e − α S u m ( D ) D_i^{t+1} = \frac{D_i^{(t)} e^{-\alpha}}{Sum(D)} Dit+1=Sum(D)Di(t)e−α 分类错误的样本,权重更改为: D i t + 1 = D i ( t ) e α S u m ( D ) D_i^{t+1} = \frac{D_i^{(t)} e^{\alpha}}{Sum(D)} Dit+1=Sum(D)Di(t)eα 可统一为: D i t + 1 = D i ( t ) e − α y t h t S u m ( D ) D_i^{t+1} = \frac{D_i^{(t)} e^{-\alpha y_t h_t}}{Sum(D)} Dit+1=Sum(D)Di(t)e−αytht, 预测结果 h t h_t ht是 +1 或 -1。
单层决策树(decision stump,也称为决策树桩),仅基于单个特征来做决策,属于base algorithm。 三层循环:
针对每个特征,如x轴特征,y轴特征,每一列都是一种特征。针对每个阈值 (步长),(rangeMax - rangeMin)/ numSteps针对阈值下的每种情况,即不等式’lt’或者’gt’.数组过滤: 通过比较predictedVals == labelMat两者是否相等,来赋0值。这里是想把预测错误的位置置为1, 正确置为0。 如此一来, 在后续统计总的error的时候可以直接用weightedError =D.T* errArr 或者更后面用matrix.sum()。最终得到字典、错误率、类别估计值。
基于单层决策树的训练过程,见P122.
numIt 指定迭代次数,这里相当于想要得到多少个相同类型的弱分类器。 m个样本,初始化每个样本的权重为 1/m np.multiply(x,y)是对应位置相乘,这里 shape(x) == shape(y) sign() 是符号函数。 观察输出可以看到,在D中,错误的样本权重会增大。
输出类别的估计值乘上该单层决策树的 α \alpha α权重然后累加到aggClassEst上,作为最终结果。
检查数据, 确保标签是+1和-1 数据集默认最后一列是类别标签 是否过拟合?
混淆矩阵(confusion matrix),不同类别的分类代价并不相等。 错误率: 指在所有测试样例中错分的样例比例。 正确率、召回率 ROC曲线与AUC 基于matplotlib绘图<1.0, 1.0>到<0, 0>
准确率accuracy 和 精确率 precision的区别
基于代价函数的分类器决策控制欠抽样和过抽样——两种处理非均衡问题的数据抽样方法 过采样的方法,如SOMTE和ADASYN算法,通常比欠采样效果好。分类结果是标称值,回归结果是连续值。
下一篇: 利用回归预测数值型数据。