python lasso回归分析_解析python实现Lasso回归「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
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 # 稀疏化系数–随机的把系数向量1×200的其中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回归,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137742.html原文链接:https://javaforall.cn
相关文章
- python pip源更换国内镜像,速度加快10倍
- 使用 python 执行 shell 命令的几种常用方式
- Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)
- 王力宏的瓜很大!我用Python爬取了瓜文评论区,发现更精彩
- Python基础15-日志模块logging
- 快速了解 OJ 判题系统如何在python中使用?
- 自动化神器!Python 批量读取身份证信息写入 Excel
- Python实现AI视频识别——手势控制[通俗易懂]
- Python元祖详解
- Python 基础知识自检,你离深入掌握 Python 还有多远
- Python项目48-插播短信接口(使劲撸)
- 神器,轻松可视化Python程序调用流程
- 使用Python验证并利用Redis未授权漏洞
- Python+Flask实现的学生培养计划管理系统
- Python调用Prometheus监控数据并计算
- Python 爬取 "王者荣耀.英雄壁纸" 过程中的矛和盾
- Python一键生成国庆渐变头像
- python dll注入监听_DLL注入和API拦截
- Python之谜:四舍五入round(4.5)等于4?
- python中删除特定字符串