机器学习(周志华) 参考答案 第八章 集成学习

版权声明:本文为博主原创文章,技术有限,如果发现错误或问题请告知博主,转载请注明出处,谢谢。 https://blog.csdn.net/icefire_tyh/article/details/52194771

机器学习(周志华) 参考答案 第八章 集成学习

机器学习(周志华西瓜书) 参考答案 总目录


    学了那么多分类器,但真正应用起来都是将这些分类器进行集成学习,达到更好的泛化效果。

1.假设硬币正面朝上的概率为p,反面朝上的概率为1-p。令H(n)代表抛n次硬币所得正面朝上的次数,则最多k次正面朝上的概率为 P ( H ( n ) k ) = i = 0 k ( n i ) p i ( 1 p ) n i 。对 δ > 0 k = ( p δ ) n e 2 δ 2 n 试推导出(8.3)。

p δ = 1 2 ,则 δ = p 1 2 = 1 2 ε
P ( H ( n ) n 2 ) = i = 0 n 2 ( n i ) p i ( 1 p ) n i e 2 ( 1 2 ε ) 2 n = e 1 2 ( 1 2 ε ) 2 n


2.对于0/1损失函数来说,指数损失函数并非仅有的一致替代函数。考虑式(8.5),试证明:任意随机函数 l ( H ( x ) f ( x ) ) ,若对于 H ( X ) 在区间 [ , δ ] ( δ > 0 ) 上单调递减,则 l 是0/1损失函数的一致替代函数。

总损失 L = l ( H ( x ) f ( x ) ) P ( f ( x ) | x ) = l ( H ( x ) ) P ( f ( x ) = 1 | x ) + l ( H ( x ) ) P ( f ( x ) = 0 | x )
H ( x ) 1 , 1 ,要使L最小,当 P ( f ( x ) = 1 | x ) > P ( f ( x ) = 0 | x ) 时,会希望 l ( H ( x ) ) < l ( H ( x ) ) ,由于 l 是递减的,得 H ( x ) > H ( x ) ,的 H ( x ) = 1 。同理当 P ( f ( x ) = 1 | x ) < P ( f ( x ) = 0 | x ) 时, H ( x ) = 1

l ( H ( x ) f ( x ) ) 是对 H ( X ) 的单调递减函数,那么可以认为 l ( H ( x ) f ( x ) ) 是对 ( H ( X ) ) 的单调递增函数
此时 H ( x ) = a r g m a x y 0 , 1 P ( f ( x ) = y | x ) ,即达到了贝叶斯最优错误率,说明 l 是0/1损失函数的一致替代函数。


3.自己编程实现一个AdaBoost,以不剪枝决策树为基学习器,在西瓜数据集3.0α上训练一个AdaBoost集成,并与图8.4比较。


4.GradientBoosting是一种常用的Boosting算法,是分析其与AdaBoost的异同。

GradientBoosting与AdaBoost相同的地方在于要生成多个分类器以及每个分类器都有一个权值,最后将所有分类器加权累加起来
不同在于:
AdaBoost通过每个分类器的分类结果改变每个样本的权值用于新的分类器和生成权值,但不改变每个样本不会改变。
GradientBoosting将每个分类器对样本的预测值与真实值的差值传入下一个分类器来生成新的分类器和权值(这个差值就是下降方向),而每个样本的权值不变。


5.试编程实现Bagging,以决策树桩为学习器,在西瓜数据集3.0α上训练一个Bagging集成,并与8.6进行比较。


6.试述为什么Bagging难以提升朴素贝叶斯分类器的性能。

Bagging主要是降低分类器的方差,而朴素贝叶斯分类器没有方差可以减小。对全训练样本生成的朴素贝叶斯分类器是最优的分类器,不能用随机抽样来提高泛化性能。


7.试述随即森林为什么比决策树Bagging集成的训练速度快。

随机森林不仅会随机样本,还会在所有样本属性中随机几种出来计算。这样每次生成分类器时都是对部分属性计算最优,速度会比Bagging计算全属性要快。


8.MultiBoosting算法与Iterative Bagging的优缺点。

MultiBoosting由于集合了Bagging,Wagging,AdaBoost,可以有效的降低误差和方差,特别是误差。但是训练成本和预测成本都会显著增加。
Iterative Bagging相比Bagging会降低误差,但是方差上升。由于Bagging本身就是一种降低方差的算法,所以Iterative Bagging相当于Bagging与单分类器的折中。


9.试设计一种可视化多样性度量,并与k-误差图比较。

暂无


10.试设计一种能提升k近邻分类器性能的集成学习算法。

可以使用Bagging来提升k近邻分类器的性能,每次随机抽样出一个子样本,并训练一个k近邻分类器,对测试样本进行分类。最终取最多的一种分类。

猜你喜欢

转载自blog.csdn.net/icefire_tyh/article/details/52194771