哪个R平方得分更有帮助?

   data.drop('Movie Title', axis=1, inplace=True)   features = data.loc[:, data.columns != 'worldwide_gross_usd']   charges = data['worldwide_gross_usd']   X_train, X_test, y_train, y_test = train_test_split(features,                                                         charges,                                                         random_state=42,                                                         test_size = 0.2)        regr = LinearRegression().fit(X_train, y_train)        y_pred = regr.predict(X_test)        print('Trained R-squared score: ', regr.score(X_train, y_train))    print('Tested R-squared score: ', regr.score(X_test, y_test))

输出:

训练集R平方得分: 0.5404764241697003

测试集R平方得分: 0.5845801856343114

X_train, X_test, y_train, y_test = train_test_split(features,                                                     charges,                                                     random_state=12,                                                     test_size = 0.2)regr = LinearRegression().fit(X_train, y_train)y_pred = regr.predict(X_test)print('Trained R-squared score: ', regr.score(X_train, y_train))print('Tested R-squared score: ', regr.score(X_test, y_test))

输出:

训练集R平方得分: 0.5345435646372121

测试集R平方得分: 0.602138324770633

你可以注意到,当我改变random_state的值时,我的训练得分降低了1%,但我的测试得分增加了2%。你更倾向于选择第一个还是第二个R平方得分?


回答:

R平方得分是回归模型的一个快速估计,但不是一个好的估计器。

这就像是:

你在二维平面上有3个点(假设为p1, p2, p3)。

在第一种情况下,你使用p1和p2绘制回归线,然后在p3上测试它,得到r1得分。

接下来,你使用p2和p3绘制回归线,然后在p1上测试它,得到r2得分。

所以,你不能完全依赖于不同随机状态下的R平方得分。

推论:

  1. 如果你的所有数据点都同样相关,那么测试集上较高的R平方得分更好。

  2. 如果你对数据集的相关性不确定,那么你应该检查其他参数/方法来确定哪个R平方得分更好。

其他参数/方法:

你应该为这两种情况绘制残差图。检查哪个的均值接近零且方差接近1(对于大多数数据集而言),那一个更好。如果任何一种情况下的残差图显示出某种模式,那么这种情况不好,可以改进。如果任何一种情况下的残差图中有残差,那么这种情况也不好,可以改进。

注意: 例如,你想预测房价,并有房屋面积、位置、卧室数、之前居住人数等数据。但房价更多地依赖于房屋面积而不是之前居住人数。所以这两者不是同样相关的。这就是我所说的同样相关的意思。

Related Posts

多维度Top-k评分

例如,在机器学习中的自然语言处理中,通常使用波束搜索来…

R – Caret train() “错误:停止” 与 “在newdata中未找到对象中使用的所有变量名”

我正在尝试为蘑菇数据构建一个简单的朴素贝叶斯分类器。我…

创建训练和测试数据集分割,数据嵌套在多个文件夹中

我正在准备数据以训练一个图像识别模型。目前我有一个文件…

我的神经网络预测出现错误:IndexError: list index out of range

我正在进行一个简单的垃圾邮件/非垃圾邮件文本分类。我的…

python 给出数组是一维的,但索引了两个维度错误

我已经为 miniBatchGradientDesce…

TensorFlow自定义训练步骤使用不同的损失函数

背景 根据TensorFlow文档,可以使用以下方式执…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注