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

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

UCI の Automobile のデータの分析8- R の nnet パッケージでニューラルネット、mgcv パッケージで Generalized Additive Model で判別

Bing Image Creator で生成: Star night and moon, photo

www.crosshyou.info

の続きです。

今回は、 nnet パッケージでニューラルネットで判別してみます。

まず、nnet パッケージを読み込みます。

モデルをフィットします。

予測します。

結果をみてみましょう。

正解率を計算します。

32.8% でした。あまり良い正解率ではないですね。

続いて、mgcv パッケージで Generalized Additive Model で判別してみます。

まず、mgcv パッケージを読み込みます。

モデルをフィットします。gam() 関数を使います

使った説明変数は、lm_mod2 で使われていた説明変数のうち、数値型の変数だけにしました。

予測します。

結果をみてみます。

正解率は 34% でした。

今回は以上です。

初めから読むには、

www.crosshyou.info

です。

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

#
# 予測方法8: ニューラルネットによる判別
#
# nnet パッケージを読み込む
library(nnet)
#
# モデルをフィット
nnet_mod <- nnet(symboling ~ .,
                 size = 3,
                 decay = 0.1,
                 linout = TRUE,
                 data = df_train)
#
# 予測
yosoku_nnet <- predict(nnet_mod, newdata = df_test) |> round(0)
#
# 結果
table(yosoku_nnet, df_test$symboling)
#
# 正解率
accu_nnet <- (1 + 1 + 18 + 1) / 64
accu_nnet
#
# 予測方法9: Generalized Additive Model
#
# mgcv パッケージを読み込む
library(mgcv)
#
# モデルをフィット
gam_mod <- gam(symboling ~ s(normalized_losses) + s(wheel_base) +
                 s(width) + s(height) + s(compression_ratio) +
                 s(city_mpg) + s(highway_mpg),
               method = "REML",
               data = df_train)
#
# 予測
yosoku_gam <- predict(gam_mod, newdata = df_test) |> 
  round(0)
#
# 結果
table(yosoku_gam, df_test$symboling)
#
# 正解率
accu_gam <- (6 + 7 + 11 + 4 + 1) / 64
accu_gam
#