加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python数据科学:正则化方法

发布时间:2019-01-29 22:16:29 所属栏目:教程 来源:小F
导读:副标题#e# 本文主要介绍,Python数据科学:正则化方法。正则化方法的出现,通过收缩方法(正则化方法)进行回归。 正则化方法主要包括岭回归与LASSO回归。 一、岭回归 岭回归通过人为加入的惩罚项(约束项),对回归系数进行估计,为有偏估计。 有偏估计,允许

使用LassoCV交叉验证确定最优的正则化系数。

  1. # 生成正则化系数 
  2. lasso_alphas = np.logspace(-3, 0, 100, base=10) 
  3. # 使用不同的正则化系数对模型进行交叉验证 
  4. lcv = LassoCV(alphas=lasso_alphas, cv=10) 
  5. # 使用数据集训练(fit) 
  6. lcv.fit(X, y) 
  7. # 输出最优参数,正则化系数及相应模型R² 
  8. print('The best alpha is {}'.format(lcv.alpha_)) 
  9. print('The r-square is {}'.format(lcv.score(X, y))) 
  10.  
  11. # 输出结果 
  12. The best alpha is 0.04037017258596556 
  13. The r-square is 0.4426451069862233 

发现最优的正则化系数为0.04,模型R²为0.443。

接下来获取不同正则化系数下的变量系数轨迹。

  1. lasso = Lasso() 
  2. lasso_coefs = [] 
  3. # 不同正则化系数下的变量系数 
  4. for alpha in lasso_alphas: 
  5.     lasso.set_params(alpha=alpha) 
  6.     lasso.fit(X, y) 
  7.     lasso_coefs.append(lasso.coef_) 
  8.  
  9. # 绘制变量系数随正则化系数变化的轨迹 
  10. ax = plt.gca() 
  11. ax.plot(lasso_alphas, lasso_coefs) 
  12. ax.set_xscale('log') 
  13. plt.xlabel('alpha') 
  14. plt.ylabel('weights') 
  15. plt.title('Lasso coefficients as a function of the regularization') 
  16. plt.axis('tight') 
  17. plt.show() 

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读