验证测试数据的准确性

我已经用训练数据拟合了我的模型,并使用R平方测试了模型的准确性。

然而,我想用我的测试数据来测试模型的准确性,该怎么做呢?

我的预测值是连续的。我对此相当陌生,所以欢迎各种建议。

LR_swim <- lm(racetime_mins ~ event_month +gender + place +             clocktime_mins +handicap_mins +              Wind_Speed_knots+              Air_Temp_Celsius +Water_Temp_Celsius +Wave_Height_m,               data = SwimmingTrain)            family=gaussian(link = "identity")summary(LR_swim)rsq(LR_swim) #Returns-  0.9722331#Predict Race_Time Using Test Data pred_LR <- predict(LR_swim, SwimmingTest, type ="response")#Add predicted Race_Times back into the test dataset.SwimmingTest$Pred_RaceTime <- pred_LR

回答:

首先,正如评论中已经指出的,术语准确性实际上是为分类问题保留的。你实际上指的是模型的性能。事实上,对于回归问题(如你的问题),有几种这样的性能度量方法可用。

不管好坏,R^2仍然是许多实现中的标准度量;然而,可能有必要记住我在其他地方争论过的观点:

整个R平方的概念实际上直接来自统计学界,那里强调的是解释性模型,而在机器学习环境中,它几乎没有用武之地,那里的重点显然是预测性模型;至少据我所知,除了某些非常入门的课程之外,我从未(我是说从未…)见过使用R平方来进行任何形式性能评估的预测建模问题;这也不是偶然的,流行的机器学习介绍,如Andrew Ng在Coursera上的机器学习课程,甚至都没有提到它。正如在上面的Github线程中所指出的(强调增加):

特别是在使用测试集时,我不太清楚R平方意味着什么。

我完全同意这一观点。

有几种其他性能度量方法在你的预测任务中可能更合适;而且它们中的大多数都可以用一行R代码实现。所以,对于一些虚拟数据:

preds <- c(1.0, 2.0, 9.5)actuals <- c(0.9, 2.1, 10.0)

均方误差(MSE)简单地是

mean((preds-actuals)^2)# [1] 0.09

平均绝对误差(MAE)

mean(abs(preds-actuals))# [1] 0.2333333

以及均方根误差(RMSE)只是MSE的平方根,即:

sqrt(mean((preds-actuals)^2))# [1] 0.3

这些度量方法在评估未见数据的性能时可能更有用。后两者还有一个额外的优势,它们与你的原始数据处于相同的尺度(MSE的情况并非如此)。

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

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