[前回] AWS公式資料で挑むMLS認定(14)-データラベリング(データ準備)
はじめに
今回は、データ前処理の基礎知識です。
機械学習はデータ前処理が8割
、と言われるほどですので。
機械学習ワークフローにおける、データ前処理の位置づけ
- 1. データ準備
- 2. データ前処理
- 3. モデルトレーニング(学習)
- 4. モデルテスト(評価)
- 5. モデルチューニング(改善)
データ前処理とは
- 事前に得られた生のデータを機械学習アルゴリズムに与える前に、何かしら加工を行うこと
- 生のデータを、構造や関係性がつかみやすく、かつ機械学習アルゴリズムが学習しやすくなるように形を整える
生のデータの特徴
- データの型が揃っていない
- データのフォーマットが揃っていない
- 重複データが削除されていない
- データ入力が徹底されず欠損が存在する
- 共有キーがないため、他システムのデータと連携できない
データ前処理の必要性
- 入手したデータは、大抵欠損、ノイズ、エラー値などが存在
- データ欠損を適切な値で埋めたり
- 好ましくないデータ値を取り除く必要あり
- 生のデータそのままでは、データの内部構造や関係性を表せない
- 最大限にデータ活用するには、統計的処理を施す必要あり
- 機械学習アルゴリズムによって、データフォーマットとの相性が異なる
- ニューラルネットワークで使用する画像サイズは固定なので、画像のリサイズが必要
- ランダムフォレストは欠損値をそのまま扱えないので補完が必要
データ前処理のタスク
- データクレンジング(データクリーニング)
- データから、入力ミス/文字化け/欠落/不要データを特定し、一定基準でデータを修正すること
- データ統合
- 異なるタイプのデータ、複数システムにまたがって存在するデータを結びつけること
いずれも、目的は機械学習の精度を高めること。
データ前処理方法
欠損値処理
- 欠損値とは、何らかの理由で記載されず、欠落した値
- 欠損値が多いデータ項目から、全体の分布や平均値など特徴の調査分析は困難
- 欠損値の発生原因
- 入力の際、必須項目でなかったので
- 担当者のミスで未入力になっている
- 欠損値の対処
- 欠損値の割合や分析の目的などによって補完か除外かを判断
- 欠損値を含むデータを除外したら、学習に必要なデータ量が確保できない場合
- 平均値や最頻値などで補完
- 欠損値を除外しても分析結果に大きな影響を与えない場合
- 欠損値が含まれる行ごとまたは列ごと除外
- 欠損値の割合が高い行や列があるデータ
- 情報量が少なく分析に耐えられないので除外
- 欠損値を含むデータを除外したら、学習に必要なデータ量が確保できない場合
- 欠損値の割合や分析の目的などによって補完か除外かを判断
外れ値処理
- 外れ値とは、他の多くの値から大きく外れている値
- 外れ値が残ったまま学習データとして使用すると、全体の結果がゆがんでしまう
- 極端に大きな値や小さな値を学習データに含めると、結果が外れ値に引っ張られてしまう
- データの分布から外れ値の有無を確認
- データをヒストグラムや箱ひげ図などにしてチェック
- 外れ値の発生原因
- データ入力の誤り
- 値そのものは正しいが、偶然外れが生じた
- 外れ値の対処法
- 発生原因が、入力ミスやシステムエラーなどと判明した場合
- 正しい値に修正
- 発生原因不明、または外れ具合が大きい場合
- データを行ごと除外
- 発生原因判明し、かつ分析結果に大きな影響がない場合
- そのまま使用
- 発生原因が、入力ミスやシステムエラーなどと判明した場合
ダミー変数化
- ダミー変数とは、
ある状態であるか否か
を0/1
で表すもの- ダミー変数化によって数字ではないデータを数字に変換して扱える
- 質的データからダミー変数への変換例
- 男性:
1
、女性:0
- 男性:
多重共線性問題の回避
- 多重共線性問題とは
- 関連性が高い変数を同時にモデルに組み込むと、正しい結果が得られないこと
- 確認方法
- データ間の相関係数が大きい場合、多重共線性が疑われる
- 対処法
- 関連性が高い変数が2つある場合は、どちらかを除外してから使用
おわりに
信頼できるMLモデル生成には、データ前処理が欠かせない。
データ前処理、奥深いですね。
次回も続きます。お楽しみに。