5

我正在尝试根据已知的先前分数来预测测试结果。考试由三门科目组成,每门科目都会影响期末考试成绩。对于所有学生,我都有他们之前在三个科目中的小测验的分数,而且我知道他们的老师是谁。对于一半的学生(训练集),我有他们的最终分数,对于另一半我没有(测试集)。我想预测他们的最终得分。

所以测试集看起来像这样:

student teacher subject1score subject2score subject3score finalscore

虽然测试集相同但没有最终分数

student teacher subject1score subject2score subject3score 

所以我想预测测试集学生的最终成绩。关于使用简单的学习算法或统计技术的任何想法?

4

1 回答 1

6

最简单、最合理的尝试方法是线性回归,将老师和三个分数用作预测变量。(这是基于这样的假设,即教师和三个考试成绩各自对期末考试都有一定的预测能力,但它们的贡献可能不同——例如,第三次考试可能最重要)。

您没有提到特定的语言,但假设您将其作为两个数据框加载到 R 中,称为“training.scores andtest.scores”。拟合模型就像使用lm一样简单:

lm.fit = lm(finalscore ~ teacher + subject1score + subject2score + subject3score, training.scores)

然后预测将完成为:

predicted.scores = predict(lm.fit, test.scores)

谷歌搜索“R 线性回归”、“R 线性模型”或类似搜索会发现许多可以提供帮助的资源。您还可以了解稍微复杂的方法,例如广义线性模型或广义加性模型,它们几乎与上述方法一样容易执行。

ETA:有一些关于解释线性回归主题的书籍——这里有一个简单的示例指南。一般来说,你会summary(lm.fit)打印一堆关于合身的信息。您将在输出中看到如下所示的系数表:

            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -14.4511     7.0938  -2.037 0.057516 .  
setting       0.2706     0.1079   2.507 0.022629 *  
effort        0.9677     0.2250   4.301 0.000484 ***

Pr(>|T|)估计值将让您了解该变量的影响有多强,而 p 值 ( 它还有很多内容,但我邀请您阅读在线可用的优秀资源。

残差图(残差表示每个预测在您的测试集中偏离的量)也plot(lm.fit)将显示,它告诉您可以用来确定模型的假设是否公平。

于 2012-04-17T15:29:30.493 回答