あるケミストの独り言(winchemwinの日記)

ケミスト(化学者)の視点で、面白そうな情報(シミュレーション関係など)を発信

機械学習による予測モデル作成(我が家の電気使用量 その2)

 前回までの記事で我が家の電気使用量について、sklearn のlinear modelでの予測モデルの作成について紹介しました。必ずしも目的変数と説明変数の設定が良いものではないので、linear modelでは良い結果は得られませんでした。

 それでは他のmodelではどうかということで、下記の記事を参考にsklearn で検討可能な回帰モデルを片っ端から検討してみました。

qiita.com

 

 まずは、記事を参考にライブラリーのインポートを行います。

実行したコード その1(ライブラリーのインポート)

 続いて、インポートしたモデルの条件設定です。実際はそれぞれのモデルで様々なハイパーパラメーターの設定ができるかと思いますが、今回は網羅的に行うため、上記記事を参考にごく一般的なものとしています。

 

実行したコード その2(モデルの条件設定)

 続いて、モデル検討条件の設定と学習用データの読み込みです。学習データの読み込みと前処理は前回までの検討と同様です。

実行したコード その3 (データの読み込み)

実行したコード その4 (データの前処理等)

 データの読み込み、前処理が終了したら、実行準備としてデータ格納用のリストを作成しておきます。

実行したコード その5 (格納用リストの作成)

 いよいよ実施モデル作成ですが、複数のトライアルを行うので、その部分をfor 文で作成しておきます。続いて、それぞれのモデルについて予め辞書型で設定しておいた条件を読み込み、モデル作成を行います(reg.fit)。得られたモデルの評価としてR2、MSE, RMSEを算出し、それぞれのリストに追加しています。

実行したコード その6(予測モデルの作成と関連数値の算出)

 続いて、算出したそれぞれのトライアルの数値の平均値を算出した上で、作成モデルの代表値としてリストに格納し、それぞれの結果を表示しています。

 

実行したコード その7 (関連数値の処理、表示)


 上記は休日データでのモデル作成でしたが、以下のコードで平日データも同様に処理しています。

実行したコード その8 (平日データの処理 その1)

実行したコード その9(平日データの処理 その2)

 以下が上記コードを実施した結果になります(休日)が、訓練データではR2値でそれなりの数値がでているものもありますが、テストデータでは使えそうなモデルと思えるデータは残念ながらありませんね(笑)。目的変数と説明変数の設定があまりよろしくないというところかと思います。

 

 以上、sklearn でのモデル作成の検討でした。