解析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中的魔法方法深入理解
Jul 09 Python
Python创建日历实例
Aug 21 Python
Python 详解基本语法_函数_返回值
Jan 22 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
Python反转序列的方法实例分析
Mar 21 Python
mac下如何将python2.7改为python3
Jul 13 Python
Python绘制KS曲线的实现方法
Aug 13 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 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程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
js 表格隔行颜色
2009/12/02 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
JavaScript获取某一天所在的星期
2019/09/05 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
Python语法分析之字符串格式化
2019/06/13 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
python如何实现递归转非递归
2021/02/25 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
求职信的七个关键技巧
2014/02/05 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
2014年财务部工作总结
2014/11/11 职场文书
邀请函样本
2015/02/02 职场文书
小学元宵节活动总结
2015/02/06 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
Python中三种花式打印的示例详解
2022/03/19 Python
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js