ここでは機械学習の流れについて考えてみる。
概ね以下のような流れになることが多いのではないかと考える。
1.ビジネス目標の整理
そもそも機械学習を行なって、どのようなビジネス価値を生み出したいかが整理できないと評価も出来ない。
2.必要なデータの収集
データ収集の方法は色々ある。例を以下に示す。
- オープンデータの活用
- APIの活用
- データの購買
- インターネットのスクレイピング
- 目視調査やヒアリング
- システムのログを活用したユーザ行動履歴データの収集
ビジネス目的や目標に応じたデータ収集を行っておくことが重要。
収集するデータ傾向に偏りがあると間違った分析結果を出してしまう可能性があることには注意が必要。
3.データの前処理
2の生データは望まない形になっていることもしばしばある。
そのため、データクレンジングや前処理して整理しておく必要がある。
望まない情報とは、例えば以下のようなものである。
- 今回の機械学習で分析する内容とは直接関係しない不要データを削除する。
- 多岐にわたる収集データ間のフォーマットの不一致。表記揺れなどの一貫性のないデータ構造等を統一する。
- 一部の異常値データ、欠損データを除去したり、補完したりする。
- 正しい形式で値が入っていないゴミデータを除去する。
- 機械学習で活用するには不向きな文字データ。文字データは必要に応じてダミー化を行う。
- 個人情報等、そのまま扱うと問題になりうるデータについて匿名処理を施す。
- 各特徴量の影響度合いを合わせるため、正規化や標準化を行い、スケールを合わせる。
※正規化は最大値・最小値が明確な場合、外れ値が存在しない場合に良いとされる。計算式はこちら参照。
※標準化はデータの分布が正規分布に寄っている場合や、最大値・最小値がはっきりしない、外れ値が存在する場合に良いとされる。計算式はこちら参照。
4.トレーニングデータ、テストデータの準備
学習を行うにはしかるべきデータの準備が必要となる。
いくつか手法を記載する。
◾️ホールドアウト法
「モデルを作る訓練用データ」と「モデルを評価するテスト用データ」を分けて準備する手法のこと。
◾️交差検証法(クロスバリデーション)
1.データセットを複数に分ける。
2.一部を「テスト用データ」に、残りを「学習用データ」に分ける。
3.モデルを学習用データで訓練し、テスト用データで評価する。
4.1で分けた全ての部分がテスト用データとして使用されるまで「交差」させて繰り返す。
4分割にした場合のイメージ
1 |
2 |
3 |
4 |
テスト用データ |
訓練用データ |
訓練用データ |
テスト用データ |
訓練用データ |
訓練用データ |
テスト用データ |
訓練用データ |
訓練用データ |
テスト用データ |
5.モデル構築と学習
モデル構築と学習の仕方には色々ある。
機械学習の種類も参考にしつつ、解きたい課題に合いそうな方法を考える必要がある。主な流れには以下のようなものがある。
5-1.過去データから特徴量の抽出
5-2.モデル設計の検討や機械学習アルゴリズムの検討
- モデルを考える上では確率統計の話も知っておくと良い。
- ニューラルネットワークの隠れ層の数や、決定木の深さ等、
モデルやアルゴリズムに応じて調整が必要なハイパーパラメータの検討も行う。
5-3.モデルの構築
5-4.学習の実施
- 「実データとモデルについて、何を差分とするか」については誤差関数(損失関数)で定義する。
誤差関数には最小二乗法や交差エントロピー誤差等いくつか種類が存在する。
- 誤差関数を最小にすることで、より最適なモデルを生み出していく。
誤差関数を最小にするための手法はいくつかあり、勾配降下法やEMアルゴリズム等が挙げられる。
6.モデルの評価と精度向上
6-1.モデルの評価
6-2.モデルのチューニング
◾️アンダーフィッティングの場合の対処例
- モデルがデータの性質をうまく捉えられていない可能性があるため、モデルの見直しを検討する
- 特徴量を増やす等の検討を行う(ただし、次元が増えることで学習時間が増える点等は注意)
- 訓練量が足りなくて、学習用データの予測すらうまくいっていない可能性がある。
学習データを増やす等の検討を行う。
◾️オーバフィッティングの場合の対処例
- 特徴とする要素を減らしたり(ドロップアウト)
- 正則化(L1正則化のLasse回帰やL2正則化のRidge回帰等)
- これまで学習したデータとは違う傾向のデータを増やし、データの多様性を上げる等の検討を行う。
最終更新:2025年07月11日 20:46