Phase 2: Model Development

このプロジェクトのフェーズ1では、RainTomorrow変数を予測する上で有意な変数について研究しました。 欠損データをインプットし、相関を確認した後、我々は8つの変数が最も有意な予測因子であると判断しました。 湿度9時、湿度3時、雲9時、雲3時、WindGustSpeed、気温3時、湿度差、気温差である。 応答変数であるRainTomorrowをリストに含め、新しいデータセットを作成しました。

そして、データの70%をトレーニングセット、30%をテストセットとして、データセットを分割しました。 そして、分類木、ランダムフォレスト、ニューラルネットワークの3種類のモデル構築技術を使用して、どれが最も正確かを判断しました。 また、ランダム フォレスト モデルとニューラルネットワーク モデルにおける、選択した変数の重要性についても調査しました。 しかし、ニューラルネットワークは温度差をより重要視しており、湿度の重要度はモデル内でかなり低くなっています。 両方のモデルで、雲量は重要な意味を持つようですが、突風速度は中程度に低いようです。

分類木

最初の分類木は、どの値が最適かを調べるために、複雑さのパラメータを指定せずに構築されました。 このツリーの最適なcp値は約0.221となり、それを使って新しいツリーを構築しました。

Prediction RainTomorrow used a pruned classification tree

学習セットでのRainTomorrow予測結果は約0.828精度となりました。 ナイーブモデルの精度0.78と比較し、p値がほぼ0であることを考慮すると、このモデルは良質なモデルであるように見えた。 次に、テストデータセットで予測を行ったところ、約0.824の精度となりました。

ランダムフォレスト

分類木の手法を改良し、10k-foldクロスバリデーションと50本の木でランダムフォレストを構築しました。 このランダムフォレストで学習セットの予測を展開すると、精度は0.9991となり、ほぼ100%となりました。 p値はほぼ0と理想的な値ですが、我々のモデルがほぼ完璧な予測を行ったという事実は、懸念を抱かせるものです。 現実の世界では、完璧な精度のモデルは存在しないのです。 次に、テストセットで予測テストを行ったところ、精度は0.84に留まり、p値も同様に有意でした。 これは、ランダム フォレストがトレーニング セットに過剰に適合しており、将来の予測のための強力なモデルではないことを示しています。

Prediction RainTomorrow with a random forest model

The Neural Network

最後のモデルは、ニューラルネットワークを作成しました。 今回も10k-foldクロスバリデーションを用いて、パラメータを指定した基本モデルと最適ネットワークの2つのネットワークを開発しました。 基本ネットワークは、サイズを12、減衰を0.1として作成しました。 基本モデルでトレーニングセットの予測を行ったところ、約0.841の精度を示し、テストセットの予測は約0.844であった。

次に、RStudioに1~12までの最適なサイズと0.1~0.5までの減衰を探索させた。

Searching for the optimal network size and decay rate

Test Setで再度予測を構築すると、0.843程度の精度となることが判明した。8401、テストセットで予測すると約0.8431の精度となり、それぞれ有意なp値が0.8673付近となった

ニューラルネットワークを使って明日の雨量を予測する

コメントを残す

メールアドレスが公開されることはありません。