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に既にきちんとしたパッケージがあるかどうか疑問に思っていたので、私はループを避けるだろうか?
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に既にきちんとしたパッケージがあるかどうか疑問に思っていたので、私はループを避けるだろうか?
残余の二乗和を計算する場合は、lm()などの関数がこの情報を出力します。 RSS用語にアクセスするデータのモデリングに使用した関数によって、少し異なります。あなたが簡単にあなたがルートのような回帰エラーメトリックは手で二乗誤差(RMSE)または乗誤差(SSE)の合計を意味し計算することができます
このようなdatf <- as.data.frame(your_matix)
datf$difsq <- (datf$Real_Values - datf$Predicted_Values)^2
rss <- sum(datf$difsq)
機械学習にはかなり新しいので、検証方法についてはあまりよく分かりませんが、Real_Valuesは実際には既知の値であり、Predicted_Valuesは5倍交差検証に基づいて予測される値です。私のモデルがうまく実行されているかどうかを確認するための値があります。私は2つの他の予測モデルと同じフォーマットの2つのテーブルを持っているので、その方法にとって最適な方法はわかりません。これらのモデルのどれが最良のものかを示す測定! – user6336850
通常、RSSは線形モデルの比較に使用されます。私は多くのマシン学習経験はありませんが、おそらくこのリンクは[リンク](http://machinelearningmastery.com/compare-the-performance-of-machine-learning-algorithms-in-r/) – Nate
に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を個人的にお勧めします。
"エラー率"の意味を詳しく説明できますか?たとえば[MAPE](https://en.wikipedia.org/wiki/Mean_absolute_percentage_error)? – digEmAll