Scikit-learn中的Lasso/LassoCV以及R^2可决系数的分析与讨论

在项目中使用了Scikit-learn的Lasso以及LassoCV的包,关于LassoCV我在上一篇文章https://blog.csdn.net/sinat_37931324/article/details/97707814中做过简介。在文章https://blog.csdn.net/xiaozhu_1024/article/details/80585151的启发以及组里前辈的建议下,我逐渐认识到R^2最好是来自未接触过训练的测试集,这一点在上一个链接中的实例得到了很好的体现。不过,链接中采用了20次交叉验证,但是我听前辈说这有点过多了,10次可能差不多。

但是,我在跑我的数据时遇到一个问题,即在默认的1000次循环内收敛,从而找不到最优的alpha。我们固然可以成倍提升循环次数的上限,但是这样所带来时间消耗也是相当大的。

另一方面,直接对alpha赋以如0.01之类的特定值,能对特定target产生比较好的R^2,但是也应清楚认识到,对于每一个模型来说,其数据特性所导致的对应最优的Lasso的alpha是不一样的,粗暴地对所有模型都赋以同样的alpha值可能只能找到部分表现比较好的,有的表现不好只是因为alpha值不到位。另一方面,Lasso本身是一种导致稀疏系数结果的工具,所以我们需要在结果的准确性以及R^2的大小中取得一个平衡。

20190819更新:

嘿,你猜怎么着?把收敛次数上限提到10000,竟然就没有不收敛的warning了!但这些所谓用交叉验证找出的“最优”alpha都在0.0003~0.0006这样的区间,看上去不太对劲。

在这之后,将这些alpha重新用于每个Lasso模型,然后从20%的测试集中取得R^2。在做randomness check的时候可以threshold掉大部分比较低的R^2的Cell Line (比如只取前20%),再去算他们是否random。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值