>

programming

leakageに注意!機械学習におけるパーティションとは?徹底解説します!

機械学習を勉強したい方「機械学習を勉強しているけど難しい。機械学習におけるパーティションって何?機械学習を勉強していてパーティションというキーワードが出てきたけど調べても分からない。」

こういった疑問に答えます。

本記事のテーマ

機械学習におけるパーティションとは?徹底解説します!

目次

  • パーティションとは?
  • 機械学習におけるパーティション
  • パーティションの重要性
  • パーティションの実例
  • まとめ

パーティションとは?

パーティションとは、データを分割する方法の総称のことを言います。データのパーティショニングには大きく2つの種類があり、一つが垂直方向のパーティショニング。もう一つが水平方向のパーティショニングです。

垂直方向(青)のパーティショニングはデータを列で分割することを表しています。特に機械学習などの領域では特徴量を管理して利用するケース場合に利用されることが多い手法です。
ただし、データのパーティションと聞くと一般的には水平方向のパーティショニングのことを指すことが多いので、一般的にパーティションという言葉を目にしたら水平方向のパーティションの事だと理解していいと思います。

水平方向(オレンジ)のパーティショニングはデータを行方向で分割することを表しています。機械学習ではデータを学習用、検証用、テスト用(Training, Validation, Test)に分けることが一般的であり、現場に利用できるような汎化性能が高いモデルを構築するためには正しいデータパーティショニングに基づいた検証(Validation)などが必要になります。
このように、過学習を防いで汎化性能の高いモデルを作成するには、データのパーティションは非常に重要になってくるため、しっかりと押さえてきましょう。

機械学習におけるパーティション

まず、上でも少し話しましたが、機械学習におけるパーティションで非常に重要な考え方は、データを学習用、検証用、テスト用(Training, Validation, Test)に分けることになります。これが最も一般的な方法であると言えます。

図では、仮テスト用としているところが検証用に当たります。

なぜ、このような分割が必要なのでしょうか?

仮に全てのデータを学習データにして予測モデルを作成した場合、学習データへの予測結果は良いが、実際に新しい未知のデータに対してどの程度の精度が出るのかを評価することができません。よって、過学習が起こってしまう可能性があります。

また、データセットを分割していく上では、leakageにも気を付けなければなりません。leakageについては、後ほど詳しく解説していますので、参考にしてみてください。

また、データを単純に学習用、検証用、テスト用(Training, Validation, Test)に分けること以外の方法として、交差検証という方法もあります。

交差検証に関しては、こちらに分かりやすく説明されているので参考にしてみてください。

パーティションの重要性

ここからは、パーティションの重要性という事について解説していきたいと思います。

  • 学習用・検証用・テスト用のデータ分割の選択
  • ランダム性のあるデータの作成
  • モデルの安定性を高めるための交差検証

先程も説明したように、パーティションはとても重要であり、特に上に書いたようなことに起因するleakageの問題がとても重要になります。

leakageは、しっかりと理解していないと悲惨な事になりかねないので、こちらの記事を参考にしてみてください。

パーティションの実例

画像に alt 属性が指定されていません。ファイル名: dataaugmentation.png

上の図のように、元画像100枚の画像に対して、回転、反転、ノイズなどのデータの水増し(Data Augmentation)を行うことにより、500枚に増やし、その後、シャッフルして訓練データ400枚、仮テストデータ50枚、テストデータ50枚にデータセットを分割しました。

データの水増しは、画像を増やしたと考えてください!

何が問題でしょうか?

画像に alt 属性が指定されていません。ファイル名: augmentation_leakage.png

訓練データにテストデータの一部が混入してしまう

これが問題ですね!1枚の画像から複数枚が生成されているので、画像全部を増やしてシャッフルしてから訓練用、仮テスト用、テスト用に分割してしまうと上の図からも分かるように訓練データの中に混入してしまう可能性があります。

このように機械学習におけるleakageは非常に大きな問題です。

機械学習におけるleakageの特性を理解することは、研究をしていく上で非常に重要になりますので、理解しておく必要があります。

パーティション、いわゆるデータの分割方法については、すごく重要なのでしっかりと押さえておきましょう。

具体的なパーティションの方法

引用:https://www.datarobot.com/jp/blog/summary-of-ml-partitioning-part-1/

パーティションの具体的な方法や選択については、こちらの記事の方で綺麗に解説されているのでぜひ参考にしていただけるといいと思います。

まとめ

  • パーティションとは?
  • 機械学習におけるパーティション
  • パーティションの重要性
  • パーティションの実例

今回の記事では、以上の項目について解説していきました!機械学習におけるパーティションについて理解して頂いて、leakageを防いで良い研究にしてくださいね。

関連コンテンツ

-programming
-