Python机器学习:集成学习

前两天看了SVM、逻辑回归、KNN、决策树、贝叶斯分类这几个很成熟的机器学习方法,但是,今天不看方法了,来看一种思想:集成学习:

先来看一下集成学习的基本原理:通过融合多个模型,从不同的角度降低模型的方差或者偏差,典型的有三种:Bagging、Boosting、Stacking,集成学习分四天来学习,今天先看一一下:偏差、方差这两个概念:

对于一个回归问题,我们假设,样本(x,y)服从P(x,y),再假设(x,y_D)是集合D中的样本,D从P分布采样得到,因为采样过程会存在噪声\varepsilon =y-y_D,或者也可以叫他采样误差,早上一般服从高斯分布N(0,\sigma ^2):

\left\{\begin{matrix} E_D(y-y_D)=0 & \\ E_D(y-y_D)^2=\sigma^2& \end{matrix}\right.

这里我们假设我们需要优化得到的模型为f(X),f_d(x)是其在D上的优化结果,由于D是随机采样得到的任意一个分布,所以f_d(x)也是随机变量,我们定义f_d(x)是在D上的期望为:

E_D(f_D(x)),再定义bias(x)为期望值和真实值之间的平方差:

bias(x)=(E_D[f_D(x)-y])^2

定义采样分布D的偏差bias(x)为期望值和采样值之间的平方差:

bias_D(x)=E_D[(E_D(f_D(x)-y_D)^2]

又可以知道:

E_D[2(E_D[f_D(x)]-y)(y-y_D)]=0

所以,

bias_D(x)=E_D[(E_D[f_D(x)-y+y-y_D])^2]=bias(x)+\sigma^2

模型随机变量f_d(x)再D上的方差var(x)为:

var(x)=E_D[(f_D(x)-E_D[f_D(x)])^2]

实际优化的摸底是让模型随机变量f_d(x)在所有可能的样本集合分布D上的预测误差的平方误差的期望最小,也就是最小化:

E_D[(f_D(x)-y_D)^2]=var(x)+bias_D(x)=var(x)+bias(x)+\sigma^2

 \sigma^2是个常量,优化的最终目的是降低模型的方差和偏差,方差越小,说明不同的采样分布D下,模型的泛化能力大致相当,从侧面反映了模型没有发生过你和,偏差越小,说明模型对样本预测的越准,模型的拟合能力会越好。

实际在选择模型的时候,随着模型复杂度的增加,模型的偏差bias(x)越来越小,而方差var(x)越来越大,我们需要找的,就是某一个时刻,模型的方差和偏差值之和达到最小,此时,可以仍未说模型性能在误差及泛化能力方面达到最优。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值