python算法指标:AIC和BIC

在四处寻找资料后,想写下来这篇文章来证明下我的观点,同时可以抛砖引玉来获得更好的答案.

首先先让我们思考两个问题

1)实现参数的稀疏有什么好处吗?

一个好处是可以简化模型,避免过拟合。因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,那么可以对训练数据可以预测的很好,但是对测试数据就只能呵呵了。另一个好处是参数变少可以使整个模型获得更好的可解释性。

2)参数值越小代表模型越简单吗?

是的。为什么参数越小,说明模型越简单呢,这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

 

2:L0,L1,L2正则化的一些介绍:

在机器学习中,我们听到的L0,L1这样的正则化方法比AIC,BIC要多得多,那么这些正则化的概念是什么呢?

1:正则化概念

L0正则化的值是模型参数中非零参数的个数。

L1正则化表示各个参数绝对值之和。

L2正则化标识各个参数的平方的和的开方值。

1:L0正则化

从我们开头的那两个问题我们可以知道,稀疏的参数可以有效地解决过拟合的问题,因此我们可以用非零参数的个数去做正则化的运算来去解决过拟合的问题.但是因为L0正则化很难求解,是一个NP,所以我们一般都采用L1正则化.

2:L1正则化

因为L1正则化是L0正则化的最优凸近似,并且在比L0更好求解的同时,也可以实现稀疏的效果,因此在实际过程中L1常常用来代替L0,来防止过拟合,L1之所以可以解决过拟合,是因为L1的范数是各个参数的绝对值相加得到的,我们在之前讨论了参数的大小和模型的复杂度是成正比对的,因此越是复杂的模型,其中的L1范数也就越大,最终导致的损失函数也就越大,其实也就说明这个模型不够优秀.

3:L2正则化

L2和L1正则化去解决过拟合的方法基本一样,只是形式的表现上有所区别,L2范数是各参数的平方和再求平方根,我们让L2范数的正则项

 

最小,可以使W的每个元素都很小,都接近于0。但与L1范数不一样的是,它不会是每个元素为0,而只是接近于0。越小的参数说明模型越简单,越简单的模型越不容易产生过拟合现象。

 

对着两种进行对比,L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。L1在特征选择时候非常有用,而L2就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择L1比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用L2也许更合适。

 

回到我们的文章最先的问题中,我们应该怎么选择AIC和BIC以及L系类正则化问题中,我想在机器学习领域,大家对 L1和 L2 说的很赞,他们就是不同的正则化方式,主要用于参数学习。但是AIC/BIC 虽然也是一种正则化,但他们多用于结构选择。比如贝叶斯网结构学习时,单纯用似然会导致极其稠密的网络,使用这两种信息准则替代似然,会得到比较满意的解。

l1, l2 是在模型训练的过程中通过正则项来控制feature 个数,达到防止模型过拟合的问题。
AIC,BIC是在已经训练出来的模型中选择更好的那个模型时候的判断准则。

他们的共性是都是为了找到更好的模型。
区别是l1,l2在模型训练的过程中通过加约束来达到生成更好的模型的目的。
而AIC,BIC是在已经训练好的不同模型里面筛选出相对最好的那个模型,目的不同,最终的结果也一定有所差距.

 

参考链接:https://zhuanlan.zhihu.com/p/26372789 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值