python实现Lasso回归

python实现Lasso回归Lasso原理Lasso与弹性拟合比较python实现importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.metricsimportr2_score#defmain():#产生一些稀疏数据np.random.seed(42)n_samples,n_features=50,200X=np…

大家好,又见面了,我是你们的朋友全栈君。

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()

运行结果

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133562.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • K8S部署LNMP集群访问wordpress[通俗易懂]

    K8S部署LNMP集群访问wordpress[通俗易懂]K8S部署LNMP集群访问wordpress

  • 【Time】 不确定度的A类、B类评定及合成

    【Time】 不确定度的A类、B类评定及合成不确定度的A类、B类评定及合成由于测量结果的不确定度往往由多种原因引起的,对每个不确定度来源评定的标准偏差,称为标准不确定度分量,用符号ui表示。(1)不确定度的A类评定用对观测列进行统计分析的方法来评定标准不确定度,称为不确定度A类评定;所得到的相应标准不确定度称为A类不确定度分量,用符号uA表示。它是用实验标准偏差来表征。计算公式:一次测量结果An的uA=S;…

  • 我的书单

    整理了一下自己购物车里的书单,推荐一下。

  • Web 3D机房,智能数字机房HTML5 WebGL(ThreeJS)匠心打造「建议收藏」

    Web 3D机房,智能数字机房HTML5 WebGL(ThreeJS)匠心打造「建议收藏」在H5使用3D技术门槛比较低了,它的基础是WebGL(ThreeJS),一个OpenGL的浏览器子集,支持大部分主要3D功能接口。目前主流的浏览器都有较好的支持,IE需要11。最近web3D机房研发告一段落,有时间整理这段时间的一些成果。主要涉及使用H5、js、WebGL技术。机房3D效果图机房线缆和走线架线缆的连接走向和连接关系是管理员关注的焦点。机架中…

  • Qt css颜色对照表

    Qt css颜色对照表css颜色代码对照FFFFFF#DDDDDD#AAAAAAFFFFFF#DDDDDD#AAAAAA#888888#666666#444444#000000#FFB7DD#FF88C2#FF44AA#FF0088#C10066#A20055#8C0044#FFCCCC#FF8888#FF3333#FF0000#CC0000#AA0000#880000#FFC8B4#FFA488#FF7744

  • 什么是关系型数据库和非关系型数据库_常用的三种关系型数据库

    什么是关系型数据库和非关系型数据库_常用的三种关系型数据库关系型数据库又称为关系型数据库管理系统(RDBMS),它是利用数据概念实现对数据处理的算法,达到对数据及其快速的增删改查操作。既然被称为关系型数据库,那么它的关系在哪里体现呢?举一个例子吧。比如

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号