白话机器学习 (6):用 Lasso Regression 踢出浑水摸鱼的变量
本文适合人群:对机器学习 Machine Learning 与数据感兴趣的学习者
文章同步公众号:持续学习的杜吉普
温馨提示:阅读本文之前,需对以下内容进行了解并掌握
白话ML(4):公允的裁判-交叉验证Cross-Validation评价模型
白话 ML(5):更高端的线性回归模型 - Ridge Regression (上篇文章)
本文白话什么:
Lasso Regression - Ridge Regression 的大兄弟
本文提纲:
什么是 Lasso Regression?
改变 Penalty 规则的意义什么?
Ridge 和 Lasso 之间该如何选择?
Ridge 和 Lasso 的应用场景
注:全文无编程,只含有少量计算,文章内容全部尽量通俗易懂化,请尽情享用。
什么是 Lasso Regression
Lasso regression 和之前文章中的 Ridge regression 可以说是一对组合。他们都是在 linear regression 的基础上加上了一个尾巴 Penalty,使得原来的 linear regression 发生了一定的变化。具体的变化规则,请详细阅读 Ridge regression 文章
Lasso regression 和 ridge regression 的区别就是尾巴上的 slope^2 变成了|slope|多了一个绝对值符号。如下图,上面是 ridge regression 的训练准则,下面是 Lasso 的,这个小小的改变看似无关紧要,但其实作用很大。
改变 Penalty 规则的意义
意义在于 ridge regression 只能将 slope 减小到接近 0,而 Lasso regression 能够将 slope 减小至 0 ,通过下图,我们可以看出,当λ变大,slope 就会接近于 0,并且最终等于 0。
如果我们最终找到的最优λ恰好可以使某些变量的 coefficient 变成 0,那么这就意味着,Lasso regression 可以减少变量的数量,让更少的变量参与到模型的建立中,这种建立方式可以将那些原本对于 target value 贡献度不大的变量彻底踢出队伍。如下图所示。
如何选择 ridge 和 lasso?
当你已经提前知道所有变量都是会对 target value 产生影响时,你可以优先选择 ridge regression。
当你对于数据意义没有清晰认知时,可以优先选择 lasso regression,因为 lasso regression 能够将没有用(useless)的变量排除于最后的模型中。这使得最终的模型更加轻量化(simpler)同时也更加容易解释(interpret)。
应用场景
曾经做过一个机器学习的项目,是帮助 Santander 建立客户满意度预测模型。变量数有几百个,并且变量名由于商业原因全部脱敏,也就是说我们对于变量的意义完全不知道。这个时候,为了减少变量数量,减轻训练压力,我们就可以通过 Lasso regression 对于变量进行瘦身,先初筛出对于预测结果有帮助的变量再进行之后的处理。
本文参考信息来源:
SateQuest
机器学习项目来源:
Kaggle https://www.kaggle.com/c/santander-customer-satisfaction
---------------------
白话 ML 就到这里,下期预告:人类最好理解的机器学习模型:决策树 Decision Tree
PS:有任何疑问欢迎留言,本文完全个人浅薄理解,如有不足欢迎评论区指正。
我是杜吉普,致力于 数据+数据技术+商业场景=商业价值
欢迎关注公众号持续学习的杜吉普,让我们共同持续成长。
版权声明: 本文为 InfoQ 作者【杜吉普】的原创文章。
原文链接:【http://xie.infoq.cn/article/1091747d9f97400a3f3b018e9】。文章转载请联系作者。
评论