解析python实现Lasso回归


Posted in Python onSeptember 11, 2019

Lasso原理

解析python实现Lasso回归

Lasso与弹性拟合比较python实现

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
#def main():
# 产生一些稀疏数据
np.random.seed(42)
n_samples, n_features = 50, 200
X = np.random.randn(n_samples, n_features) # randn(...)产生的是正态分布的数据
coef = 3 * np.random.randn(n_features)   # 每个特征对应一个系数
inds = np.arange(n_features)
np.random.shuffle(inds)
coef[inds[10:]] = 0 # 稀疏化系数--随机的把系数向量1x200的其中10个值变为0
y = np.dot(X, coef) # 线性运算 -- y = X.*w
# 添加噪声:零均值,标准差为 0.01 的高斯噪声
y += 0.01 * np.random.normal(size=n_samples)
# 把数据划分成训练集和测试集
n_samples = X.shape[0]
X_train, y_train = X[:n_samples // 2], y[:n_samples // 2]
X_test, y_test = X[n_samples // 2:], y[n_samples // 2:]
# 训练 Lasso 模型
from sklearn.linear_model import Lasso
alpha = 0.1
lasso = Lasso(alpha=alpha)
y_pred_lasso = lasso.fit(X_train, y_train).predict(X_test)
r2_score_lasso = r2_score(y_test, y_pred_lasso)
print(lasso)
print("r^2 on test data : %f" % r2_score_lasso)
# 训练 ElasticNet 模型
from sklearn.linear_model import ElasticNet
enet = ElasticNet(alpha=alpha, l1_ratio=0.7)
y_pred_enet = enet.fit(X_train, y_train).predict(X_test)
r2_score_enet = r2_score(y_test, y_pred_enet)
print(enet)
print("r^2 on test data : %f" % r2_score_enet)
plt.plot(enet.coef_, color='lightgreen', linewidth=2,
     label='Elastic net coefficients')
plt.plot(lasso.coef_, color='gold', linewidth=2,
     label='Lasso coefficients')
plt.plot(coef, '--', color='navy', label='original coefficients')
plt.legend(loc='best')
plt.title("Lasso R^2: %f, Elastic Net R^2: %f"
     % (r2_score_lasso, r2_score_enet))
plt.show()

运行结果

解析python实现Lasso回归

总结

以上所述是小编给大家介绍的python实现Lasso回归,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
分享python数据统计的一些小技巧
Jul 21 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
pytorch之ImageFolder使用详解
Jan 06 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
Python 列表中的修改、添加和删除元素的实现
Jun 11 Python
Pycharm操作Git及GitHub的步骤详解
Oct 27 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
Python一些基本的图像操作和处理总结
Jun 23 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 #Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 #Python
python实现的发邮件功能示例
Sep 11 #Python
python 字符串常用函数详解
Sep 11 #Python
python sqlite的Row对象操作示例
Sep 11 #Python
Python lambda表达式filter、map、reduce函数用法解析
Sep 11 #Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 #Python
You might like
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP创建XML接口示例
2019/07/04 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
jQuery Ajax之load()方法
2009/10/12 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
采用怎样的方法保证数据的完整性
2013/12/02 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
python 中的@运算符使用
2021/05/26 Python
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL