5

I am trying to predict test reuslts based on known previous scores. The test is made up of three subjects, each contributing to the final exam score. For all students I have their previous scores for mini-tests in each of the three subjects, and I know which teacher they had. For half of the students (the training set) I have their final score, for the other half I don't (the test set). I want predict their final score.

So the test set looks like this:

student teacher subject1score subject2score subject3score finalscore

while the test set is the same but without the final score

student teacher subject1score subject2score subject3score 

So I want to predict the final score of the test set students. Any ideas for a simple learning algorithm or statistical technique to use?

4

1 に答える 1

6

試す最も簡単で合理的な方法は、教師と 3 つのスコアを予測子として使用する線形回帰です。(これは、教師と 3 つのテストの点数がそれぞれ最終試験に向けてある程度の予測能力を持っているという仮定に基づいていますが、それらの寄与は異なる可能性があります。たとえば、3 番目のテストが最も重要である可能性があります)。

特定の言語については言及していませんが、「training.scores andtest.scores」という 2 つのデータ フレームとして R にロードしたとしましょう。モデルのフィッティングは、 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 ***

推定値は、その変数の効果がどれほど強かったかを示します。一方、p 値 ( Pr(>|T|)) は、各変数が実際に役に立ったか、またはランダム ノイズによるものかを示します。まだまだたくさんありますが、オンラインで入手できる優れたリソースをお読みになることをお勧めします。

またplot(lm.fit)、残差のグラフも表示されます (残差とは、テスト セットで各予測がずれている量を意味します)。これは、モデルの仮定が公正かどうかを判断するために使用できることを示しています。

于 2012-04-17T15:29:30.493 に答える