データクリーニング(データクレンジング)
データクリーニングを行わなければ、データ分析の方法そのものに多くの誤りが生じ、意思決定に時間がかかるだけでなく、結果として偽陽性や誤った結論を導く危険性が高まる。特にAIや機械学習では、データの質がモデル性能をほぼ決定づけるため、データクリーニング(データクレンジング)は不可欠な工程である。
データクリーニングとは、無関係なデータや不正確なデータを削除・修正し、分析やAI学習に適した状態にデータを整えるプロセスである。
不正確なデータは、誤った概念を強化し、モデルやアルゴリズムに悪影響を与える可能性がある。そのためデータクリーニングでは、単に不要なデータを削除するだけでなく、以下のような作業を含む。
- 重複データの削除
- 欠損値の補完または削除
- 不正確な値や表記揺れの修正
- トレーニング・検証・テストデータに含まれる誤情報の是正
欠損値
本来存在するはずのデータが記録されていない状態
欠損値があると、
- 平均や分散などの統計量が正しく計算できない
- 機械学習モデルの学習精度が低下する
- エラーや予期しない挙動の原因になる
そのため、データ分析や機械学習では、
補完・削除・別カテゴリとして扱うなどの前処理が必要になる。
データクリーニングは、AIや分析の前処理として必ず実施されるべき工程である。
AIにデータクリーニングが重要な理由
AIにおいてデータクリーニングが重要な理由は、精度と品質管理を確保するためである。分析に使用するデータセットが汚れていれば、不正確な結果が得られ、その修正に時間とコストがかかる。
例えば、製品改善の判断材料として営業実績データを用いる場合、データ品質が低ければ誤った判断を下す可能性がある。これはAIの予測結果にも直結する問題である。
データクリーニングを行わない場合、以下のようなリスクが生じる。
- 分析結果の信頼性低下
- 意思決定の遅延
- 不正確な予測によるコスト増大
一方で、適切なデータクリーニングを行えば、分析効率が向上し、迅速かつ正確な意思決定が可能となる。
特に医療や科学分野など、不正確な予測が深刻な結果を招く業界では、データクリーニングは必須である。
高品質なデータの5つの特徴
データ品質は、主に以下の5つの観点から評価される。
- 妥当性
- 正確性
- 完全性
- 一貫性
- 均一性
妥当性
妥当性とは、データが定義されたルールや制約を満たしているかどうかを指す。例えば、データ型制約、範囲制約、一意制約、外部キー制約、クロスフィールドバリデーションなどが該当する。
正確性
正確性とは、データが現実的かつ事実に即しているかを示す指標である。郵便番号と住所の整合性や、現実的に存在し得ない数値の除外などがこれに該当する。
完全性
完全性とは、必要なデータが欠けていない状態を指す。欠損値が多いデータは分析精度を大きく下げるため、制約設定や補完処理が重要となる。
一貫性
一貫性とは、複数のデータソースやフィールド間で矛盾がない状態を指す。同一人物が複数のアンケートやシステムで同じ情報を持っているかの確認などが例である。
均一性
均一性とは、データが一貫したルールと精度で収集・管理されている状態である。均一性が確保されていないと、比較や分析が困難になる。
AIデータクリーニングの方法
ステップ1:重複データと無関係データの削除
複数のソースからデータを統合する場合、重複データは頻繁に発生する。これらは分析結果を歪めるため、必ず削除する必要がある。また、目的に関係のないデータも除外することで分析効率が向上する。
ステップ2:外れ値のフィルタリング
外れ値とは、他のデータポイントから大きく逸脱した値である。明らかな入力ミスである場合は削除すべきだが、理論を裏付ける重要なデータである可能性もあるため、文脈に応じた判断が必要である。
ステップ3:構造的エラーの修正
命名規則の不統一、タイプミス、大文字小文字の違いなどは、カテゴリ分割や集計に悪影響を与える。例えば「N/A」と「Not Applicable」は同一カテゴリとして統一すべきである。
ステップ4:欠損データの補完
多くのアルゴリズムは欠損値を扱えないため、削除または補完が必要となる。平均値補完や他データからの推定など、状況に応じた方法を選択する。
ステップ5:データの検証
最終的に、以下の観点からデータを検証する。
- データは論理的に整合しているか
- カテゴリやルールに従っているか
- 仮説を正しく検証できる状態か
データクレンジングとの関係
データクレンジングとは、重複、記載ミス、表記揺れなどを検出・修正し、データ品質を高める取り組みである。実務上はデータクリーニングとほぼ同義で使われることが多い。
ただし、名寄せはデータクレンジングとは異なり、複数データベースに存在する同一人物・同一企業のデータを統合する作業を指す。一般的には、データクレンジングを行った上で名寄せを実施する。
欠損値・外れ値の処理とは何か
機械学習やデータ分析において、モデル構築以前に必ず向き合うべき工程が欠損値・外れ値の処理である。本工程は一般に「データの前処理」と呼ばれ、分析結果や予測精度を大きく左右する重要なステップだ。
本記事では、欠損値・外れ値・異常値の基本的な定義から、それらが分析に与える影響、実務でよく使われる対処法までを体系的に整理する。あわせて、Pythonによる具体例も交えながら、なぜ前処理が重要なのかを解説する。
欠損値・外れ値・異常値とは
欠損値(Missing Value)
欠損値とは、本来得られるはずだったデータが得られていない状態を指す。
例としては以下が挙げられる。
- アンケートの未回答
- センサー故障による測定失敗
- データ取得・保存時の欠落
多くの機械学習アルゴリズムは欠損値をそのまま扱えないため、何らかの処理が必要となる。
外れ値(Outlier)
外れ値とは、他の値から大きく離れたデータのことである。
例:
- 年齢データの中に「200歳」が含まれる
- 売上データの中に極端に大きな値がある
外れ値は必ずしも誤りとは限らず、実際に発生した極端な事象である可能性もある点に注意が必要だ。
異常値(Anomalous Value)
異常値とは、外れ値の中でも、その原因が明確に誤りだと分かるものを指す。
例えば、
- 年齢(数値データ)に文字列が混入している
- 本来0以上であるべき値が負の数になっている
といったケースは、明らかな入力ミスや記録ミスであり、異常値と判断できる。
欠損値・外れ値・異常値が発生する原因
これらの問題が発生する主な原因は以下のとおりである。
- 測定ミス・計測エラー
- データ入力時のヒューマンエラー
- システム障害や通信エラー
- データ統合時の不整合
実務では、こうした問題が混在したデータを扱うことがほとんどである。
なぜ欠損値・外れ値を処理する必要があるのか
欠損値や外れ値を放置すると、以下のようなデメリットが生じる。
- 平均や分散などの基本統計量を正しく算出できない
- 欠損除去により分析結果が偏る
- 学習に使えるデータ数が減り、モデル精度が低下する
これらを防ぐため、欠損値・外れ値・異常値の適切な処理が不可欠となる。
ロバストな分析手法という考え方
ロバスト(robust)とは、欠損値や外れ値の影響を受けにくい性質を指す。
例えば、
- 線形回帰などの線形モデルは外れ値の影響を受けやすい
- 決定木やランダムフォレストなどのツリーベースモデルは比較的影響を受けにくい
このため、ツリーベースの手法はロバストな分析手法であると言える。
欠損値への対応方法
行・列ごと削除
欠損値を含む行または列を丸ごと削除する方法。
実装が簡単で安全ではあるが、重要な情報を失うリスクが高いため注意が必要。
補完(Imputation)
欠損値を平均値・中央値・最頻値などで埋める方法。
欠損が少ない場合には、実務でも非常によく使われる手法である。
補完+欠損フラグ
欠損を補完したうえで、「欠損があったかどうか」を示すフラグ列を追加する方法。
欠損自体に意味がある場合、この手法は特に効果的である。
外れ値・異常値への対応方法
外れ値には明確な正解がなく、目的やデータ特性に応じた判断が必要である。
主な方法は以下のとおりだ。
- 明らかな誤りは削除する
- 上限・下限を設けてクリッピングする
- 対数変換などでスケールを変換する
- カテゴリ化して特徴量として扱う
- 外れ値に強いモデルを使う
重要なのは、外れ値=悪ではないという認識を持つことである。外れ値は時に、重要なビジネス上のシグナルとなる。
特徴量スケーリング(標準化・正規化)
機械学習において、モデル構築以前に重要となる前処理の一つが特徴量スケーリングである。特徴量スケーリングとは、各特徴量の値のスケール(大きさや単位)を揃える処理のことを指す。
特に以下のような場面で重要となる。
- 特徴量ごとに単位が異なる場合
- 値のオーダーが極端に異なる場合
- 勾配降下法を用いるモデルを使用する場合
実務では、特徴量ごとに単位や値の範囲が大きく異なることが多い。例えば、年齢(0〜100)と年収(数百万円〜数千万円)を同時に扱う場合、スケーリングを行わないと、モデルは年収の影響を過度に重視してしまう可能性がある。
代表的なスケーリング手法として、標準化と正規化が挙げられる。
標準化(Standardization)とは
**標準化(Standardization)**とは、データの平均を0、標準偏差を1に変換するスケーリング手法である。
ここで、μは平均、σ は標準偏差を表す。
正規化(Normalization)とは
正規化とは、データの最小値を0、最大値を1に変換するスケーリング手法である
標準化と正規化の使い分け
両者は似た処理に見えるが、適した利用シーンは異なる。
標準化を用いる場合
- 最大値・最小値が事前に決まっていない場合
- 外れ値が存在する場合
- 線形回帰やロジスティック回帰などのモデルを使う場合
正規化は外れ値の影響を強く受けるため、一般的な機械学習タスクでは標準化が選ばれることが多い。
正規化を用いる場合
- 最大値・最小値が明確に決まっている場合
- 画像処理(RGB値など)を扱う場合
- 学習コストを下げたい場合
標準化と正規化については以下にもまとめてる。
なぜ特徴量スケーリングが必要なのか
線形回帰やニューラルネットワークでは、各特徴量の値に基づいて重みが更新される。そのため、特徴量間で値のスケールが大きく異なると、
- 重み更新が不安定になる
- 収束が遅くなる
- 特定の特徴量だけが過剰に重視される
といった問題が生じる。
標準化や正規化を行うことで、特徴量の影響度を均等に扱えるようになり、学習が安定する。
特徴量スケーリングが不要な手法
すべてのモデルでスケーリングが必要なわけではない。
例えば、
- 決定木
- ランダムフォレスト
- 勾配ブースティング木
といったツリーベースの手法では、特徴量の大小関係(順位)のみを利用して分岐を行う。そのため、特徴量のスケールに依存せず、スケーリングを行っても精度はほとんど変わらない。
機械学習における特徴量選択(Feature Selection)の3つの代表的手法
機械学習モデルの精度を上げる上で重要なプロセスの一つに**特徴量選択(Feature Selection)**があります。本記事では、特徴量とは何かから始め、代表的な特徴量選択の手法である Filter法 / Wrapper法 / Embedded法 を解説します。
特徴量とは何か?
機械学習における特徴量(Feature)とは、モデルに入力するデータの中で、予測や分類に役立つと考えられる測定可能な特性のことです。
例1: 物件条件から家賃を予測
| 専有面積 | 築年数 | 最寄駅 | 家賃 |
|---|---|---|---|
| 50 | 10 | 駅A | 12万 |
| 30 | 20 | 駅B | 8万 |
この場合、専有面積・築年数・最寄駅が特徴量で、家賃が予測対象(目的変数)です。
特徴量選択(Feature Selection)とは?
特徴量選択とは、目的変数の予測により強く関連する特徴量のみを選び、学習に使うことを指します。
特徴量選択を行う理由:
-
予測精度の向上
-
学習時間の短縮
-
モデルの解釈性向上
-
過学習の抑制
実社会では、数千〜数百万の特徴量が存在することもあります。その中から関連性の高い特徴量だけを選ぶ作業が必要です。
特徴量選択の代表的3手法
フィルター法(Filter Method)
特徴量を1つずつ評価し、統計的に予測に使えそうかを判断する方法です。
特徴:
-
モデル構築前に評価
-
計算コストが低い
-
複数特徴量の組み合わせ効果は考慮されない
例:
-
目的変数との相関係数を計算し、絶対値が閾値以上の特徴量を選択
-
カイ二乗検定、ANOVAなど
ラッパー法(Wrapper Method)
特徴量の組み合わせをモデルで評価し、予測精度が最も良くなる組み合わせを探す方法です。
特徴:
-
モデル構築と同時に評価
-
精度は高くなる傾向
計算コストが高い(特徴量が多い場合は膨大)
手法:
-
前進選択(Forward Selection):最も有用な特徴量を1つずつ追加
-
後退除去(Backward Elimination):最も不要な特徴量を1つずつ削除
埋め込み法(Embedded Method)
モデル学習の過程で特徴量選択を自動で行う方法です。
特徴:
-
モデルに特徴量選択機能が組み込まれている
-
フィルター法とラッパー法の良いとこ取り
例:Lasso回帰、決定木
Lassoは、不要な特徴量の係数を0にすることで自動的に選択
- 特徴量選択によるモデル精度への影響(例)
| 手法 | 選択特徴量数 | 重回帰 R² | ランダムフォレスト R² |
|---|---|---|---|
| 全特徴量 | 8 | 0.61 | 0.81 |
| Filter法 | 3 | 0.48 | 0.58 |
| Wrapper法 | 5 | 0.60 | 0.79 |
| Embedded法 | 6 | 0.59 | 0.80 |
適切な特徴量選択を行うと、学習データ・テストデータ双方の精度を維持または向上できる。
特徴量が多すぎる場合、Filter法だけでは不十分で、Wrapper法やEmbedded法を活用するのが効果的。
参考

