【機械学習の知識】データクレンジングの基本手順
機械学習モデルにどれだけ優れたアルゴリズムを使っても、入力するデータが汚れていては正しい予測結果は得られません。「ゴミを入れたらゴミが出てくる(Garbage In, Garbage Out)」を防ぐために、データを綺麗に整える必須のプロセスがデータクレンジングです。
1. 【 概要 】
データクレンジングとは、収集された生データの中に含まれる「欠損値(空欄)」「重複」「異常値(外れ値)」「表記ゆれ」などの不完全な部分を特定し、削除や修正を行う一連の処理です。機械学習の前処理において最も時間がかかり、かつモデルの精度を大きく左右する重要なプロセスです。
2. 【 基本手順 】
(2) 重複している不要なデータを削除する
(3) 異常値(外れ値)を検出して修正または削除する
(4) 単位や日付などのデータ形式を統一する
(5) 矛盾している不整合データを修正する
3. 整理:各ステップの具体的な処理内容
データクレンジングの具体的なアプローチと処理のポイントを、ステップごとに深く見ていきましょう。
【 各プロセスの具体的な処理内容 】
データが存在しない空欄(欠損値)への対応は、大きく分けて3つあります。
1.1 削除:欠損値を含む行や列をまるごと消去する最もシンプルな方法です。
1.2 代表値で埋める:全体の「平均値」や「中央値」、カテゴリデータであれば最も頻出する「最頻値」で空欄を補填します。
1.3 予測補完:他の正常なデータをもとに、機械学習モデルなどを使って欠損している値を予測して埋める高度な手法です。
・ステップ(2):重複データの削除
システムの不具合などで全く同じデータが複数回登録されてしまっている場合、モデルがそのデータを過剰に重視してしまう原因になります。一意な1件だけを残して重複を排除します。
・ステップ(3):異常値の検出と修正
「年齢が150歳」「価格がマイナス」といった、現実的にあり得ない数値や、統計的に他から大きく外れた「外れ値」を検出します。これらは入力ミスであることが多いため、正しい値に修正するか、ノイズとして削除します。
・ステップ(4):データ形式の統一
同じ「日付」でも「2026/06/27」と「2026年6月27日」が混在していると、コンピュータは別物と判断してしまいます。文字列の形式や数値の単位(円と千円など)を1つのフォーマットに一元化します。
・ステップ(5):不整合データの修正
「ステータスは『退会済み』なのに、最終ログイン日が本日になっている」といった、データ間の矛盾(不整合)をチェックし、業務ルールや前後の文脈に合わせて正しい状態へと書き換えます。
4. 関連して押さえたい「データクレンジングと特徴量エンジニアリングの違い」
データ分析の現場では、「データクレンジング」と「特徴量エンジニアリング(特徴量生成)」という言葉がよく並んで登場しますが、これらは目的が異なります。
データクレンジングは、データに含まれるマイナス要素(間違い、汚れ、ノイズ)を取り除き、データを「マイナスからゼロ(正常な状態)」に戻す作業を指します。
一方で特徴量エンジニアリングは、正常になったデータ同士を掛け合わせたり加工したりして、AIが学習しやすい新しい項目を作り出す「ゼロからプラス(価値の向上)」にする作業です。強力な特徴量を作るためにも、まずは土台となるデータクレンジングが完璧に行われている必要があります。
5. 補足:Python(Pandas)での代表的なクレンジング関数
実際の機械学習開発(Python)で、データクレンジングを行う際によく使われる有名なPandasの関数をまとめました。
実務コードを読む際のカンペとしてお役立てください。
df.dropna() # 欠損値を削除する
df.fillna(値) # 欠損値を指定した値(平均値など)で埋める
# 2. 重複データの処理
df.duplicated() # 重複しているデータを見つける
df.drop_duplicates() # 重複した行を削除する
# 3. データ形式の統一
pd.to_datetime(df['日付']) # 文字列を日付型に一括変換する
6. まとめ
データサイエンスや機械学習の現場において、モデルのポテンシャルを最大限に引き出すための最重要項目が、この「データクレンジング」です。欠損値処理(削除・代表値補填・予測補完)、重複削除、異常値修正、形式統一、不整合修正という5つの基本手順を徹底し、AIがスムーズに学習できる『綺麗で誠実なデータ』を用意できるようになりましょう!