关于弹性网 的疑问

来源:8-10 L1, L2和弹性网络

lemonlxn

2019-03-08

bobo老师好,
1.弹性网中 r 的取值,一般是多少呢?
2.弹性网,使用CV方式,寻找最适合的参数,一般是这样写吗?
例如:

  from sklearn.linear_model import ElasticNetCV
      
  alphas = [0.0001, 0.0003, 0.0005, 0.001, 0.01, 0.1, 1, 10]
  l1_ratio= [0.1, 0.3 , 0.5, 0.7, 0.9, 0.95, .99, 1]
  
  elastic_net = ElasticNetCV(alphas=alphas,l1_ratio=l1_ratio,max_iter=5000))
  elastic_net.fit(x_train, y_train)
  elastic_net.score(X_test,y_test)

图片描述

写回答

2回答

lemonlxn

提问者

2019-03-09

老师好,之前我使用 ElasticNetCV的时候,看到这里有CV字眼,以为这里也可以进行交叉验证,不过好像是我弄错了。

关于弹性网,我在慕课问答搜索了,没有找到我想要的疑惑。

这里我还有2个疑问,老师麻烦您看一下:


  1. 我这里以波士顿房产为例,使用了 GridsearchCV,ElasticNetCV的方式,不过这里报错了,出现了

    axis -1 is out of bounds for array of dimension 0 报错 。我没怎么用过 ElasticNetCV,您有空的话,可以和我解答一下吗?


//img.mukewang.com/szimg/5c838fbd0001376d26541384.jpg

//img.mukewang.com/szimg/5c838fbd0001f88326921352.jpg

2.弹性网,寻找合适的 r 与 alpha ,适用的场景,主要是线性回归吗?

0
3
liuyubobobo
抱歉,这个问题之前看错了。你使用ElasticNetCV的方法是正确的。 参考这里:http://coding.imooc.com/learn/questiondetail/106276.html
2019-03-09
共3条回复

liuyubobobo

2019-03-08

抱歉,这个问题之前看错了。你使用ElasticNetCV的方法是正确的。

参考这里:http://coding.imooc.com/learn/questiondetail/106276.html


==========


没有一般值。数据不同,场景不同,最佳值不同。r是一个超参数,需要具体调节。


不是。alpha和l1_ratio都只是一个float,不能传入数组。你需要使用循环,尝试不同的参数组合。再回顾一下课程中讲使用网格搜索的方式?


4-5小节使用循环寻找最佳参数,以knn为例:

https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/05-Hyper-Parameters/05-Hyper-Parameters.ipynb


4-6小节使用sklearn提供的GridSearchCV类,以knn为例:

https://git.imooc.com/coding-169/coding-169/src/master/04-kNN/06-More-Hyper-Parameters-in-kNN-and-Grid-Search/06-More-Hyper-Parameters-in-kNN-and-Grid-Search.ipynb


加油!:)


0
1
lemonlxn
bobo老师好,今天才查看,不好意思。这里回复不好截图,我在下面给您截图了,麻烦您有空的时候,看一下,谢谢
2019-03-09
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程