解析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中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
python实现的希尔排序算法实例
Jul 01 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Python变量类型知识点总结
Feb 18 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
Python操作Excel的学习笔记
Feb 18 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
关于Numpy之repeat、tile的用法总结
Jun 02 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
python实现输入数字的连续加减方法
2018/06/22 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
如何基于python生成list的所有的子集
2019/11/11 Python
python科学计算之narray对象用法
2019/11/25 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
大学自荐信
2013/12/12 职场文书
优秀家长事迹材料
2014/05/17 职场文书
高中同学会活动方案
2014/08/14 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
产品调价通知函
2015/04/20 职场文书
初中语文教师研修日志
2015/11/13 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers