当前位置: 首页 > 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}")

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PyCharm 2024.1 总结和最新变化
  • 大家不推荐开放式耳机?开放式耳机的优缺点
  • EasyExcel实现100w数据导入导出
  • React中,className属性自定义组件不生效的问题
  • 全面介绍 Apache Doris 数据灾备恢复机制及使用示例
  • 循环神经网络三
  • uniapp版本更新除了plus.runtime.getProperty的解决办法
  • XHTML 简介
  • 单元测试注解:@ContextConfiguration
  • 企微SCRM在私域流量运营中的痛点解决之道
  • 畅捷通基于Flink的实时数仓落地实践
  • python 提取视频中的音频 采用ffmpeg-python 库
  • Ubuntu 系统的部署和基础操作(使用)
  • 51单片机-第七节-DS1302实时时钟
  • 6.3 第三方库的安装与使用
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【知识碎片】第三方登录弹窗效果
  • Android系统模拟器绘制实现概述
  • Linux后台研发超实用命令总结
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • React-flux杂记
  • Selenium实战教程系列(二)---元素定位
  • vue 个人积累(使用工具,组件)
  • vue-cli在webpack的配置文件探究
  • vue-router的history模式发布配置
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 第2章 网络文档
  • 技术发展面试
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 排序算法学习笔记
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 一道闭包题引发的思考
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 数据可视化之下发图实践
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #laravel 通过手动安装依赖PHPExcel#
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (6)STL算法之转换
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (不用互三)AI绘画工具应该如何选择
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (六)Flink 窗口计算
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (南京观海微电子)——I3C协议介绍
  • (十三)Flink SQL
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (自用)仿写程序
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选