結論
データ前処理は「データをモデルが理解しやすいように整える」こと、特徴量エンジニアリングは「モデルの性能が向上するようにデータを改良する」こと。
データ前処理とは
データ前処理とは、モデルにデータを学習させる際にデータを「学習しやすいように整える」こと。
機械学習でデータを扱う際、最初から完璧に整ったものがそろっていることは少ないです。多くのデータには欠損値があり、データの形式が異なることもあります。
そういったデータをそのまま学習させてもエラーが発生したり、正しく予測ができなかったりすることが考えられます。
そこで、訓練データの前処理を行います。
具体的な処理として、以下のようなものが挙げられます。
- 欠損値の削除、補完(欠損値を含む行や列を削除したり、平均値や中央値などで補完する)
- データ形式の変換(One-Hot EncodingやLabel Encodingなど)
- データの標準化
これらを行うことで、モデルがデータを学習するのを助けます。
特徴量エンジニアリングとは
一方で特徴量エンジニアリングとは、データから新しい特徴を作り出したり、既存の特徴量(説明変数)を変換させることでモデルの性能を向上させるプロセスである。
具体的な処理として、以下のようなものが挙げられます。
- 新たな情報の抽出(日時データから曜日データを追加)
- 数値データのビン分割(1~10, 11~20のように、数値をグループ分けする)
- 特徴量の変換(対数変換や平方根変換など)
- 特徴量の統合、分割(日時データを月と日、時間の3つに分割する)
これらを行うと、データからより目的に沿った情報が引き出され、モデルがより高精度で予測を行うことに繋がります。
まとめ
以上のように、データ前処理と特徴量エンジニアリングは異なる目的で行われます。
ただし、One-Hot Encodingのようなデータ変換の処理はどちらの目的でも用いられることがあります。そういった意味では、それぞれの処理がこの2つのどちらかに明確に分けられるわけではなく、あくまでこれら2つは目的が違うだけとも言えます。
(間違いや誤解を生む点などあれば知らせていただけると幸いです。)