清华大学-数据挖掘-2.1 Boosting 清华大学-数据挖掘-3.1 AdaBoost 清华大学-数据挖掘-4.1 RegionBoost
集成分类器
==Boosting算法== 和bagging的区别是:Bossting是串行的。 eg: 用分类器:D1,D2(学习D1分错的),D3(学习D1D2不一样的) O1O2一致直接输出,O1O2不一致输出O3 Step1 从原来的数据集合D中用Bootstrap挑一个D1 Step2 用D1训练一个分类器C1 Step3 用数据集D来测试C1,分对的和分错的打标签作为D2 Step4 用D2训练一个分类器C2 Step5 用D来测试C1和C2,把C1和C2输出中不一致的部分打标签作为D3 Step6 用D3 训练一个分类器C3 Step7 测试:输入x, O1O2一致则直接输出,O1O2不一致则输出O3
先训练一个分类器,然后根据误差把训练样本调整(加权),然后让后边的分类器重点学习这些分错过的样本,
基础分类器可以非常非常弱,只要正确率大与0.5就行,思想如下: 每个训练器的输出h(x)✖️权重a
==Adaboost算法== Bossting算法中的一个门类: 和Bossting的思想类似,更加细化了 a:更新权重用的,也表示模型最终权重,也是模型学习出来的, Dt(i):t时刻第i个样本的权重,根据分类正误用a增加减小
==Adaboost算法-求权重== T+1时刻,第i个样本的权重D:
$$ \[\begin{aligned} D_{T+1}(i) &=\frac{1}{m} \cdot \frac{e^{-y_{i} \alpha_{1} h_{1}\left(x_{i}\right)}}{Z_{1}} \cdot \cdots \cdot \frac{e^{-y_{i} \alpha_{T} h_{T}\left(x_{i}\right)}}{Z_{T}} \\ &=\frac{e^{\sum_{t}-y_{i} \alpha_{t} h_{t}\left(x_{i}\right)}}{m \prod_{t} Z_{t}}=\frac{e^{-y_{i} \sum_{t} \alpha_{t} h_{t}\left(x_{i}\right)}}{m \prod_{t} Z_{t}} \\ &=\frac{e^{-y_{i} f\left(x_{i}\right)}}{m \prod_{t} Z_{t}} \\ \\ f\left(x_{i}\right)&=\sum_{t} \alpha_{t} h_{t}\left(x_{i}\right)\\ &分类器的估计值:h_t(x_i)\\ &正确结果y_i \end{aligned}\]$$
$$ \[\begin{array}{l} H\left(x_{i}\right) \neq y_{i} \Rightarrow y_{i} f\left(x_{i}\right) \leq 0 \Rightarrow e^{-y_{i} f\left(x_{i}\right)} \geq 1 \\ {\left[H\left(x_{i}\right) \neq y_{i}\right] \leq e^{-y_{i} f\left(x_{i}\right)}} ,[・]成立输出1,否则是0\\ \frac{1}{m} \sum_{i}\left[H\left(x_{i}\right) \neq y_{i}\right] \leq \frac{1}{m} \sum_{i} e^{-y_{i} f\left(x_{i}\right)}\\ 误差上限:\\ \begin{aligned} \frac{1}{m} \sum_{i}\left[H\left(x_{i}\right) \neq y_{i}\right] & \leq \frac{1}{m} \sum_{i} e^{-y_{i} f\left(x_{i}\right)} \\ &=\sum_{i}\left(\prod_{t} Z_{t}\right) D_{T+1}(i) \\ &=\prod_{t} Z_{t} \quad\left(\text { since } D_{T+1} \text { sums to } 1\right)\\ 无法直接最小化Z的乘,只能最小化每个当前的z..\\ \min _{\alpha} Z_{t} &\Rightarrow \min \prod_{t} Z_{t}\\ \end{aligned} \end{array}\]$$
\[ 最小化Z\\ \begin{array}{l} y, h(x) \in\{-1,+1\} \quad Z=\sum_{i} D_{i} e^{-\alpha y_{i} h\left(x_{i}\right)} \\ e^{-\alpha y_{i} h\left(x_{i}\right)}=e^{-\alpha} P\left(y_{i}=h\left(x_{i}\right)\right)+e^{\alpha} P\left(y_{i} \neq h\left(x_{i}\right)\right) \\ \frac{\partial Z}{\partial \alpha}=-e^{-\alpha} \sum_{i} D_{i} P\left(y_{i}=h\left(x_{i}\right)\right)+e^{\alpha} \sum_{i} D_{i} P\left(y_{i} \neq h\left(x_{i}\right)\right)=0 \\ \alpha=\frac{1}{2} \ln \frac{\sum_{i} D_{i}\left(1-P\left(y_{i} \neq h\left(x_{i}\right)\right)\right)}{\sum_{i} D_{i} P\left(y_{i} \neq h\left(x_{i}\right)\right)}=\frac{1}{2} \ln \frac{1-\varepsilon}{\varepsilon} \end{array} \]
==Adaboost算法-误差上界== 因为Z<1,所以误差上界会趋近0
==RegionBoost== 和Adaboost相比,增加的动态权重(Dynamic Weighting Scheme) 根据输入的x的不同,会有一个特定的权重, eg:C1对数据集分类,C2对C1分错的分类,测试的时候,如果C2判断X是易分对的数据,那么C1就比较可靠
转载请注明来源 https://tianweiye.github.io