python sklearn机械学习模型-回归

embedded/2024/9/20 1:15:39/ 标签: python, 开发语言, 数据挖掘, 回归, 机器学习
  • 🌈所属专栏:【机械学习】
  • 作者主页:  Mr.Zwq
  • ✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍

目录

安装 

数据

使用

线性回归

决策树回归

随机森林回归

回归

套索回归

支持向量机回归 

总结


安装 

pip install scikit-learn

数据

X,y即为所需要进行回归处理的数据。

操作:拆分为训练集和测试集

python">from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3, random_state=12)

使用

线性回归

python"># 线性回归模型
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 创建线性回归模型并拟合
model = LinearRegression()
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)# 计算模型性能指标
# 利用均方误差(MSE)评价预测结果的合理性,MSE的数值越小越好,即越接近0表示模型的预测与真实值之间的差异较小。
mse = mean_squared_error(y_test, y_pred)  
# 利用平均绝对误差(MAE)预测结果的合理性,MAE的数值越小越好,即越接近0表示模型的预测与真实值之间的差异较小。
mae = mean_absolute_error(y_test, y_pred)  
# r2分数越接近1代表模型性能越好
r2 = r2_score(y_test, y_pred)  print(f'Mean Squared Error: {mse:.4f}')  
print(f'Mean Absolute Error: {mae:.4f}')  
print(f'R^2 Score: {r2:.4f}')

决策树回归

python"># 决策树回归模型
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 创建决策树回归模型并拟合
model = DecisionTreeRegressor()
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)mse = mean_squared_error(y_test, y_pred)  
mae = mean_absolute_error(y_test, y_pred)  
r2 = r2_score(y_test, y_pred)  print(f'Mean Squared Error: {mse:.4f}')  
print(f'Mean Absolute Error: {mae:.4f}')  
print(f'R^2 Score: {r2:.4f}')


随机森林回归

python"># 随机森林回归模型
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 创建随机森林回归模型并拟合
model = RandomForestRegressor()
model.fit(X_train, y_train)# 进行预测
y_pred = model.predict(X_test)mse = mean_squared_error(y_test, y_pred)  
mae = mean_absolute_error(y_test, y_pred)  
r2 = r2_score(y_test, y_pred)  print(f'Mean Squared Error: {mse:.4f}')  
print(f'Mean Absolute Error: {mae:.4f}')  
print(f'R^2 Score: {r2:.4f}')

回归

python"># 岭回归模型
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 创建岭回归模型
ridge = Ridge()# 定义alpha值的候选范围
param_grid = {'alpha':[0.1,1.0,10.0]}# 使用交叉验证选择最优的alpha值
ridge_cv = GridSearchCV(ridge,param_grid,cv=5)
ridge_cv.fit(X_train,y_train)# 获取最优的alpha值
best_alpha = ridge_cv.best_params_['alpha']
print("最优alpha值:", best_alpha)# 使用最优的alpha值创建并训练岭回归模型
ridge = Ridge(alpha=best_alpha)
ridge.fit(X_train,y_train)# 进行预测
y_pred = model.predict(X_test)mse = mean_squared_error(y_test, y_pred)  
mae = mean_absolute_error(y_test, y_pred)  
r2 = r2_score(y_test, y_pred)  print(f'Mean Squared Error: {mse:.4f}')  
print(f'Mean Absolute Error: {mae:.4f}')  
print(f'R^2 Score: {r2:.4f}')

套索回归

python"># 套索回归模型
from sklearn.linear_model import Lasso
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 定义alpha值候选范围
param_grid = {'alpha':[0.1,1.0,10.0]}# 使用交叉验证选择最优的alpha值
ridge_cv = GridSearchCV(ridge,param_grid,cv=5)
ridge_cv.fit(X_train,y_train)# 获取最优的alpha值
best_alpha = ridge_cv.best_params_['alpha']
print("最优alpha值:", best_alpha)# 创建并训练套索回归模型
lasso = Lasso(alpha=best_alpha)
lasso.fit(X_train,y_train)# 在测试集上进行预测
y_pred = lasso.predict(X_test)mse = mean_squared_error(y_test, y_pred)  
mae = mean_absolute_error(y_test, y_pred)  
r2 = r2_score(y_test, y_pred)  print(f'Mean Squared Error: {mse:.4f}')  
print(f'Mean Absolute Error: {mae:.4f}')  
print(f'R^2 Score: {r2:.4f}')

支持向量机回归 

python"># 支持向量机回归
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score# 特征标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)# 创建支持向量机回归模型并拟合
model = SVR()
model.fit(X_train_scaled, y_train)# 进行预测
y_pred = model.predict(X_test_scaled)mse = mean_squared_error(y_test, y_pred)  
mae = mean_absolute_error(y_test, y_pred)  
r2 = r2_score(y_test, y_pred)  print(f'Mean Squared Error: {mse:.4f}')  
print(f'Mean Absolute Error: {mae:.4f}')  
print(f'R^2 Score: {r2:.4f}')

总结

感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹

👍🏻也欢迎你,关注我。👍🏻

如有疑问,可在评论区留言哦~


http://www.ppmy.cn/embedded/56234.html

相关文章

中国农业会计编辑部中国农业会计杂志社2024年第10期目录

人物风采 为民服务守初心 平凡岗位担使命——记云南省漾濞县畜牧兽医管理服务中心高级畜牧师徐健春 2 会计研究 管理会计在企业全面管理中的应用——以D公司为例 蒯浠语; 3-5,《中国农业会计》投稿:cnqikantg126.com AI时代企业会计数据集成管理策略研究…

VTK- 面绘制体绘制

在VTK中,面绘制(Surface Rendering)和体绘制(Volume Rendering)是两种常见的三维数据可视化方法。面绘制和体绘制是计算机图形学中用于三维数据可视化的重要技术,尤其在医学成像、科学可视化和计算机辅助设…

NAS—网络附加存储

关键词:私有化存储、Nas、云盘、群晖、Tailscale、 前言 身处于互联网时代的我们,几乎每时每刻都在与计算机打交道,而软件则作为我们和计算机之间沟通的桥梁,因此可以认为软件的作用是:将计算机能力进行包装&#xf…

K8s简单入门

Kubernetes (K8s) 是一个开源的容器编排平台,用于自动部署、扩展和管理容器化应用程序。以下是 Kubernetes 的入门指南,涵盖了基本概念、安装、常用命令以及部署示例。 基本概念 Pod:Kubernetes 中最小的可部署单元,一个 Pod 可…

《侃侃而谈 · 为什么动笔》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻一周,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

Django项目 - 合并PDF文件

合并PDF文件可以很好将信息做整合。 博主实现了下面功能: 检测上传的文件是否是PDF从本地拖拽PDF文件到该系统显示需合并文件总数对需合并PDF文件进行排序,删除可预览合并PDF文件下载合并好的PDF文件 代码存放在码云:代码 创作不易&#…

HDU 1506 Largest Rectangle in a Histogram (DP或单调栈+笛卡尔树)

传送门 题目大意: 有N条的长条状的矩形,宽度都为1,第i条高度为Hi,相邻的竖立在x轴上,求最大的子矩形面积 DP思路及代码 求出当前点能够到达的最左边和最右边的位置,答案就是(最右边-最左边&…

vue响应式原理细节分享

在讲解之前,我们先了解一下数据响应式是什么?所谓数据响应式就是建立响应式数据与依赖(调用了响应式数据的操作)之间的关系,当响应式数据发生变化时,可以通知那些使用了这些响应式数据的依赖操作进行相关更…

C#委托事件的实现

1、事件 在C#中事件是一种特殊的委托类型,用于在对象之间提供一种基于观察者模式的通知机制。 1.1、事件的发送方定义了一个委托,委托类型的声明包含了事件的签名,即事件处理器方法的签名。 1.2、事件的订阅者可以通过+=运算符来注册事件处理器。 1.3、当事件发送方触发事件…

22、PHP 实现连续子数组的最大和、整数中1出现的次数

题目: PHP 实现连续子数组的最大和 描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。 今天测试组开完会后,他又发话了:在古老的一维模式识别中, 常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。 但是,如果向量中包含负数…

记一次面试

Linux查日志,怎么把最后1000行写到另一个文件中 在Linux中,如果你想要查看日志文件的最后1000行并将其写入到另一个文件中,你可以使用tail命令。tail命令默认用于输出文件的最后几行。 以下是如何使用tail命令将日志文件的最后1000行写入到另…

如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 对于大多数邮件服务器管理员来说,被错误地标记为垃圾邮件发送者的沮丧并不陌生。除了排除服务器被入侵的可能性外&…

WPF自定义模板--TreeView 实现菜单连接线

有些小伙伴说&#xff0c;在TreeView中&#xff0c;怎么每一个都加上连接线&#xff0c;进行显示连接。 代码和效果如下&#xff1a; 其实就是在原来的模板中增加一列显示线条&#xff0c;然后绘制即可 <Window x:Class"XH.TemplateLesson.TreeViewWindow"xmln…

【TS】TypeScript 中的 any 与 unknown:理解与实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 TypeScript 中的 any 与 unknown&#xff1a;理解与实践一、引言二、any&#x…

【介绍下SCSS的基本使用】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

2024最新!将mysql的数据导入到Solr

Solr导入mysql的数据 如何安装导入数据前准备配置Solr的Jar包以及Mysql驱动包1.1、将solr-8.11.3\dist下的两个包进行移动1.2、将mysql-connect包也移动到该位置1.3、重启Solr项目 配置xml2.1、第一步我们需要创建核心2.2、第二步修改xml(这里是结合19年的教程)2.3、 创建data-…

Kotlin设计模式:工厂方法详解

Kotlin设计模式&#xff1a;工厂方法详解 工厂方法模式&#xff08;Factory Method Pattern&#xff09;在Kotlin中是一种常见的设计模式&#xff0c;用于将对象创建的责任委派给单一的方法。本文将详细讲解这一模式的目的、实现方法以及使用场景&#xff0c;并通过具体的示例…

Python爬取国家医保平台公开数据

国家医保服务平台数据爬取python爬虫数据爬取医疗公开数据 定点医疗机构查询定点零售药店查询医保机构查询药品分类与代码查询 等等&#xff0c;数据都能爬 接口地址&#xff1a;/ebus/fuwu/api/nthl/api/CommQuery/queryFixedHospital 签名参数&#xff1a;signData {dat…

QQ录屏文件保存在哪里?一键教你快速查询

无论是记录重要的工作内容&#xff0c;还是分享生活中的点滴&#xff0c;屏幕录制都发挥着至关重要的作用。在众多屏幕录制工具中&#xff0c;qq录屏以其简单易用、功能丰富的特点&#xff0c;受到了广大用户的喜爱。本文将为您揭示qq录屏文件保存在哪里&#xff0c;帮助大家更…

[软件安装]linux下安装steam

1、下载安装包到linux系统 SteamTools 发行版 - Gitee.com 2、选择对应的版本 3、解压安装包steam &#xff08;1&#xff09;在opt路径下新建一个文件夹 sudo mkdir steam &#xff08;2&#xff09;进入压缩包路径下&#xff0c;打开终端&#xff0c;执行以下代码进行解压…