解析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使用新浪微博api上传图片到微博示例
Jan 10 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
python中lambda与def用法对比实例分析
Apr 30 Python
python比较2个xml内容的方法
May 11 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
python os.fork() 循环输出方法
Aug 08 Python
深入了解python中元类的相关知识
Aug 29 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 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 和 MySQL 基础教程(三)
2006/10/09 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php之curl设置超时实例
2014/11/03 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
利用Python学习RabbitMQ消息队列
2015/11/30 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
python实现剪切功能
2019/01/23 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
文字自荐书范文
2014/02/10 职场文书
股东协议书
2014/04/14 职场文书
医师定期考核实施方案
2014/05/07 职场文书
教师个人自我评价
2015/03/04 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书