2016-05-15 15 views
2

をR:計算エラーレート、私は以下のように行列を持つ

Real_Values Predicted_Values 
5.5   5.67 
6.9   7.01 
9.8   9.2 
6.5   6.1 
10   9.7 
1.5   1.0 
7.7   7.01 

私は予測と実際の値との間に、私のモデルのエラー率を計算し、理想的なプロットを行いたいです。私はRに既にきちんとしたパッケージがあるかどうか疑問に思っていたので、私はループを避けるだろうか?

+0

"エラー率"の意味を詳しく説明できますか?たとえば[MAPE](https://en.wikipedia.org/wiki/Mean_absolute_percentage_error)? – digEmAll

答えて

0

残余の二乗和を計算する場合は、lm()などの関数がこの情報を出力します。 RSS用語にアクセスするデータのモデリングに使用した関数によって、少し異なります。あなたが簡単にあなたがルートのような回帰エラーメトリックは手で二乗誤差(RMSE)または乗誤差(SSE)の合計を意味し計算することができます

このような
datf <- as.data.frame(your_matix) 
datf$difsq <- (datf$Real_Values - datf$Predicted_Values)^2 
rss <- sum(datf$difsq) 
+0

機械学習にはかなり新しいので、検証方法についてはあまりよく分かりませんが、Real_Valuesは実際には既知の値であり、Predicted_Valuesは5倍交差検証に基づいて予測される値です。私のモデルがうまく実行されているかどうかを確認するための値があります。私は2つの他の予測モデルと同じフォーマットの2つのテーブルを持っているので、その方法にとって最適な方法はわかりません。これらのモデルのどれが最良のものかを示す測定! – user6336850

+0

通常、RSSは線形モデルの比較に使用されます。私は多くのマシン学習経験はありませんが、おそらくこのリンクは[リンク](http://machinelearningmastery.com/compare-the-performance-of-machine-learning-algorithms-in-r/) – Nate

0

にRSS式をコーディングすることができ、あなたのDATA_FRAMEに基づいて

@ nathan-dayで指摘されているように。ほとんどの実装は自動的にこれを行いますので、通常は手動で行う必要はありません。

プロットの目的で、より多くのサンプルを使用して、少し大きめのサンプルを使用します(これは、Rと一緒に出荷されたirisデータセットです)。

> model <- train(iris[,1:3], iris[,4], method = 'lm', metric = 'RMSE', trControl = trainControl(method = 'repeatedcv', number = 10, repeats = 10)) 
> print(model) 
Linear Regression 

150 samples 
3 predictors 

No pre-processing 
Resampling: Cross-Validated (10 fold, repeated 10 times) 

Summary of sample sizes: 134, 135, 135, 136, 134, 135, ... 

Resampling results 

RMSE Rsquared RMSE SD Rsquared SD 
0.19 0.942  0.0399 0.0253 

などRMSE、SSE、今ターゲットの予測と実際の値から計算することができます:まず、我々はすでにいくつかの指標を計算し、最初の3つの機能から4番目の機能を予測するための線形モデルを、訓練しますあまりにも手で変数:繰り返しクロスバリデーションを用いた結果、上記のモデルのトレーニングの結果に

predicted <- predict(model, iris[,1:3]) # perform the prediction 
actual <- iris[,4] 
sqrt(mean((predicted-actual)**2)) # RMSE 
sum((predicted-actual)**2) # SSE 

わずかな差が(したがってメトリックは、「リサンプリング結果」が下に記載されています)。

プロット部分については、実際のターゲット変数に対して予測をプロットしたり、実際の値に対して誤差をプロットすることで、回帰誤差を容易に視覚化できます。完璧なフィット感は、これらのプロットの追加の線で表されます。これは、あまりにも簡単に標準的なツールで実現することができます。

plot(predicted~actual) 
abline(0,1) 

plot(predicted-actual~actual) 
abline(0,0) 

PS:あなたは回帰/分類エラー対策と堅牢なMLの手続きに精通していない場合、私は強くこれらのトピック時まで読むためにいくつかの時間を費やして推薦する - それは意志後で多くの石灰を節約するでしょう。私は個人的には、読みやすく、非常に実用的なので、Max Kuhn(Rのcaretパッケージのメンテナー)とKjell Johnsonによって、Applied Predictive Modelingを個人的にお勧めします。

関連する問題