哪个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

神经网络反向传播代码不工作

我需要编写一个简单的由1个输出节点、1个包含3个节点的…

值错误:y 包含先前未见过的标签:

我使用了 决策树分类器,我想将我的 输入 作为 字符串…

使用不平衡数据集进行特征选择时遇到的问题

我正在使用不平衡数据集(54:38:7%)进行特征选择…

广义随机森林/因果森林在Python上的应用

我在寻找Python上的广义随机森林/因果森林算法,但…

如何用PyTorch仅用标量损失来训练神经网络?

假设我们有一个神经网络,我们希望它能根据输入预测三个值…

什么是RNN中间隐藏状态的良好用途?

我已经以三种不同的方式使用了RNN/LSTM: 多对多…

发表回复

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