解析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 04 Python
Python中的Classes和Metaclasses详解
Apr 02 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
python3.7.0的安装步骤
Aug 27 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
Python面向对象程序设计示例小结
Jan 30 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
django之自定义软删除Model的方法
Aug 14 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
python logging模块的使用详解
Oct 23 Python
Python实现滑雪小游戏
Sep 25 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
javascript 函数速查表
2010/02/07 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
python计算方程式根的方法
2015/05/07 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Django对models里的objects的使用详解
2019/08/17 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
教师实习自我鉴定
2013/12/13 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
公司节能减排方案
2014/05/16 职场文书
节能减耗标语
2014/06/21 职场文书
立志成才演讲稿
2014/09/04 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
2015年推普周活动方案
2015/05/06 职场文书
90条交通安全宣传标语
2019/10/12 职场文书