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

运行结果

在这里插入图片描述

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何卸载tensorflow

    如何卸载tensorflowwindows系统下:1.按windows+r2.输入cmd3.输入pipuninstalltensorflow中间会提示输入Y或者N,输入Y后按回车即可。如果提示找不到pip,或者pip不是内部指令,点击这里解决。https://blog.csdn.net/qq_29371155/article/details/105074987…

    2022年6月22日
    51
  • 微信网页授权真实项目实例

    微信网页授权真实项目实例微信网页授权获取用户 OpenID 文章目录微信网页授权获取用户 OpenID pushpin 微信网页授权的前提 boom 网页授权域名配置 boom 前端获取 Code 前端拉起微信 OAuth2 0 授权解析 codecode 注意事项 boom 后端根据 code 获取用户 OpenID 通过 code 换取网页授权根据 access tokena 获取用户信息 access token 注意事项 boom 详情以及错误信

    2025年8月31日
    7
  • 知识图谱入门 (七) 知识推理

    知识图谱入门 (七) 知识推理欢迎大家关注我的博客http://pelhans.com/,所有文章都会第一时间发布在那里哦~本节对本体任务推理做一个简单的介绍,并介绍本体推理任务的分类。而后对本体推理的方法和工具做一个介绍。知识推理简介知识推理任务分类所谓推理就是通过各种方法获取新的知识或者结论,这些知识和结论满足语义。其具体任务可分为可满足性(satisfiability)、分类(clas…

    2022年6月12日
    29
  • html 转换为cshtml,使用Html而不是csHtml

    html 转换为cshtml,使用Html而不是csHtml我想使用纯HTML页面而不是使用MVC.net的cshtml.但是当我通过右键单击索引添加视图时,我只能看到两个选项.publicclassHomeController:Controller{////GET:/Home/publicActionResultIndex(){returnView();}}Cshtml(剃刀)Aspx论坛但仍无济于事.我仍然没有看到添加ht…

    2022年6月23日
    50
  • 高德地图自定义样式「建议收藏」

    高德地图自定义样式「建议收藏」高德地图里带有几个可选的样式(https://lbs.amap.com/api/javascript-api/guide/map/map-style/),如下图:唯一一个比较贴合我们公司页面色系的就

    2022年8月6日
    25
  • MariaDb数据库管理系统的学习(一)安装示意图

    MariaDb数据库管理系统的学习(一)安装示意图

    2022年1月11日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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