【机器学习入门】多元线性回归超详细教程 —— 从原理到 sklearn 代码全实现
文章目录前言一、线性回归是什么二、数据集介绍三、sklearn LinearRegression API 详解3.1 构造函数参数3.2 常用属性3.3 常用方法四、代码案例多元线性回归预测血压五、结果分析5.1 回归方程5.2 系数解读5.3 模型评估六、避坑指南那些年我们踩过的坑❌ 坑1normalize 参数已经被移除了❌ 坑2fit 方法没有 n_jobs 参数❌ 坑3CSV 文件编码问题七、总结前言大家好今天咱们来聊聊机器学习里最经典、最基础的算法——线性回归。别小看它虽然简单但它是几乎所有机器学习算法的敲门砖搞懂了线性回归后面学逻辑回归、SVM、神经网络都会轻松很多。这篇文章我会带大家从原理到代码实战一条龙走一遍用的是 sklearn 库新手也能直接跑通文末我还会指出一些网上常见教程里的错误和过时信息帮大家避坑~一、线性回归是什么简单来说线性回归就是用一条直线或超平面去拟合数据点的分布规律然后用这条线去做预测。举个最简单的例子你想根据一个人的体重和年龄来预测他的血压收缩压。这就是一个典型的多元线性回归问题——有两个自变量体重、年龄一个因变量血压收缩。数学公式长这样y β 0 β 1 x 1 β 2 x 2 ⋯ β n x n ϵ y \beta_0 \beta_1 x_1 \beta_2 x_2 \dots \beta_n x_n \epsilonyβ0​β1​x1​β2​x2​⋯βn​xn​ϵ其中y yy是因变量我们要预测的值x 1 , x 2 , … , x n x_1, x_2, \dots, x_nx1​,x2​,…,xn​是自变量特征β 0 \beta_0β0​是截距常数项β 1 , β 2 , … , β n \beta_1, \beta_2, \dots, \beta_nβ1​,β2​,…,βn​是回归系数每个特征的权重ϵ \epsilonϵ是误差项线性回归的目标就是找到一组最优的β \betaβ值让预测值和真实值之间的误差最小。常用的方法是最小二乘法说白了就是让所有样本的预测误差平方和最小。二、数据集介绍今天咱们用的是一组教学示例数据集一共 13 条数据3 个字段体重kg年龄岁血压收缩mmHg76.05012091.52014185.52012482.53012679.03011780.55012574.56012379.05012585.04013276.55512382.04013295.04015592.520147数据说明本组数据为机器学习入门教学用的示例数据仅用于演示线性回归算法的建模流程。数据集保存为 CSV 格式注意编码是GBK中文编码读取的时候要指定encodinggbk否则会乱码。三、sklearn LinearRegression API 详解sklearn全称 scikit-learn是 Python 里最常用的机器学习库线性回归的实现就在sklearn.linear_model.LinearRegression里。3.1 构造函数参数LinearRegression(*,fit_interceptTrue,copy_XTrue,n_jobsNone,positiveFalse)参数名类型默认值说明fit_interceptboolTrue是否计算截距项。如果设为False则回归线过原点不推荐除非你确定数据已经中心化copy_XboolTrue是否复制特征矩阵 X。如果设为False会直接在原数据上操作可能覆盖原始数据n_jobsintNone并行计算的 CPU 核心数。设为-1表示使用所有核心。对大规模多目标回归有加速效果positiveboolFalse是否强制回归系数为正数。如果设为True所有 coef_ 都会 ≥ 0某些业务场景会用到3.2 常用属性训练完模型后可以通过以下属性查看模型参数属性名说明coef_回归系数数组形状为(n_features,)。每个特征对应一个系数系数越大说明该特征对结果影响越大intercept_截距项常数项一个浮点数3.3 常用方法方法说明fit(X, y, sample_weightNone)训练模型。X 是特征矩阵y 是目标值predict(X)用训练好的模型做预测返回预测值数组score(X, y, sample_weightNone)计算模型的R 2 R^2R2得分决定系数越接近 1 说明拟合效果越好四、代码案例多元线性回归预测血压话不多说直接上代码这是一个完整的可运行示例# 导入所需库importpandasaspdfromsklearn.linear_modelimportLinearRegression# 1. 读取数据 # 注意CSV文件是GBK编码必须指定encodinggbk否则中文列名会乱码datapd.read_csv(多元线性回归.csv,encodinggbk,enginepython)print( 数据预览 )print(data.head())print(f\n数据形状{data.shape})# (13, 3) 13条数据3列# 2. 准备特征和目标 Xdata[[体重,年龄]]# 自变量体重、年龄ydata[血压收缩]# 因变量血压收缩压# 3. 创建并训练模型 lr_modelLinearRegression()# 创建线性回归模型lr_model.fit(X,y)# 训练模型# 4. 查看模型参数 print(\n 模型参数 )print(f回归系数(coef_){lr_model.coef_})print(f截距(intercept_){lr_model.intercept_:.4f})# 把系数和特征对应起来看更直观print(\n各特征对应的系数)forfeature,coefinzip(X.columns,lr_model.coef_):print(f{feature}:{coef:.4f})# 5. 模型评估 r2_scorelr_model.score(X,y)print(f\n 模型评估 )print(fR²得分{r2_score:.4f})# 6. 预测示例 y_predlr_model.predict(X)print(\n 预测结果对比前5条 )print(f{序号:4}{实际值:8}{预测值:8}{误差:8})print(-*30)foriinrange(5):errory.iloc[i]-y_pred[i]print(f{i1:4}{y.iloc[i]:8}{y_pred[i]:8.2f}{error:8.2f})运行结果 数据预览 体重 年龄 血压收缩 0 76.0 50 120 1 91.5 20 141 2 85.5 20 124 3 82.5 30 126 4 79.0 30 117 数据形状(13, 3) 模型参数 回归系数(coef_)[2.13655814 0.40021615] 截距(intercept_)-62.9634 各特征对应的系数 体重: 2.1366 年龄: 0.4002 模型评估 R²得分0.9461 预测结果对比前5条 序号 实际值 预测值 误差 ------------------------------ 1 120 119.43 0.57 2 141 140.54 0.46 3 124 127.72 -3.72 4 126 125.31 0.69 5 117 117.83 -0.83五、结果分析5.1 回归方程根据训练结果我们可以写出回归方程血压收缩 − 62.96 2.14 × 体重 0.40 × 年龄 \text{血压收缩} -62.96 2.14 \times \text{体重} 0.40 \times \text{年龄}血压收缩−62.962.14×体重0.40×年龄5.2 系数解读体重系数 2.14在年龄不变的情况下体重每增加 1kg模型预测的血压收缩压平均升高约 2.14 mmHg年龄系数 0.40在体重不变的情况下年龄每增加 1 岁模型预测的血压收缩压平均升高约 0.40 mmHg结论体重对血压的影响比年龄更大5.3 模型评估R 2 0.9461 R^2 0.9461R20.9461这个分数非常高说明在本组示例数据中模型能解释 94.6% 的血压变化拟合效果非常好。注意R 2 R^2R2高不一定代表模型就一定好特别是数据量小的时候。实际项目中还要做交叉验证、残差分析等这里只是入门示例~六、避坑指南那些年我们踩过的坑在整理资料的过程中我发现了一些网上常见教程里的错误和过时信息这里统一给大家指出来避免踩坑❌ 坑1normalize参数已经被移除了很多老教程里会写LinearRegression(normalizeTrue)但这个参数在sklearn 1.0 版本就被弃用了在1.2 版本正式移除如果你用的是新版 sklearn比如 1.4传normalize参数会直接报错TypeError: LinearRegression.__init__() got an unexpected keyword argument normalize正确做法用StandardScaler做标准化fromsklearn.preprocessingimportStandardScaler scalerStandardScaler()X_scaledscaler.fit_transform(X)lr_modelLinearRegression()lr_model.fit(X_scaled,y)❌ 坑2fit方法没有n_jobs参数有些文档说fit(X, y, n_jobs-1)这是错误的n_jobs是构造函数的参数不是fit方法的参数。正确写法# 正确 ✅lr_modelLinearRegression(n_jobs-1)lr_model.fit(X,y)# 错误 ❌lr_modelLinearRegression()lr_model.fit(X,y,n_jobs-1)# 会报错❌ 坑3CSV 文件编码问题如果 CSV 文件里有中文列名直接用pd.read_csv()可能会乱码。要注意文件的编码格式GBK 编码 →encodinggbkUTF-8 编码 →encodingutf-8默认不确定编码的话可以用记事本打开文件另存为时看一下编码。七、总结今天咱们从零开始学习了多元线性回归回顾一下重点线性回归是用线性方程拟合数据、做预测的算法sklearn LinearRegression用起来很简单核心就三步创建模型 → fit → predictR 2 R^2R2得分是评估回归模型的常用指标越接近 1 越好注意避坑normalize参数已移除、n_jobs在构造函数里、CSV 编码问题线性回归虽然简单但它的思想——找最优参数让误差最小——是几乎所有机器学习算法的核心。把这个搞懂了后面学更复杂的算法会事半功倍。如果这篇文章对你有帮助别忘了点赞收藏~ 有问题欢迎在评论区交流

相关新闻

【MV】Stereo Vision 1: Fundamentals of Multiple View Geometry

【MV】Stereo Vision 1: Fundamentals of Multiple View Geometry

文章目录1、多视几何2、三角化(Triangulation)3、双目立体视觉原理1、多视几何 图注: 同一三维点 (X) 在不同相机中的投影满足 (xiKi[Ri∣ti]X)(x_iK_i[R_i\mid t_i]X)(xi​Ki​[Ri​∣ti​]X),每幅图像对应独立的内参与外参。 图…

2026/8/5 23:55:04 阅读更多 →
元初混沌体系架构 第二卷 第六篇 7G通–时–空–频–能 五维统一底层架构

元初混沌体系架构 第二卷 第六篇 7G通–时–空–频–能 五维统一底层架构

第六篇 7G通–时–空–频–能 五维统一底层架构承启前置 四维壁垒终结与大一统架构开篇本卷前五篇已依次完成7G顶层公理立论、三代代际断层界定、地星两域边界切割、时空畸变扰动公理搭建、光速时延壁垒与鸿蒙补偿模型落地,彻底拆解星际通信两大核心物理桎梏&#…

2026/8/5 23:55:04 阅读更多 →
构建大模型自动化评测平台:从零实现科学模型对比

构建大模型自动化评测平台:从零实现科学模型对比

最近,AI大模型之间的“对战”成了开发者社区里一个有趣的话题。你或许也刷到过类似“Kimi vs GPT-5.6 Prompt Battle”这样的标题,点进去一看,往往是几张截图,展示两个模型对同一问题的不同回答,然后评论区吵成一团&am…

2026/8/5 23:55:04 阅读更多 →

最新新闻

政务外网环境下视频监控资源整合:新增仓库接入实施方案

政务外网环境下视频监控资源整合:新增仓库接入实施方案

一、现状本项目处于政务外网严格的网络边界环境内。原仓库视频监控系统已稳定运行,包含13路存量监控点位,覆盖主要出入口及核心库区。二、需求接入策略与技术路线: 针对本次新建的12路监控摄像头,将严格遵循政务外网接入规范&…

2026/8/6 0:53:24 阅读更多 →
excel怎么转txt?盘点2026年7款PDF格式转换工具,覆盖单转与批量导出

excel怎么转txt?盘点2026年7款PDF格式转换工具,覆盖单转与批量导出

上个月给公司投标,好不容易把技术方案定稿,甲方突然说还得附一份单独的材料清单,格式必须是纯文本TXT。我手里只有一份完整的方案PDF,打开看着满屏的表格和条款,心里直犯嘀咕:难道要手动敲一遍?…

2026/8/6 0:52:23 阅读更多 →
优测:海外机型兼容性测试实操手册

优测:海外机型兼容性测试实操手册

优测:海外机型兼容性测试实操手册 作者:优测(UTest 腾讯优测)兼容性测试团队 发布时间:2026年3月 一款面向海外市场的 App,在国内主流机型上跑得稳,到了东南亚的低端安卓机、欧美的 iPhone 老版…

2026/8/6 0:52:23 阅读更多 →
epub转pdf免费的软件哪个好 7款格式转换工具实测盘点

epub转pdf免费的软件哪个好 7款格式转换工具实测盘点

八月初为了赶一份材料审核,我带队在外地出差,酒店里临时收到甲方邮件:附件是一份epub格式的技术规范书,需要转成PDF后打印签字回传。笔记本上没装任何阅读器,临时找工具折腾了快半个小时才搞定。这件事之后我把自己常用…

2026/8/6 0:52:23 阅读更多 →
拼拼乐:拼豆图纸生成工具横评

拼拼乐:拼豆图纸生成工具横评

拼拼乐:拼豆图纸生成工具横评 拼豆(Perler Bead / Hama Bead)是一种像素手作艺术:按照图纸把彩色小豆子摆在模板板上,再用熨斗加热固定,冷却后即可得到成品。2025年拼豆在主流电商平台销售额达2.91亿元&…

2026/8/6 0:52:23 阅读更多 →
eps怎么转pdf?盘点7款好用的转换工具,覆盖免费、在线、自带方案

eps怎么转pdf?盘点7款好用的转换工具,覆盖免费、在线、自带方案

上个月接了一个印刷品的设计委托,印厂那边最后发来确认文件,后缀全是 .eps。我手头连个能预览的软件都没装,更别提发给客户看效果了。当时第一反应是:eps怎么转pdf,才能让所有人都打开、又不丢矢量质量?试了…

2026/8/6 0:52:23 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →