当前位置: 首页 > news >正文

【机器学习sklearn实战】岭回归、Lasso回归和弹性网络

一 sklean中模型详解

1.1 Ride regression

1.2 Lasso regression

1.3 ElasticNet

二 算法实战

2.1 导入包

import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.linear_model import Ridge, Lasso, ElasticNet
from sklearn.metrics import mean_squared_error, r2_score

2.2 加载数据集

# # 加载糖尿病数据集
X, y = datasets.load_diabetes(return_X_y=True)

2.3 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

2.4 定义模型

# 定义岭回归模型
ridge = Ridge()# 定义LASSO回归模型
lasso = Lasso()# 定义弹性网络模型
elastic_net = ElasticNet()

2.5 设置网格参数

# 设置参数网格
param_grid_ridge = {'alpha': np.logspace(-4, 4, 50)}
param_grid_lasso = {'alpha': np.logspace(-4, 4, 50)}
param_grid_elastic_net = {'alpha': np.logspace(-4, 4, 50), 'l1_ratio': np.linspace(0, 1, 10)}

2.6 创建GridSearchCV对象

# 创建GridSearchCV对象
grid_ridge = GridSearchCV(ridge, param_grid_ridge, cv=5, scoring='neg_mean_squared_error')
grid_lasso = GridSearchCV(lasso, param_grid_lasso, cv=5, scoring='neg_mean_squared_error')
grid_elastic_net = GridSearchCV(elastic_net, param_grid_elastic_net, cv=5, scoring='neg_mean_squared_error')

2.7 模型训练

# 训练模型
grid_ridge.fit(X_train, y_train)
grid_lasso.fit(X_train, y_train)
grid_elastic_net.fit(X_train, y_train)

2.8 获取最优参数

# 获取最优参数
best_params_ridge = grid_ridge.best_params_
best_params_lasso = grid_lasso.best_params_
best_params_elastic_net = grid_elastic_net.best_params_# 输出最优参数
print("Best parameters for Ridge:", best_params_ridge)
print("Best parameters for LASSO:", best_params_lasso)
print("Best parameters for Elastic Net:", best_params_elastic_net)

2.9 模型预测

# 使用最佳模型进行预测
best_model_ridge = grid_ridge.best_estimator_
best_model_lasso = grid_lasso.best_estimator_
best_model_elastic_net = grid_elastic_net.best_estimator_y_pred_ridge = best_model_ridge.predict(X_test)
y_pred_lasso = best_model_lasso.predict(X_test)
y_pred_elastic_net = best_model_elastic_net.predict(X_test)

2.10 模型评估

# 评估模型
mse_ridge = mean_squared_error(y_test, y_pred_ridge)
r2_ridge = r2_score(y_test, y_pred_ridge)mse_lasso = mean_squared_error(y_test, y_pred_lasso)
r2_lasso = r2_score(y_test, y_pred_lasso)mse_elastic_net = mean_squared_error(y_test, y_pred_elastic_net)
r2_elastic_net = r2_score(y_test, y_pred_elastic_net)# 输出结果
print("Ridge Regression:")
print(f"Mean Squared Error: {mse_ridge:.2f}")
print(f"R^2 Score: {r2_ridge:.2f}")print("\nLASSO Regression:")
print(f"Mean Squared Error: {mse_lasso:.2f}")
print(f"R^2 Score: {r2_lasso:.2f}")print("\nElastic Net Regression:")
print(f"Mean Squared Error: {mse_elastic_net:.2f}")
print(f"R^2 Score: {r2_elastic_net:.2f}")
http://www.lryc.cn/news/419327.html

相关文章:

  • Python 爬虫项目实战六:抓取猫眼电影排行榜的数据
  • YOLO系列:从yolov1至yolov8的进阶之路 持续更新中
  • 欧拉系统离线安装界面ukui
  • Milvus向量数据库的简介以及用途
  • 恒创科技:IPv4 和 IPv6 之间的主要区别
  • TinyWebserver的复现与改进(1):服务器环境的搭建与测试
  • 【Python】练习题附带答案
  • Springboot集成Proguard生成混淆jar包
  • 什么是NLP分词(Tokenization)
  • 基于深度学习的图像伪造检测
  • Windows11 WSL2 Ubuntu编译安装perf工具
  • 探索算法系列 - 前缀和算法
  • Stable Diffusion绘画 | 提示词基础原理
  • 利用python写一个可视化的界面
  • 第13节课:Web Workers与通信——构建高效且实时的Web应用
  • pam_pwquality.so模块制定密码策略
  • spark3.3.4 上使用 pyspark 跑 python 任务版本不一致问题解决
  • 处理Pandas中的JSON数据:从字符串到结构化分析
  • 国内的 Ai 大模型,有没有可以上传excel,完成数据分析的?
  • Spring: jetcache
  • 什么是分布式事务?
  • 深入Java内存区域:堆栈、方法区与程序计数器的奥秘
  • 【ML】异常检测、二分类问题
  • 8.8-配置python3环境+python语法的使用
  • 高质量WordPress下载站模板5play主题源码
  • 【C++】类的概念与基本使用介绍
  • 基于Python和OpenCV的图像处理的轮廓查找算法及显示
  • 使用ant design的modal时,发现自定义组件的样式(组件高度)被改变了!
  • NLP从零开始------8文本进阶处理之文本向量化
  • 【网络编程】字节序,IP地址、点分十进制、TCP与UDP的异同