R2 和 RMSE

这篇具有很好参考价值的文章主要介绍了R2 和 RMSE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要点:

  • 多项式回归模型的搭建

一  简介

R2(决定系数)和RMSE(均方根误差)是常用的回归模型评估指标,用于衡量模型对观测数据的拟合程度和预测精度。以下是它们的计算方法:

  1. R2(决定系数): R2 表示模型对因变量的解释能力,取值范围从 0 到 1,越接近 1 表示模型对数据的拟合程度越好

    计算公式为: R2 = 1 - (SSR / SST) 其中,SSR 是回归平方和(Sum of Squares of Residuals),表示回归模型的拟合误差; SST 是总平方和(Total Sum of Squares),表示总体数据的离散程度。

    R2 的计算结果越接近 1,说明模型能够较好地解释观测数据的变化,拟合效果较好。

  2. RMSE(均方根误差)RMSE 表示模型预测值与实际观测值之间的差异,用于衡量模型的预测精度

    计算公式为: RMSE = sqrt(MSE) 其中,MSE 是均方误差(Mean Squared Error),表示预测值与观测值之间的平均误差的平方。

    RMSE 的计算结果越小,表示模型的预测精度越高,预测值与实际观测值的差异较小。

二  求值方式

在使用机器学习框架或统计软件包进行建模时,通常可以通过相应的函数或方法来获取模型的 R2 和 RMSE 值。

以常见的Python机器学习库Scikit-learn为例,可以使用以下方法来获取 R2 和 RMSE 值:

  • R2(决定系数):

from sklearn.metrics import r2_score

# y_true为实际观测值,y_pred为模型预测值
r2 = r2_score(y_true, y_pred)

这将计算模型的 R2 值,其中 y_true 是实际观测值,y_pred 是模型的预测值。

  • RMSE(均方根误差):

from sklearn.metrics import mean_squared_error

# y_true为实际观测值,y_pred为模型预测值
rmse = mean_squared_error(y_true, y_pred, squared=False)

这将计算模型的 RMSE 值,其中 y_true 是实际观测值,y_pred 是模型的预测值squared=False 参数表示返回的是均方根误差而不是均方误差。

这只是一个示例,具体的方法和函数可能因使用的工具或库而有所差异。在具体使用时,可以查阅所使用工具的文档或参考相应的函数说明来获取模型的 R2 和 RMSE 值。

三 非线性拟合

非线性回归是指将非线性模型应用于回归问题,其中因变量和自变量之间的关系不是线性的。非线性回归函数的选择通常取决于问题的特性和数据的分布。

以下是一些常见的非线性回归函数:

  1. 多项式回归: 多项式回归将自变量的多项式函数引入回归模型中,例如二次、三次或更高次的多项式。其形式为:

    y = a0 + a1*x + a2*x^2 + a3*x^3 + ...
    

    其中 x 是自变量,y 是因变量,a0, a1, a2, a3, ... 是回归系数。

  2. 指数回归: 指数回归将自变量以指数函数的形式引入回归模型中。其形式为:

    y = a*exp(b*x)
    

    其中 x 是自变量,y 是因变量,ab 是回归系数。

  3. 对数回归: 对数回归将自变量以对数函数的形式引入回归模型中。其形式为:

    y = a + b*log(x)
    

    其中 x 是自变量,y 是因变量,ab 是回归系数。

  4. Sigmoid回归(逻辑回归): Sigmoid回归是一种常用的二分类非线性回归方法,它使用Sigmoid函数将线性组合的结果转换为概率值。其形式为:

    y = 1 / (1 + exp(-(a + b*x)))
    

    其中 x 是自变量,y 是概率值,ab 是回归系数。

这只是非线性回归函数的一些示例,实际选择哪种函数取决于具体问题和数据的特征。还有其他许多非线性函数可供选择,您可以根据问题的需要进行调整和扩展。

四  多项式回归

多项式回归参考:多项式回归

线性回归研究的是一个目标变量和一个自变量之间的回归问题,但有时候在很多实际问题中,影响目标变量的自变量往往不止一个,而是多个,比如绵羊的产毛量这一变量同时受到绵羊体重、胸围、体长等多个变量的影响,因此需要设计一个目标变量与多个自变量间的回归分析,即多元回归分析。由于线性回归并不适用于所有的数据,我们需要建立曲线来适应我们的数据,现实世界中的曲线关系很多都是增加多项式实现的,比如一个二次函数模型:

# -*- coding: utf-8 -*-
# By:Eastmount CSDN 2021-07-03
from sklearn.linear_model import LinearRegression     
from sklearn.preprocessing import PolynomialFeatures
import matplotlib.pyplot as plt       
import numpy as np

#X表示企业成本 Y表示企业利润
X = [[400], [450], [486], [500], [510], [525], [540], [549], [558], [590], [610], [640], [680], [750], [900]]
Y = [[80], [89], [92], [102], [121], [160], [180], [189], [199], [203], [247], [250], [259], [289], [356]]
print('数据集X: ', X)
print('数据集Y: ', Y)

#第一步 线性回归分析
clf = LinearRegression() 
clf.fit(X, Y)                     
X2 = [[400], [750], [950]]
Y2 = clf.predict(X2)
print(Y2)
res = clf.predict(np.array([1200]).reshape(-1, 1))[0]   
print('预测成本1200元的利润:$%.1f' % res) 
plt.plot(X, Y, 'ks')    #绘制训练数据集散点图
plt.plot(X2, Y2, 'g-')  #绘制预测数据集直线

#第二步 多项式回归分析
xx = np.linspace(350,950,100) #350到950等差数列
quadratic_featurizer = PolynomialFeatures(degree = 2) #实例化一个二次多项式
x_train_quadratic = quadratic_featurizer.fit_transform(X) #用二次多项式x做变换
X_test_quadratic = quadratic_featurizer.transform(X2)
regressor_quadratic = LinearRegression()
regressor_quadratic.fit(x_train_quadratic, Y)

#把训练好X值的多项式特征实例应用到一系列点上,形成矩阵
xx_quadratic = quadratic_featurizer.transform(xx.reshape(xx.shape[0], 1))
plt.plot(xx, regressor_quadratic.predict(xx_quadratic), "r--",
         label="$y = ax^2 + bx + c$",linewidth=2)
plt.legend()
plt.show()    

这里我们使用R方(R-Squared)来评估多项式回归预测的效果,R方也叫确定系数(Coefficient of Determination),它表示模型对现实数据拟合的程度。计算R方的方法有几种,一元线性回归中R方等于皮尔逊积矩相关系数(Pearson Product Moment Correlation Coefficient)的平方,该方法计算的R方是一定介于0~1之间的正数。另一种是Sklearn库提供的方法来计算R方。R方计算代码如下:文章来源地址https://www.toymoban.com/news/detail-471737.html

# -*- coding: utf-8 -*-
# By:Eastmount CSDN 2021-07-03
from sklearn.linear_model import LinearRegression     
from sklearn.preprocessing import PolynomialFeatures
import matplotlib.pyplot as plt       
import numpy as np

#X表示企业成本 Y表示企业利润
X = [[400], [450], [486], [500], [510], [525], [540], [549], [558], [590], [610], [640], [680], [750], [900]]
Y = [[80], [89], [92], [102], [121], [160], [180], [189], [199], [203], [247], [250], [259], [289], [356]]
print('数据集X: ', X)
print('数据集Y: ', Y)

#第一步 线性回归分析
clf = LinearRegression() 
clf.fit(X, Y)                     
X2 = [[400], [750], [950]]
Y2 = clf.predict(X2)
print(Y2)
res = clf.predict(np.array([1200]).reshape(-1, 1))[0]   
print('预测成本1200元的利润:$%.1f' % res) 
plt.plot(X, Y, 'ks')    #绘制训练数据集散点图
plt.plot(X2, Y2, 'g-')  #绘制预测数据集直线

#第二步 多项式回归分析
xx = np.linspace(350,950,100) 
quadratic_featurizer = PolynomialFeatures(degree = 5) 
x_train_quadratic = quadratic_featurizer.fit_transform(X) 
X_test_quadratic = quadratic_featurizer.transform(X2)
regressor_quadratic = LinearRegression()
regressor_quadratic.fit(x_train_quadratic, Y)
#把训练好X值的多项式特征实例应用到一系列点上,形成矩阵
xx_quadratic = quadratic_featurizer.transform(xx.reshape(xx.shape[0], 1))
plt.plot(xx, regressor_quadratic.predict(xx_quadratic), "r--",
         label="$y = ax^2 + bx + c$",linewidth=2)
plt.legend()
plt.show()
print('1 r-squared', clf.score(X, Y))
print('5 r-squared', regressor_quadratic.score(x_train_quadratic, Y))

# ('1 r-squared', 0.9118311887769025)
# ('5 r-squared', 0.98087802460869788)

到了这里,关于R2 和 RMSE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python多项式回归sklearn

    多项式回归是一种回归分析的方法,它通过使用多项式函数来拟合数据。与简单线性回归不同,多项式回归可以更灵活地适应数据的曲线特征,因为它可以包含多个特征的高次项。 多项式回归的一般形式为: 在实际应用中,可以通过调整多项式的次数来适应不同的数据特征

    2024年01月25日
    浏览(42)
  • Python 中的机器学习简介:多项式回归

            多项式回归可以识别自变量和因变量之间的非线性关系。本文是关于回归、梯度下降和 MSE 系列文章的第三篇。前面的文章介绍了简单线性回归、回归的正态方程和多元线性回归。         多项式回归用于最适合曲线拟合的复杂数据。它可以被视为多元线性回

    2024年02月13日
    浏览(44)
  • pytorch 欠拟合和过拟合 多项式回归

        训练误差和验证误差都有,还可能比较严重, 但它们之间仅有差距不大。 这个时候模型不能降低训练的误差,有可能是我们设计的模型简单了,表达能力不足, 捕获试图学习的模式比较难。由于我们的训练和验证误差之间的泛化误差很小, 这个时候我们认为可以用一

    2024年02月16日
    浏览(38)
  • 逻辑回归与多项式特征:解密分类问题的强大工具

    在机器学习领域,逻辑回归是一种常用的分类算法,它可以用于解决诸如垃圾邮件过滤、疾病预测和客户流失分析等各种分类问题。然而,有时候简单的线性逻辑回归模型无法捕捉到数据中的复杂关系。为了更好地处理这些情况,我们可以引入多项式特征,从而提高模型的表

    2024年02月08日
    浏览(44)
  • R数据分析:多项式回归与响应面分析的理解与实操

    今天给大家分享一个新的统计方法,叫做响应面分析,响应面分析是用来探究变量一致性假设的(Congruence hypotheses)。本身是一个工程学方法,目前在组织行为学,管理,市场营销等等领域中使用越来越多。 Congruence hypotheses state that the agreement (i.e., congruence) between two construc

    2024年02月07日
    浏览(47)
  • 机器学习-朴素贝叶斯之多项式模型

    贝叶斯概率公式,来自Wang’s Blog的原创 输出结果: 显示的没办法爬数据,我又换了一组数据 输出的效果还挺不错

    2024年02月08日
    浏览(39)
  • Python实现离散选择多项式对数模型(MNLogit算法)项目实战

    说明:这是一个机器学习实战项目(附带 数据+代码+文档+视频讲解 ),如需 数据+代码+文档+视频讲解 可以直接到文章最后获取。 多项式对数模型是离散选择模型的一种。 本项目通过MNLogit算法来构建多项式对数模型。   本次建模数据来源于网络(本项目撰写人整理而成),数

    2024年01月23日
    浏览(46)
  • 机器学习_数据升维_多项式回归代码_保险案例数据说明_补充_均匀分布_标准正太分布---人工智能工作笔记0038

    然后我们再来看一下官网注意上面这个旧的,现在2023-05-26 17:26:31..我去看了新的官网, scikit-learn已经添加了很多新功能,     我们说polynomial多项式回归其实是对数据,进行 升维对吧,从更多角度去看待问题,这样 提高模型的准确度. 其实y=w0x0+w1x1.. 这里就是提高了这个x的个数对吧

    2024年02月06日
    浏览(44)
  • 回归模型评价指标:MSE、RMSE、MAE、R2 score

    回归模型评价指标:MSE、RMSE、MAE、 R 2 R^2 R 2 score 提示: 回归模型的性能的评价指标主要有:RMSE(平方根误差)、MAE(平均绝对误差)、MSE(平均平方误差)、R2_score。但是当量纲不同时,RMSE、MAE、MSE难以衡量模型效果好坏,这就需要用到R2_score。 (MAE)Mean Absolute Error,是绝对误差的平

    2024年02月12日
    浏览(36)
  • AA@有理系数多项式@整系数多项式@本原多项式@有理多项式可约问题

    有理数域上一元多项式的因式分解. 作为 因式分解定理 的一个特殊情形,我们有结论: 每个次数大等于1的 有理系数多项式 都能 唯一地 分解成 不可约的有理系数多项式 的乘积. 有理数域版本中,从一般数域具体到了\\\" 有理系数 \\\" 我们讨论多项式的时候,都假设多项式是在某个数

    2024年02月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包