task 03 集成模式

2021/10/20 23:43:42

本文主要是介绍task 03 集成模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Task01开始啦:
决策树(上),截止时间:10月21日03:00
-------
【资料链接】https://datawhalechina.github.io/machine-learning-toy-code/01_tree_ensemble/02_ensemble.html#part-b

主要学习知识点:

【练习1】左式第四个等号为何成立?


c o v ( E D [ f ^ D ] − f ^ D , ϵ ) = 0 cov(\mathbb{E}_{D}[\hat{f}_D] - \hat{f}_D, \epsilon) = 0 cov(ED​[f^​D​]−f^​D​,ϵ)=0
【练习2】有人说Bias-Variance Tradeoff就是指“一个模型要么具有大的偏差,要么具有大的方差”,你认为这种说法对吗?你能否对“偏差-方差权衡”现象做出更准确的表述?

不对。

更准确的表达是,对于那些偏差比较小的模型,其对训练数据集的拟合能力也就越好,学习到了很多关于特征和输出之间的关系,有了这种性质之后,对于新的信息,我们预测能力就比较差,因为我们模型携带了太多关于原始(训练)数据的信息,所以对于新的数据集(测试集)的学习能力就比较弱,产生的波动比较大。

同理,对于那些方差比较小的模型,其模型的变化情况不会太大。

【练习3】假设总体有100个样本,每轮利用bootstrap抽样从总体中得到10个样本(即可能重复),请求出所有样本都被至少抽出过一次的期望轮数。(通过本文介绍的方法,我们还能得到轮数方差的bound)

抽到n个不同的样本的次数期望为:
E ( T ) = E ( t 1 + t 2 + ⋯ + t n ) = n ⋅ H n \begin{aligned} \mathrm{E}(T) &= \mathbb{E}(t_1 + t_2 + \cdots + t_n) \\ &= n \cdot H_n \end{aligned} E(T)​=E(t1​+t2​+⋯+tn​)=n⋅Hn​​
其中 H n H_n Hn​​为harmonic number(调和数),取值为:
E = n ⋅ H n = n log ⁡ n + γ n + 1 2 + O ( 1 / n ) \mathrm{E} = n \cdot H_n = n \log n + \gamma n + \cfrac{1}{2} + O(1/n) E=n⋅Hn​=nlogn+γn+21​+O(1/n)
当我们已经收集到 k k k个不同的样本之后,再累计收集到 n n n个样本所需要的抽样此为的期望为:
E ( T k ) = E ( t k + 1 + t k + 2 + ⋯ + t n ) = n ⋅ ( 1 1 + 1 2 + ⋯ + 1 n − k ) = n ⋅ H n − k \begin{aligned} \mathrm{E}(T_k) &= \mathrm{E}(t_{k+1} + t_{k+2} + \cdots + t_{n}) \\ &=n \cdot ( \cfrac{1}{1} + \cfrac{1}{2} + \cdots + \cfrac{1}{n-k}) \\ &= n \cdot H_{n-k} \end{aligned} E(Tk​)​=E(tk+1​+tk+2​+⋯+tn​)=n⋅(11​+21​+⋯+n−k1​)=n⋅Hn−k​​

E ( T 10 ) = E ( t 11 + t 12 + ⋯ + t 100 ) = E ( T 100 ) − E ( T 10 ) ≈ 100 log ⁡ 100 + γ 100 + 1 2 − ( 10 log ⁡ 10 + γ 10 + 1 2 ) = 190 log ⁡ 10 + 90 γ \begin{aligned} \mathrm{E}(T_{10}) &= \mathrm{E}(t_{11} + t_{12} + \cdots + t_{100}) \\ &= \mathrm{E}(T_{100}) - \mathrm{E}(T_{10}) \\ &\approx 100 \log 100 + \gamma 100 + \cfrac{1}{2} - (10 \log 10 + \gamma 10 + \cfrac{1}{2}) \\ &= 190\log 10 + 90 \gamma \end{aligned} E(T10​)​=E(t11​+t12​+⋯+t100​)=E(T100​)−E(T10​)≈100log100+γ100+21​−(10log10+γ10+21​)=190log10+90γ​
TODO:轮数方差的bound

【练习4】对于stacking和blending集成而言,若m个基模型使用k折交叉验证,此时分别需要进行几次训练和几次预测?

训练:k * m + 1

预测:(2 * k) * m+ 1

【练习5】r2_score和均方误差的区别是什么?它具有什么优势?

r2_score 代表的是模型拟合的效果,取值为[0,1]之间。它能够说明模型的线性拟合程度,当r2_score接近1时,线性模型的拟合效果比较好,当模型接近0时,模型的线性拟合效果较差。

均方误差:
M S E = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 MSE = \cfrac{1}{N} \sum_{i=1}^{N} (y_i-\hat{y}_i)^2 MSE=N1​i=1∑N​(yi​−y^​i​)2
代表的是模型的综合误差,从中可以分解出偏差和方差以及模型本身自带的误差。综合性更强。

【练习6】假设使用闵氏距离来度量两个嵌入向量之间的距离,此时对叶子节点的编号顺序会对距离的度量结果有影响吗?

闵氏距离定义为:
D ( x , y ) = ( ∑ u = 1 n ∣ x u − y u ∣ p ) 1 p D(x, y) = (\sum_{u=1}^{n}|x_u -y_u|^p)^{\cfrac{1}{p}} D(x,y)=(u=1∑n​∣xu​−yu​∣p)p1​
编号顺序不会对距离的度量结果有影响。因为这些都是计算每个向量两个分量之间的距离关系,所以说编号顺序回对距离的度量结果没有影响。

关于闵氏距离,有以下的补充:

1、闵氏距离和特征参数的量纲有关,不同量纲的特征参数的闵氏距离常常是没有意义的。

2、闵氏距离没有考虑特征参数之间的相关性,而马哈拉诺比斯距离解决了这个问题。

知识回顾¶

  1. 什么是偏差和方差分解?偏差是谁的偏差?此处的方差又是指什么?

    偏差和方差的分解,是对原始SSE部分进行分解,其中添加了一个常数项 E D [ f ^ D ] \mathbb{E}_{D}[\hat{f}_D] ED​[f^​D​]​.

    偏差是指数据真实值和模型平均预测值的偏差,偏差越小,模型的学习能力越强,能够很好的拟合数据;方差是值预测结果对数据集中数据扰动幅度的大小,方差越小,说明模型的抗干扰能力越强(不会随着数据集中数据的变动而对预测结果造成巨大的影响)。

  2. 相较于使用单个模型,bagging和boosting方法有何优势?

    通过使用低偏差的学习其进行集成可以来降低模型的方差,

    利用多个低方差的学习其进行集成可以来降低模型的偏差;

    多个臭皮匠顶个诸葛亮。

    bagging的话,有抽样,多个数据集之间肯定有差异,集成之后,可以稍微降低整体模型的方差;

    boosting的话,会集中在减少原始训练的模型和真实值之间的差异带来的损失,这种训练会使得模型的偏差减小。

  3. 请叙述stacking的集成流程,并指出blending方法和它的区别。

  4. 什么是随机森林的oob得分?

  5. 随机森林是如何集成多个决策树模型的?

  6. 请叙述孤立森林的算法原理和流程。



这篇关于task 03 集成模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程