首页/新闻资讯/正文详情

机器学习:线性回归1(基本概念和基本api)

发布时间:2026/11/5 6:38:28 来源:云帆数科 栏目:资讯中心
机器学习:线性回归1(基本概念和基本api)
目录标题一、线性回归概念和公式二、损失函数前置概括回归模型评估三种方法是不够的1.为啥不能单独看MSE来评估模型2.MAE 和 RMSE组合能看出模型好坏3.mae和rmse结合还是看数值没有意义都没法拿到真实值。还是没法判断模型好坏啊4.R²和mape从那来三、损失函数四、误差和残差(理解一下)五、api一、线性回归概念和公式二、损失函数前置概括回归模型评估三种方法,分类模型评估用精准率Mean Absolute Error: 平均绝对误差Mean Square Error:均方误差Root Mean Square Error : 均方根误差图中例子验证RMSE MAE 两个样本误差分别是13 用MAE 就是2 用RMSE就是2.236回归模型评估三种方法是不够的1.为啥不能单独看MSE来评估模型缺乏基准没有对比就没有伤害假设你预测房价算出来 MSE 是 10 万。如果房价本身是 100 万误差 10 万说明模型勉强能用。如果房价本身是 15 万比如买车误差 10 万说明模型简直是灾难。单独看 MSE 的数值你根本不知道这个 10 万是“好”还是“坏”。必须要有基准线比如用均值预测的 MSE或者行业公认的合理误差范围做对比才知道模型的价值。掩盖了极端的错误异常值陷阱MSE 的公式是( E r r o r 2 (Error^2(Error2)。因为平方的存在它会极其严厉地惩罚大误差。假设有 5 个预测4 个样本预测得非常准误差都是 0。1 个样本预测极其离谱误差是 10。MSE 算下来是( 10 2 5 20 (\frac{10^2}{5} 20(5102​20)。单看 MSE 好像还能接受但实际上你的模型在某个特定样本上犯了灾难性的错误。在医疗、金融风控等领域“平均误差小但偶尔犯一次大错”是绝对不被允许的。MSE 无法体现这种“极端错误”的分布。受数据量纲量级影响不直观MSE 的单位是原单位的平方。比如预测身高米MSE 算出来可能是 0.04 平方米。“平方米”这个单位对人来说毫无直观感受你没发跟业务方解释“0.04 平方米的误差”到底意味着什么。这就是为什么我们通常会把 MSE 开根号变成 RMSE均方根误差这样单位就变回了米能直观对比。忽略了误差的方向MSE 平方之后正误差和负误差都变成了正数。预测值比真实值高 5。预测值比真实值低 5。在 MSE 眼里是一样的。但在某些业务中比如库存预测“预测多了导致库存积压”和“预测少了导致断货”的代价是完全不一样的。MSE 无法区分这个方向。掩盖了模型的过拟合你只盯着 MSE可能会发现它在训练集上无限趋近于 0。但这并不代表模型好反而可能说明它把训练集的噪声都背下来了过拟合。这时候必须结合验证集/测试集的误差、以及( R 2 (R^2(R2)决定系数等指标综合看。2.MAE 和 RMSE组合能看出模型好坏一个极端的例子假设你有两个模型预测了 5 个样本的真实值真实值都是 100模型 A偶尔犯大错4 次预测极准误差为 0但 1 次预测严重翻车预测了 1000误差 900。模型 B稳定但平庸5 次预测都差一点每次误差都是 100。我们来算算它们的 MAE 和 RMSEMAE算平均绝对值模型 A(0000900) / 5 180模型 B(100100100100100) / 5 100RMSE先平方求平均再开根号模型 A( ( 0 2 0 2 0 2 0 2 900 2 ) / 5 162000 ≈ 402.5 (\sqrt{(0^2 0^2 0^2 0^2 900^2)/5} \sqrt{162000} \approx 402.5((020202029002)/5​162000​≈402.5)模型 B( ( 100 2 × 5 ) / 5 10000 100 (\sqrt{(100^2 \times 5)/5} \sqrt{10000} 100((1002×5)/5​10000​100)怎么通过这两个数字看模型好坏看 RMSE 和 MAE 的“差距”诊断模型有没有大错你看模型 AMAE 是 180但 RMSE 飙升到了 402.5。RMSE 远大于 MAE。诊断因为 RMSE 有平方操作它会极其严厉地惩罚那个 900 的大误差。这说明模型 A 极不稳定虽然大部分时候准但偶尔会犯致命大错这在医疗、金融领域是致命的。你看模型 BMAE 是 100RMSE 也是 100。两者相等。诊断因为每个样本的误差都一样没有平方惩罚的放大效应。说明模型 B 没有犯大错只是整体上偏了 100。看具体数值的量级评估整体水平单看数值没有意义必须结合真实值。如果你的真实值是一千万误差 100 那叫极好如果真实值只有 10误差 100 那就是灾难。因为 RMSE 开过根号它的单位和真实值一样比如都是“万元”。如果 RMSE 50 万元你能直接跟老板说“我们的预测平均偏离了 50 万”。而 MAE 也是一样的单位。这两个数值可以互相参考。️实战中怎么综合判断MAE 偏低RMSE 也偏低好模型。预测又准又稳定。MAE 很低但 RMSE 极高“神经刀”模型。大部分准但极其容易出极端离群点大错。需要排查数据里的异常值或者换模型。MAE 和 RMSE 都很高且差不多平庸模型。整体误差都很大系统性偏差可能特征没选好或者模型根本没学到东西。MAE 很高RMSE 更高糟糕的模型。不仅整体偏差大还经常犯离谱的错。3.mae和rmse结合还是看数值没有意义都没法拿到真实值。还是没法判断模型好坏啊单看 MAE 和 RMSE 的绝对数值比如算出来 MAE 15如果不知道真实背景确实毫无意义根本没法判断模型好不好在实际工程和业务中我们从来不指望只看 MAE 和 RMSE 的裸数字就能判断模型好坏。为了判断它我们通常依靠以下三种“参照物”拿“傻瓜模型”做参照Baseline如果老板问你“你这个模型预测出来的 RMSE 是 15到底行不行”你通常会说“老板如果我们不搞这个 AI直接把历史平均值当成预测值算出来的 RMSE 是 30。我们现在做到了 15误差降低了一半”看数值的意义在于“对比”。只要你的模型指标比“瞎猜模型如用平均数预测”或者“上一版旧模型”好它就是好模型。拿“业务容忍度”做参照在真实业务里好不好不是看数学而是看“这错得起吗”。如果是预测明天的气温RMSE 是 1.5 度那非常完美。如果是预测外卖送到的时间RMSE 是 15 分钟那顾客要饿死了这模型就是垃圾。如果是预测全国明年 GDP 总额单位万亿元RMSE 是 0.5 万亿元这可能已经是极高精度的神级模型了。所以模型的评估必须由业务人员设定一条“及格线”。引入自带“标准范围”的指标这才是解药为了摆脱“绝对数值”的困扰我们其实有自带评价标准的指标( R 2 (R^2(R2)决定系数它的数值通常在 0 到 1 之间。如果( R 2 (R^2(R2) 0.85意思是“我的模型能解释真实数据 85% 的波动”。这就自带了一把尺子1 就是满分0 就是不及格跟瞎猜没区别。看这个指标你不需要知道房价到底是多少。MAPE平均绝对百分比误差它是百分比比如算出 MAPE 8%。意思是“我的预测误差平均在 8% 左右”。这也自带尺子通常低于 10% 就算相当不错的商业模型了。回到你最开始的提问那为啥还要把 MAE 和 RMSE 结合看虽然它们不能单独告诉你“模型及格没”但把两者放在一起能告诉你“模型患了什么病”。因为有了( R 2 (R^2(R2) 或者 MAPE你已经知道这个模型“及格了”。这时候如果MAE 10, RMSE 10说明误差很均匀模型很稳定。MAE 10, RMSE 50说明模型虽然及格了但“偶尔会犯大错”。你马上就知道接下来要去数据里清理极端的“异常值”了而不是继续无脑调模型。4.R²和mape从那来( R 2 (R^2(R2)决定系数R-Squared从哪来( R 2 (R^2(R2) 的诞生是为了回答一个灵魂拷问“我这个模型比起直接瞎猜用平均值猜到底强了多少”它的推导逻辑是一场“比烂大会”大傻瓜基准SST如果我什么模型都不用直接拿所有真实值的平均数去预测每个人。算一下这会有多大误差总平方和。我们的模型SSE用我们辛苦训练出来的模型去预测算一下残差平方和就是 MSE 乘上样本数。公式( R 2 1 − S S E S S T (R^2 1 - \frac{SSE}{SST}(R21−SSTSSE​)怎么理解这个公式如果我们的模型跟“用平均数瞎猜”一样烂SSE SST那( R 2 1 − 1 0 (R^2 1 - 1 0(R21−10)。如果我们的模型完美预测一点误差都没有SSE 0那( R 2 1 − 0 1 (R^2 1 - 0 1(R21−01)。所以( R 2 (R^2(R2) 的满分是 1及格线是 0。它自带刻度你不需要知道房价是几百万还是几万看( R 2 (R^2(R2) 就能知道模型解释了数据多少的波动。MAPE平均绝对百分比误差从哪来MAPE 的诞生是为了回答另一个痛点“在不同的量级下我到底错了百分之几”毕竟预测 100 万误差 1 万和预测 10 块误差 1 块前者误差大但后者更离谱。它的推导极其简单粗暴就是在 MAE平均绝对误差的基础上除以了真实值公式( M A P E 100 % n ∑ ∣ 真实值 − 预测值 真实值 ∣ (MAPE \frac{100\%}{n} \sum \left| \frac{\text{真实值} - \text{预测值}}{\text{真实值}} \right|(MAPEn100%​∑​真实值真实值−预测值​​)本质把误差变成了一个百分比。怎么理解如果算出 MAPE 5%意思是不管你卖的是几百万的豪车还是几块钱的辣条我的模型平均都会偏离真实价格的 5%。它直接消除了单位把误差归一化了。它们和 MAE/RMSE 的终极区别在哪MAE 和 RMSE 是“物理刻度”。它们保留了原始数据的单位比如元、米、千克。就像用尺子量身高量出来是 1.7 米。但这个 1.7 米到底算高还是矮取决于你量的是姚明还是潘长江。不知道真实背景(缺乏基准)( R 2 (R^2(R2) 和 MAPE 是“比例刻度”。它们没有单位自带评价标准。( R 2 (R^2(R2) 越接近 1 越好MAPE 越小比如小于 10%越好。⚠️补充一个坑实战必备虽然这两个指标很好但都有致命的软肋**( R 2 (R^2(R2) 的陷阱**如果你用非线性模型把训练集背得滚瓜烂熟( R 2 (R^2(R2) 可能会在测试集上变成负数说明模型比瞎猜平均值还要烂。MAPE 的致命伤公式里“除以真实值”如果真实值等于 0比如预测明天会不会下雨真实降雨量是 0那 MAPE 会直接除以 0 报错爆炸。所以在真实值可能为 0 的场景里通常会用 SMAPE对称平均绝对百分比误差来替代。总结MAE/RMSE 告诉你“偏了多远”( R 2 (R^2(R2)/MAPE 告诉你“偏得有多离谱”。这四个凑在一起才是评估回归模型的完整拼图。插曲在api中测试拟合中使用查看( R 2 (R^2(R2)/MAPEimportmatplotlibfromsklearn.linear_modelimportLinearRegression matplotlib.use(TkAgg)# 强制使用 TkAgg 后端importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.metricsimportmean_squared_error,root_mean_squared_error,mean_absolute_error,mean_absolute_percentage_error# 均方误差评估#固定随机数np.random.seed(6)#生成 -3 到3 之间的100个随机数 均匀分布xnp.random.uniform(-3,3,100)#模拟真实值 增加噪音y0.5*x**2x2np.random.normal(0,1,100)Xx.reshape(-1,1)# 一维转二维,因为线性回归需要二维数据estimatorLinearRegression()estimator.fit(X,y)print(权重,estimator.coef_)print(偏置,estimator.intercept_)#基于原始数据X 得出预测y_predestimator.predict(X)#评估print(均方误差,mean_squared_error(y,y_pred))print(均方根误差,root_mean_squared_error(y,y_pred))print(平均绝对误差,mean_absolute_error(y,y_pred))print(R^2分数,estimator.score(X,y))print(MAPE,mean_absolute_percentage_error(y,y_pred))plt.scatter(x,y)# 散点图 原始数据X 和真实yplt.plot(x,y_pred,colorred)plt.show()三、损失函数下面这个截图解释啥是损失函数和后面要学的怎么让损失函数最小下面这图里公式就是 损失函数前置概括 的三种方法四、误差和残差(理解一下)五、api准备数据时候注意点:(多个特征项,要二维即使目前只有一个特征也要写二维)# 导包fromsklearn.linear_modelimportLinearRegression# 案例演示线性回归API入门。# 1. 准备数据。(多个特征项,要二维即使目前只有一个特征也要写二维)x_train[[160],[166],[172],[174],[180]]# 训练集的特征y_train[56.3,60.6,65.1,68.5,75]# 训练集的标签x_test[[176]]# 测试集的特征# 2. 数据的基本处理这里不需要,没有null或缺省一类的。# 3. 特征工程(特征提取特征预处理特征降维特征选择特征组合)这里不需要。# 4. 模型训练# 4.1 创建模型对象。estimatorLinearRegression()# 4.2 具体的训练动作。estimator.fit(x_train,y_train)# 4.3 因为是线性回归模型我们可以查看下斜率(w权重)截距(b偏置)print(f权重:{estimator.coef_})# 0.92942177print(f偏置:{estimator.intercept_})# -93.27346938775514# 5. 模型预测。y_preestimator.predict(x_test)print(f预测值为:{y_pre})# 70.3047619# 6. 模型评估。(后面用 mse均方误差 rmse 均方根误差 mae 平均绝对误差)

相关推荐

OpenCore Legacy Patcher 3.0.0:手把手让老 Intel Mac 装上新版 macOS
OpenCore Legacy Patcher 3.0.0:手把手让老 Intel Mac 装上新版 macOS

OpenCore Legacy Patcher 3.0.0:手把手让老 Intel Mac 装上新版 macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher&a… · 2026/11/5 6:37:28

入侵检测系统(3)
入侵检测系统(3)

加密流量早已是互联网的默认形态。HTTPS、SSH、TLS 包裹下的业务流量,让传统“打开包看载荷”的思路越来越难落地。然而,入侵检测并不因此失效。哪怕只能看到密文,连接何时建立、对谁、用什么端口、证书由谁签发、TCP 序列号是否异常,这些协议元数据依然能暴露出攻击痕迹。… · 2026/11/5 6:37:28

PySceneDetect场景检测实战指南:5种核心算法与应用技巧
PySceneDetect场景检测实战指南:5种核心算法与应用技巧

PySceneDetect场景检测实战指南:5种核心算法与应用技巧 【免费下载链接】PySceneDetect :movie_camera: Python and OpenCV-based scene cut/transition detection program & library. 项目地址: https://gitcode.com/GitHub_Trending/py/PySceneDetect … · 2026/11/5 6:36:28

高效会议互动设计:10个实战方案提升40%会议效率
高效会议互动设计:10个实战方案提升40%会议效率

1. 会议互动环节设计的核心价值会议冷场和跑题是职场中最常见的两大痛点。根据我过去五年为37家企业设计会议流程的经验,传统会议模式中平均每小时的无效时间高达18分钟。而精心设计的互动环节能将会效提升40%以上,这个数据来自我们对实施新会议模式的23… · 2026/11/5 8:32:13

工业防爆无线AP选型指南:IIB与IIC标准对比
工业防爆无线AP选型指南:IIB与IIC标准对比

1. 防爆无线AP选型背景解析 在石油化工、煤矿井下、危化品仓储等特殊工业场景中,常规无线网络设备存在严重安全隐患。一个电火花就可能引发灾难性事故——这正是防爆无线接入点(AP)存在的核心价值。这类设备通过特殊设计确保在易燃易爆环境中… · 2026/11/5 8:32:13

楼宇微网虚拟储能系统设计与优化实践
楼宇微网虚拟储能系统设计与优化实践

1. 项目概述与背景解析 楼宇微网作为分布式能源系统的重要应用形式,正在成为建筑领域实现"双碳"目标的关键技术路径。传统楼宇微网主要依赖物理储能设备(如锂电池)来平抑可再生能源的波动性,但这种方案面临着投资成本高… · 2026/11/5 8:32:13

数学建模国赛C题实战指南:数据预处理、模型选择与结果检验全解析
数学建模国赛C题实战指南:数据预处理、模型选择与结果检验全解析

简介:这份资源是2022年全国大学生数学建模竞赛C题的MATLAB实现代码,面向正在备战数学建模国赛、希望参考获奖方案实现细节的高校学生与建模爱好者。压缩包共24个文件,约405KB,以13个.m脚本为主体,配合6个.mat数据文件和… · 2026/11/5 8:32:13

预期功能安全SOTIF:零故障为何仍会撞车?
预期功能安全SOTIF:零故障为何仍会撞车?

简介:面向智能网联汽车功能安全从业者、系统与软件工程师及高校相关专业学习者,这份资料提供预期功能安全(SOTIF)领域的核心标准文本,重点解决自动驾驶与辅助驾驶系统在无故障情形下因性能局限、感知偏差和算法约束所引… · 2026/11/5 8:32:13

OpenClaw智能体集群:工业级部署与优化实践
OpenClaw智能体集群:工业级部署与优化实践

1. 项目概述:智能体集群的工业级实践 在自动化运维和分布式计算领域,智能体集群正成为企业基础设施的新标配。OpenClaw作为轻量级智能体管理框架,其核心价值在于将复杂的集群管理简化为可编程的标准化操作。我在金融行业的基础架构升级项目中… · 2026/11/5 8:31:12

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码