解析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解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
django表单实现下拉框的示例讲解
May 29 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
pandas 层次化索引的实现方法
Jul 06 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
Django权限控制的使用
Jan 07 Python
详解python的变量缓存机制
Jan 24 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
JS交换变量的方法
2015/01/21 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python中装饰器高级用法详解
2017/12/25 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
python障碍式期权定价公式
2019/07/19 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
建筑专业毕业生推荐信
2013/11/21 职场文书
个人自我剖析材料
2014/02/07 职场文书
商务英语广告词大全
2014/03/18 职场文书
劳资协议书范本
2014/04/23 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android
Python软件包安装的三种常见方法
2022/07/07 Python