解析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语句、函数与方法的使用技巧总结
Dec 08 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
python中lambda()的用法
Nov 16 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
python实现简易动态时钟
Nov 19 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
PyTorch在Windows环境搭建的方法步骤
May 12 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 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
Symfony2安装的方法(2种方法)
2016/02/04 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
python线程池的实现实例
2013/11/18 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python和JavaScript哪个容易上手
2020/06/23 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
python安装sklearn模块的方法详解
2020/11/28 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
行政监察建议书
2014/05/19 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
中班下学期个人总结
2015/02/12 职场文书
2015年工程部工作总结
2015/04/30 职场文书
离婚起诉书范本
2015/05/18 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
2015团员个人年度总结
2015/11/24 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python