盐城网站建站,企业门户网站系统下载,碧桂园事件全过程,网站3网合一是怎么做的衡量线性回归算法最好的指标#xff1a;R Squared 一、摘要二、回归算法评价指标与R Squared指标介绍三、R Squared的编程实践 一、摘要
本文主要介绍了线性回归算法中用于衡量模型优劣的重要指标——R Squared#xff08;R方#xff09;。R方用于比较模型预测结果与实际结… 衡量线性回归算法最好的指标R Squared 一、摘要二、回归算法评价指标与R Squared指标介绍三、R Squared的编程实践 一、摘要
本文主要介绍了线性回归算法中用于衡量模型优劣的重要指标——R SquaredR方。R方用于比较模型预测结果与实际结果的拟合程度其值范围在0到1之间越接近1表示模型预测效果越好。R方的计算涉及预测误差与总误差的比较其中分子为预测误差的平方和分母为总误差的平方和。当R方等于1时表示模型预测无误差小于零则表明模型效果不佳可能不适合线性回归。 此外还介绍了如何通过编程实践计算R方值并在不同的机器学习库中实现该指标的计算。最后强调了R方作为衡量线性回归模型性能的关键指标的重要性。
二、回归算法评价指标与R Squared指标介绍 之前的博文中介绍了评价回归算法优劣的三个指标MSE均方误差、RMSE均方根误差和MAE平均绝对误差。这些指标存在的问题无法直接比较不同问题的预测误差。分类问题的评价指标简单明了取值在0到1之间而回归算法的指标没有这样的性质。 R SquaredR方 是一个解决上述问题的新指标。 计算方法1减去两个量的比值分子是残差平方和分母是总平方和。 R方计算步骤计算残差平方和与总平方和代入公式计算R方值。残差平方和预测结果减去真实值的平方和。总平方和真实值与均值差的平方和。 R Squared的优势 R方将回归问题的衡量结果归约到0到1之间便于比较不同模型的性能。R方越大越好越接近1表示模型预测越准确。R方小于零表示模型预测效果不如基准模型。可能意味着数据间不存在线性关系需要考虑其他回归方法。 R Squared的统计意义 R方可以表示为1减去均方误差MSE与方差的比值。均方误差预测结果与真实值的平方差均值。方差真实值的方差。R方衡量模型与基准模型的差异值越大表示模型预测越准确。 最后这张图将公式的含义是1 - MSE均方误差/ Var方差
三、R Squared的编程实践
计算R方的编程实践使用NumPy、SciPy或sklearn等库进行计算。示例代码计算简单线性回归模型的R方值。import openml
import numpy as np# 从 openml 获取波士顿房价数据集
dataset openml.datasets.get_dataset(531)
X, y, categorical_indicator, attribute_names dataset.get_data(targetdataset.default_target_attribute, dataset_formatdataframe
)# 这里只用RM这个特征来计算提取RM列特征数据
boston_datas X.iloc[:,5]# 分布在50那里的一些点可能不是真实的点比如问卷调查中通过会设置一些上限点而往往这些不是真实存在的额点因此可以去除
y_normal y[y 50.0]
x_normal boston_datas[y 50.0]import sys
# 替换为你的 PyCharm 工程实际路径
project_path D:/PycharmProjects/pythonProject/
if project_path not in sys.path:sys.path.append(project_path)# 拆分训练集和测试集
from model_selection import train_test_split
X_train,y_train,X_test,y_test train_test_split(np.array(x_normal),np.array(y_normal),seed666)# 引入我们自己实现的线性回归模型
from SimpleLinearRegressionDemo import SimpleLinearRegressionModel
reg1 SimpleLinearRegressionModel()
reg1.fit(X_train,y_train)# 预测结果
y_predict reg1.predict(X_test)# scikit-learn来计算均方误差和绝对值误差
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error# 根据公式先计算分子: MSE 均方误差
n_mse mean_squared_error(y_predy_predict,y_truey_test)
# 根据公式先计算分母: 测试集的方差
d_var np.var(y_test)# 带入公式得到R Squared值
ret_pred 1 - n_mse / d_var
ret_pred执行结果0.6129316803937324