Python データ分析の基礎: 外れ値の検出と処理

Python データ分析の基礎: 外れ値の検出と処理

機械学習において、異常検出と処理は比較的小さな分野、または機械学習の副産物です。一般的な予測問題では、モデルは通常、サンプル全体のデータ構造の表現であるためです。この表現は通常、サンプル全体の一般的な特性を捉えており、これらの特性に関してサンプル全体と完全に矛盾する点は外れ値と呼ばれます。通常、予測問題では外れ値は開発者に歓迎されません。予測問題は一般にサンプル全体の特性に焦点を当てており、外れ値の生成メカニズムはサンプル全体と完全に矛盾しているためです。アルゴリズムが外れ値に敏感な場合、生成されたモデルはサンプル全体を適切に表現できず、予測も不正確になります。

一方、異常は、病気の予測など、特定のシナリオではアナリストにとって大きな関心事です。通常、健康な人の身体指標は、いくつかの側面で類似しています。人の身体指標が異常である場合、その人の身体状態はいくつかの側面で変化しているはずです。もちろん、この変化は必ずしも病気によって引き起こされるわけではありませんが (通常、ノイズ ポイントと呼ばれます)、異常の発生と検出は病気の予測の重要な出発点です。同様のシナリオは、クレジット詐欺やサイバー攻撃などにも当てはまります。

一般的な外れ値検出方法には、統計ベースの方法、クラスタリングベースの方法、および外れ値を検出するために特別に使用されるいくつかの方法が含まれます。これらの方法については以下で紹介します。

pandas を使用すると、describe() を直接使用してデータの統計的記述 (一部の統計の大まかな観察のみ) を観察できますが、統計データは次のように連続しています。

または、散布図を使用するだけで、外れ値の存在を明確に観察できます。以下のように表示されます。

この原則には条件があり、データは正規分布に従う必要があります。 3∂ 原則によれば、外れ値が標準偏差の 3 倍を超える場合、外れ値とみなすことができます。プラスマイナス3∂の確率は99.7%なので、3∂の平均値から外れた値の確率はP(|xu| 3∂) = 0.003となり、非常に稀で確率の低いイベントとなります。データが正規分布に従わない場合は、標準偏差が平均から何倍離れているかによっても表すことができます。

赤い矢印は外れ値を示しています。

この方法では、ボックス プロットの四分位範囲 (IQR) を使用して外れ値を検出します。これは Tukey 検定とも呼ばれます。ボックス プロットの定義は次のとおりです。

四分位範囲 (IQR) は、上位四分位と下位四分位の差です。 IQR の 1.5 倍を基準とし、上位四分位数 + IQR 距離の 1.5 倍、または下位四分位数 - IQR 距離の 1.5 倍を超えるポイントは外れ値であると規定しています。以下は、主に numpy のパーセンタイル メソッドを使用する Python でのコード実装です。

これを実現するために、seaborn の視覚化メソッド boxplot を使用することもできます。

赤い矢印は外れ値を示しています。

上記は外れ値を決定するために一般的に使用される簡単な方法です。以下は、外れ値を検出するためのより複雑なアルゴリズムです。内容が多岐にわたるため、ここでは中核となるアイデアのみを紹介します。興味のある方は、ご自身で詳しく学習してください。

この方法では、一般的に確率分布モデルを構築し、オブジェクトがモデルに適合する確率を計算し、確率の低いオブジェクトを外れ値として扱います。モデルがクラスターの集合である場合、異常はどのクラスターにも有意に属していないオブジェクトです。モデルが回帰である場合、異常は予測値から比較的遠いオブジェクトです。

外れ値の確率的定義:外れ値とは、データの確率分布モデルに関して確率が低いオブジェクトです。この状況の前提は、データ セットがどのような分布に従うかを知る必要があるということです。推定が間違っていると、裾が重い分布になります。

たとえば、特徴エンジニアリングにおける RobustScaler メソッドは、データ特徴の分位分布を使用して、データ特徴値をスケーリングするときに、分位数に応じてデータを複数のセグメントに分割し、スケーリングには中間のセグメントのみを使用します。たとえば、25% 分位数から 75% 分位数までのデータのみがスケーリングされます。これにより、異常なデータの影響が軽減されます。

長所と短所:

  • (1)統計学の確固たる理論的根拠を有すること。これらのテストは、使用されるテストの種類に関する十分なデータと知識がある場合に非常に強力になり得る。
  • (2)多変量データの場合、利用できる選択肢は少なくなり、高次元データの場合、これらの検出確率は低くなります。

統計的手法では、データの分布を利用して外れ値を観察します。一部の手法では、特定の分布条件が要求されます。ただし、実際には、データの分布が特定の想定条件を満たすことは難しく、使用には一定の制限があります。

データ セットの統計分布を決定するよりも、データ セットの意味のある近接度を測定する方が簡単です。このアプローチは、オブジェクトの外れ値スコアが k 近傍 (KNN) までの距離によって与えられるため、統計的手法よりも汎用的で使いやすいです。

外れ値スコアは k の値に非常に敏感であることに注意してください。 k が小さすぎると、隣接する外れ値の数が少ないために外れ値スコアが低くなる可能性があります。一方、K が大きすぎると、k ポイント未満のクラスター内のすべてのオブジェクトが外れ値になる可能性があります。 k の選択に対してこの方式をより堅牢にするために、k 個の最近傍点の平均距離を使用することができます。

長所と短所:

  • (1)シンプル
  • (2)欠点:近接ベースの方法はO(m2)の時間がかかり、大規模なデータセットには適用できない。
  • (3)この方法はパラメータの選択にも敏感である。
  • (4)密度の変化を考慮できないグローバル閾値を使用しているため、密度の変化する領域を含むデータセットを処理できない。

密度ベースの観点から見ると、外れ値は密度の低い領域にあるオブジェクトです。密度は近接性の観点から定義されることが多いため、密度ベースの外れ値検出は近接性ベースの外れ値検出と密接に関連しています。密度を定義する一般的な方法は、k 個の最も近い近傍までの平均距離の逆数として定義することです。この距離が短い場合、密度は高くなります。逆もまた同様です。別の密度定義は、DBSCAN クラスタリング アルゴリズムで使用されるもので、オブジェクトの周囲の密度は、オブジェクトの指定された距離 d 内にあるオブジェクトの数に等しくなります。

長所と短所:

  • (1)オブジェクトが外れ値であるかどうかを定量的に測定し、データに異なる領域がある場合でも適切に処理できる。
  • (2)距離ベースの方法と同様に、これらの方法は必然的にO(m2)の時間計算量を持つ。低次元データの場合、特定のデータ構造を使用することで O(mlogm) を達成できます。
  • (3)パラメータの選択が難しい。 LOF アルゴリズムは、k のさまざまな値を観察して最大の外れ値スコアを取得することでこの問題を処理しますが、これらの値の上限と下限を選択する必要は依然としてあります。

クラスターベースの外れ値:オブジェクトがどのクラスターにも強く属していない場合、そのオブジェクトはクラスターベースの外れ値です。

外れ値が初期クラスタリングに与える影響:クラスタリングによって外れ値が検出された場合、外れ値はクラスタリングに影響を与えるため、構造が有効かどうかという疑問が生じます。これは、外れ値に敏感な k-means アルゴリズムの欠点でもあります。この問題に対処するには、オブジェクトをクラスタ化し、外れ値を削除し、再度オブジェクトをクラスタ化するという方法を使用できます (最適な結果が得られるとは限りません)。

長所と短所:

  • (1)線形および線形に近い複雑性に基づくクラスタリング手法(k平均法)は、外れ値を見つけるのに非常に効果的である。
  • (2)クラスターの定義は通常、外れ値の補完であるため、クラスターと外れ値を同時に見つけることが可能である。
  • (3)生成された外れ値セットとそのスコアは、使用されるクラスターの数とデータ内の外れ値の存在に大きく依存する可能性がある。
  • (4)クラスタリングアルゴリズムによって生成されたクラスタの品質は、アルゴリズムによって生成される外れ値の品質に大きな影響を与える。

実は、上記で述べたクラスタリング手法の本来の目的は、外れ値を見つけることではなく、教師なし分類です。たまたまその機能が外れ値の検出を実現できるだけであり、これは派生機能とみなすことができます。

上記の方法に加えて、外れ値を検出するために特によく使用される 2 つの方法があります。One Class SVM と Isolation Forest です。詳細についてはここでは詳しく説明しません。

外れ値が検出されたので、処理する必要があります。外れ値を処理する一般的な方法は、おおよそ次のカテゴリに分けられます。

  • 外れ値を含むレコードを削除する: 外れ値を含むレコードを直接削除します。
  • 欠損値として扱う: 外れ値を欠損値として扱い、欠損値処理方法を使用して処理します。
  • 平均値補正: 外れ値は、前の 2 つの観測値と次の 2 つの観測値の平均を使用して補正できます。
  • 処理なし: 外れ値を含むデータセットに対してデータマイニングが直接実行されます。

外れ値を削除するかどうかは、実際の状況に基づいて決定できます。一部のモデルは外れ値に対してあまり敏感ではないため、外れ値があってもモデルの効果には影響しません。ただし、ロジスティック回帰 LR などの一部のモデルは外れ値に対して非常に敏感です。これらを処理しないと、過剰適合などの非常に悪い結果が発生する可能性があります。

以上が外れ値の検出と処理方法の概要です。

いくつかの検出方法で外れ値を見つけることはできますが、その結果は絶対的に正しいわけではありません。具体的な状況は、ビジネスに対する理解に基づいて判断する必要があります。同様に、外れ値をどのように扱うか、削除するか、修正するか、あるいは扱わないかについても、実際の状況に応じて検討する必要があり、決まったルールはありません。

<<:  2018 CCF BDCIコンペティションのグローバルローンチ:データ駆動型、スマートな未来

>>:  戦争の太鼓はすでに鳴り響いています。人工知能に関して、あなたはどちらの陣営に属しますか?

ブログ    
ブログ    

推薦する

2030年までにAI/自動化によって消滅する6つの技術職

翻訳者 | ジン・ヤンレビュー | Chonglou現在、人工知能と自動化は急速な発展段階に入ってお...

5G+自動運転車の時代において、Car OSの主導権を握るのは誰でしょうか?

「人間の情報に対する欲求は、原始人の食欲に似ています。食物から摂取するカロリーは欲求を満たすことが...

...

...

...

AIがビジネスとマーケティングの未来をどう形作るのか

ここで、AI がビジネスとマーケティングの未来をどのように形作っていくのかを見てみましょう。有名な諺...

...

人工知能の革新はいかにしてより賢いロボットの進化につながるのか

ロボットはコンピューターによってプログラムされた機械です。人間の介入なしに一連の複雑なアクションを自...

ファーウェイと4つの主要パートナーが共同でAscend AIの大規模モデルトレーニングおよびプッシュ統合ソリューションをリリース

Ascend人工知能産業サミットフォーラムが上海で開催されました。フォーラムでは、ビッグモデルの共同...

...

5分でAdam最適化アルゴリズムを素早くマスター

[[389202]]勾配降下法は、目的関数の負の勾配に従って関数の最小値を見つける最適化アルゴリズム...

インテリジェントエッジがモノのインターネット (IoT) の変革を推進

2025年までに、世界中に約750億個のIoTデバイスが存在すると予想されています。スマートデバイス...

PHP+MySQL アプリケーションで XOR 暗号化アルゴリズムを使用する

この記事では、排他的論理和 (XOR) 演算を使用したシンプルで使いやすい暗号化/復号化アルゴリズム...

人工知能、垂直農法、ブロックチェーン、ロボットは、未来の農業の急速な発展を推進する4つの主要技術である。

これは日本の東京国際展示場にあるデンソーの双腕協働ロボットの写真です。写真提供:新華社記者 華毅国連...

世界最大の公開顔データセット | 清華大学と信義科技が共同リリース

[[387945]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...