🕌

前処理って結局なんなの?

2024/06/05に公開

前処理の概要

機械学習を行う場合は、分析の材料となるデータが必要になります。
入手できるデータは、正しい形でそろっていないことが大半です。

学習データは最終的にはExcelのような表形式になりますが、原初のデータが初めからそういう形式になっていることはほとんどありません。
つまり、未構造化データや形式が不統一なデータや、値として欠損値や外れ値を含むものがあります。

このような場合は、AI(モデル)が学習しやすいようにデータを加工する必要があります。
この工程を前処理と言います。

具体的にどんなことが前処理か

以下のような処理が前処理に相当します。

データの探索

  • 前処理の一環として、データの基本的な統計量や分布、相関関係を調査する
    • ※ データの特性を理解し、適切な前処理手法を選択するための作業だが、これも前処理の範疇という見解もある

欠損値の補完

  • 欠損値を平均値、中央値、または他の適切な値で補完する

外れ値・異常値を除去

  • 異常値やノイズを除去してデータの品質を向上させる
    • 外れ値を除去する
    • 外れ値を修正する
    • 外れ値を分けて処理する

データの集約

  • 特定のカテゴリや条件でデータをグループ化し、集計する

スケーリング処理

  • データの標準化や正規化を行い、特徴量のスケールを揃える

データフレームを変換する

  • 不要な列を削除する
  • 複数行を1行にまとめてデータを集約する
  • 複数の列を1列にまとめる

特徴量エンジニアリング

  • 新しい特徴量を作成する
  • 既存の特徴量を変換する(例:ポリノミアル特徴量の作成、交互作用項の追加)

カテゴリ変数のエンコーディング

  • カテゴリカルデータを数値データに変換する(例:ワンホットエンコーディング、ラベルエンコーディング)

テキストデータの処理

  • テキストデータをトークン化したり、ベクトル化する(例:TF-IDF、ワードエンベディング)

日時データの処理

  • 日付や時刻のデータを扱いやすい形式に変換する(例:年、月、曜日、時間帯などの抽出)

前処理ではないもの

以下は前処理には含まれません。
(自分は以前、これらを前処理と勘違いしていました)

データのアンダーサンプリング

  • クラス不均衡を解消するために、データの一部を削減する工程
    • データのバランスを取るための手法であり、前処理とは区別されることが多い

学習用データの準備

  • 説明変数と目的変数を分割することは、モデルの訓練を行うために必要な手順
  • 訓練データとテストデータを分割することは、モデルの性能を評価するために必要な手順

Discussion