Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

UCI Machine Learning Repository の Wine Quality のデータの分析5 - lm()関数でクオリティを推測する

www.crosshyou.info

の続きです。今回はいよいよ本丸のワインのクオリティを予測してみましょう。

まずはlm()関数で線形モデルをOLSで推計します。

citric_acid以外の変数は全て、有意な変数ですね。R2が0.3なのでそれほど正確な値を予測するモデルではないかもしれません。テスト用のデータで予測してみます。

qualityは整数の値しかとりませんから、round()関数で四捨五入しています。

実際の値と比べてみます。

予測値は、4から8までの値ですが、実際は3から9までの値ですね。

正しく予測できたのは、4は2個、5は312個、6は667個、7は71個、8は0個でした。

正解率を計算します。

正解率は53.9%でした。次回は他のモデルでもっと高い正解率を目指しましょう。目標は80%以上かな?

今回は以上です。

次回は

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# Linear ModelをOLSで推測
lm_mod <- lm(quality ~ ., data = df[idx, ])
summary(lm_mod)
#
# テスト用のデータで予測
lm_pred <- predict(lm_mod, newdata = df[-idx, ]) |>
  round()
head(lm_pred)
#
# 実際の値との比較
table(lm_pred, df$quality[-idx])
#
# 正解率
(2 + 312 + 667 + 71 + 0) / nrow(df[-idx, ])
#

 

(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは Landscape photograph, blue sky, close up of wild red rose flowers, green grass field です。