【過学習対策】k分割交差検証(k-fold Cross Validation)について解説します

データサイエンス
スポンサーリンク

スポンサーリンク

初めに

こんにちは。将棋と筋トレが好きな、情報系大学生のゆうき(@engieerblog_Yu)です。

今回は、一般的に過学習を避けるために用いられている、k分割交差検証についてまとめていきます。

交差検証とは?

交差検証では、訓練データを変えたモデルを何個も作り、それらを平均化したモデルを作成します。

交差検証の目的は、過学習を避けるためです。

交差検証の概観は以下のようになります。

①全データの中から、テスト用データを10%ランダムに抽出する

②残りのデータから検証データを抽出する

③検証データを差し引いたものを訓練データとし、k個に分割する

④それぞれに回帰アルゴリズムを適用してモデルをk個作成する

⑤k個のモデルを平均化して予測モデルを構築する

⑥予測モデルの性能をテストデータで確認する

ざっくりまとめると以下のような図になります。

③~⑤について、よく分かりにくいと思うのでより具体的に解説していきます。

交差検証は過学習を避けるために用いられる

訓練データをk分割してモデルを平均化する

テスト用のデータをランダムに抽出して、残ったデータを訓練用と検証用データに分けます。

k分割交差検証法では、検証用データを除いた訓練用データをk分割して、それぞれのデータを使ってモデルをk個作成します。

検証用のデータは、回帰アルゴリズムを用いる際の、ハイパーパラメータの調整に使われます。

訓練データのセットがk個あるわけなので、学習済みモデルもk個出来上がります。

それらのk個の学習済みモデルを平均化したものを予測モデルとします。

k分割交差検証全体を図で表したもの

k分割交差検証を図で表したものは以下のようになります。

全データからテストデータを抽出して、残ったデータからk個のモデルを作成し、それらを平均化したものをモデルとします。

適切に分割数kを大きくすると、モデルの精度は良くなる傾向があります。

補足

データセットが大きい場合、テスト用データと検証用データを少なくして、訓練用データを70%より大きくするというようなこともあるようです。

まとめ

k分割交差検証は過学習を避けるために用いられ、以下の流れで実装される

①全データの中から、テスト用データを10%ランダムに抽出する

②残りのデータから検証データを抽出する

③検証データを差し引いたものを訓練データとし、k個に分割する

④それぞれに回帰アルゴリズムを適用してモデルをk個作成する

⑤k個のモデルを平均化して予測モデルを構築する

⑥予測モデルの性能をテストデータで確認する

今回は、過学習対策に用いられるk分割交差検証についてまとめました。

機械学習、ディープラーニングを学びたい方におすすめの入門書籍です。

ディープラーニングの理論が分かりやすくまとめられていて、力を身につけたい方におすすめです。

ゆうき
ゆうき

最後まで読んでいただきありがとうございました。

ねこすけ
ねこすけ

他にもおすすめ記事があるにゃ。

コメント

タイトルとURLをコピーしました