news 2026/5/19 13:30:03

机器学习模型评估指标:R²分数与均方误差(MSE)详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习模型评估指标:R²分数与均方误差(MSE)详解

今天将介绍一些对于确定回归模型的准确性和质量至关重要的术语:方差、R²分数和均方误差(MSE)。我们将使用scikit-learn库来阐释这些概念。(本文是scikit-learn指南的一部分。请使用右侧菜单导航。)

回归模型的应用

理解这些指标有助于判断回归模型是准确还是具有误导性。使用回归这种统计技术有助于突出数据中的模式、趋势和关系,从而为预测未来提供见解。你可以看到自变量如何影响因变量以及这些关系的强度。这种洞察未来可能性、理解联系和依赖关系的能力,对于规划各种场景以及评估和应对风险而言是无价的。

多个高风险的行业广泛使用回归模型,包括:

  • 金融
  • 商业分析
  • 工程
  • 医疗保健
  • 科学
  • 体育
  • 计算机科学

为什么R²分数在机器学习中很重要

任何回归模型的价值都取决于其准确性,特别是其解释数据方差的能力。这就是为什么提高R²分数至关重要。

机器学习和人工智能协同工作,以识别正确的变量,微调模型以改进预测,并在复杂、非线性的大规模数据集中捕捉难以识别的关系。人工智能和机器学习改善了模型与数据变化的拟合或解释程度,使其在进行预测时更加准确。它减少了欠拟合(遗漏关键关系)和过拟合(引入无意义的噪音)。它有助于选择恰到好处的变量,避免那些给模型带来偏差或浪费性冗余的变量。目标是建立一个高效的模型,能够产生准确的结果并支持更好的预测。

通过示例可以使这些概念更加生动,便于理解。让我们使用上一篇博客文章中的代码,并添加额外的逻辑。在上篇博客中,我们使自变量y和因变量x相关,以说明如何使用scikit-learn进行线性回归的基础知识。这次,我们将在因变量(y)中引入一些随机性,以便在我们的预测中存在一些误差。

什么是方差?

在线性回归中,方差是衡量观测值与预测值平均值(即,它们与预测值均值的差异)相差多少的指标。目标是获得一个较低的值,通过R²分数(下文解释)来量化。在下面的代码中,方差是np.var(err),其中err是观测值与预测值之差的数组,np.var()是numpy的数组方差函数。

什么是R²分数?

根据维基百科,R²分数是“…因变量中可由自变量预测的方差比例”。一个数学定义是“(模型解释的总方差)/ 总方差”。因此,如果它是100%,则两个变量完全相关(即,没有方差)。R²分数在0%到100%之间变化。它与MSE(见下文)密切相关,但并不相同。在大多数情况下,较低的值表明相关性水平低,意味着回归模型无效。

阅读下面的代码,我们分三步进行此计算以便于理解。首先,g是预测值与实际观测值之间差值的平方和:(ytest[i] - preds[i])²。其次,总平方和是使用每个观测值与观测值均值之间的平方差计算的:(ytest[i] - np.mean(ytest))²。然后结果打印如下:

print("total sum of squares",y)print("total sum of residuals ",g)print("r2 calculated",1-(g/y))

这里的目的是解释原理。当然,我们也可以让scikit-learn使用r2_score()方法来完成:

print("R2 score : %.2f"%r2_score(ytest,preds))

什么是均方误差(MSE)?

均方误差(MSE)是误差平方的平均值。数值越大,误差越大。此处的“误差”指的是观测值 y1, y2, y3, … 与预测值 pred(y1), pred(y2), pred(y3), … 之间的差值。我们将每个差值(pred(yn) - yn)) ** 2平方,以便正负值不会相互抵消。

如何在Python中计算MSE

以下是计算MSE的完整代码:

importmatplotlib.pyplotaspltfromsklearnimportlinear_modelimportnumpyasnpfromsklearn.metricsimportmean_squared_error,r2_score reg=linear_model.LinearRegression()ar=np.array([[[1],[2],[3]],[[2.01],[4.03],[6.04]]])y=ar[1,:]x=ar[0,:]reg.fit(x,y)print('Coefficients: n',reg.coef_)xTest=np.array([[4],[5],[6]])ytest=np.array([[9],[8.5],[14]])preds=reg.predict(xTest)print("R2 score : %.2f"%r2_score(ytest,preds))print("Mean squared error: %.2f"%mean_squared_error(ytest,preds))er=[]g=0foriinrange(len(ytest)):print("actual=",ytest[i]," observed=",preds[i])x=(ytest[i]-preds[i])**2er.append(x)g=g+x x=0foriinrange(len(er)):x=x+er[i]print("MSE",x/len(er))v=np.var(er)print("variance",v)print("average of errors ",np.mean(er))m=np.mean(ytest)print("average of observed values",m)y=0foriinrange(len(ytest)):y=y+((ytest[i]-m)**2)print("total sum of squares",y)print("total sum of residuals ",g)print("r2 calculated",1-(g/y))

结果如下:

Coefficients: [[2.015]] R2 score : 0.62 Mean squared error: 2.34 actual= [9.] observed= [8.05666667] actual= [8.5] observed= [10.07166667] actual= [14.] observed= [12.08666667] MSE [2.34028611] variance 1.2881398892129619 average of errors 2.3402861111111117 average of observed values 10.5 total sum of squares [18.5] total sum of residuals [7.02085833] r2 calculated [0.62049414]

通过查看数据np.array([[[1],[2],[3]], [[2.01],[4.03],[6.04]]]),可以看到每个因变量大致是自变量的两倍。计算出的系数reg.coef_为2.015,证实了这一点。

什么是好的均方误差(MSE)?

MSE没有正确的数值。简单来说,数值越低越好,0表示模型是完美的。由于没有正确答案,MSE的基本价值在于选择一个预测模型而不是另一个。同样,R²应该取多少也没有正确答案。100%意味着完美的相关性。然而,有些模型的R²较低,但仍然是好模型。

综合解读R²和MSE

这里要传达的关键信息是,在评估模型时不能孤立地看待这些指标。还必须查看其他指标,并理解背后的数学原理。我们将在后续的博客文章中深入探讨所有这些内容。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 12:38:33

Excalidraw OAuth2认证接入流程

Excalidraw OAuth2 认证接入流程 在现代远程协作日益成为常态的背景下,可视化工具早已不再是简单的绘图板,而是团队沟通、产品设计和系统架构讨论的核心载体。Excalidraw 以其独特的手绘风格和极简交互脱颖而出,被广泛用于绘制流程图、线框图…

作者头像 李华
网站建设 2026/5/18 15:36:49

17、远程访问与系统管理全攻略

远程访问与系统管理全攻略 1. 远程访问设置 1.1 拨号连接设置 在设置好拨号服务器后,就可以配置拨号客户端了。可以有任意数量的拨号连接,例如,在笔记本电脑上可以设置一个用于互联网服务提供商(ISP)的拨号连接,也可以设置一个用于家庭网络的拨号连接。以下是设置拨号…

作者头像 李华
网站建设 2026/5/17 6:27:15

基于单片机的智能小车仿真设计:探索科技与趣味的融合

基于单片机的智能小车仿真设计 在电子制作的世界里,智能小车一直是个热门项目。它不仅融合了电子、机械、编程等多方面知识,还充满了趣味性与实用性。今天,咱们就来唠唠基于单片机的智能小车仿真设计。 单片机:小车的“智慧大脑…

作者头像 李华
网站建设 2026/5/14 4:15:53

Open-AutoGLM你不知道的隐藏功能:高精度错误分类模型一键部署方案

第一章:Open-AutoGLM 错误类型精准分类 在构建和调试 Open-AutoGLM 框架时,错误类型的识别与分类是提升系统鲁棒性的关键环节。通过对运行时日志、模型推理异常及配置校验失败等场景进行系统性归类,可显著加快问题定位速度。 常见错误类型划…

作者头像 李华
网站建设 2026/5/14 20:42:16

【专家级调优技巧】:深入理解Open-AutoGLM中的状态序列化与恢复机制

第一章:Open-AutoGLM任务进度保存的核心价值在大规模语言模型自动化调优流程中,Open-AutoGLM作为前沿的智能任务调度框架,其任务进度保存机制不仅是容错能力的基础保障,更是提升实验迭代效率的关键环节。当模型训练或推理任务运行…

作者头像 李华
网站建设 2026/5/16 11:32:16

11、Windows 7 安全与软件使用全攻略

Windows 7 安全与软件使用全攻略 1. Windows 7 安全设置 1.1 更改登录密码 如果你在首次启动 Windows 时设置了密码,可按需更改。怀疑密码泄露或想到更好的密码时,就需要进行更改。设置密码是可选但明智的做法,能防止他人未经授权登录你的账户。若首次启动未设密码,也可…

作者头像 李华