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コンペティションのグローバルローンチ:データ駆動型、スマートな未来

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

ブログ    

推薦する

Python は 2023 年のプログラミング言語リストで引き続きトップを占めています。 SQLが求人需要リストのトップに

技術の急速な発展により、プログラミング言語は現代社会に欠かせないものになりました。ウェブサイト開発、...

...

ヘルスケアにおける AI 自動化: 患者ケアと業務効率の革命

ヘルスケアにおける AI 自動化とは、ヘルスケア業界におけるプロセスを合理化し、患者ケアを改善し、運...

...

ブロックチェーン技術を活用してディープフェイク動画の脅威に対抗する方法

デジタル革新が主流の時代において、ディープフェイク動画の増加は広く懸念されるようになっている。ディー...

...

ゲーム理論に基づく大規模データ分析

現代の AI システムは、試験に向けて熱心に勉強する学生のように、画像内の物体を識別したり、タンパク...

200以上の大規模モデル論文の調査と分析、数十人の研究者が1つの論文でRLHFの課題と限界をレビュー

ChatGPTの登場以来、OpenAIが使用するトレーニング方法である人間によるフィードバックによる...

自動車技術が新たな時代を切り開きます!メルセデス・ベンツ、BMW、Google、Amazon、Qualcommの次世代レイアウト!

編纂者:ヤン・ジェン制作:51CTO テクノロジースタック(WeChat ID:blog)次世代のス...

AsiaInfoが中国聯通のネットワークAIフォーラムに参加し、自動運転ネットワークの革新研究拠点の設立を開始

9月24日、中国聯通の「ネットワークAIフォーラム」が北京で開催された。フォーラムは5GとAI技術の...

自然言語の事前トレーニングを10倍高速化する方法

近年、自然言語処理における事前トレーニングは研究分野でホットな話題となっており、有名なGPT-3も新...

スタートアップがAIを活用している3つの分野

[[311550]] [51CTO.com クイック翻訳] 人工知能は最新の開発トレンドであり、その...

DetZero: Waymo の 3D 検出リストで 1 位、手動ラベル付けに匹敵!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

新しい量子アルゴリズムは非線形方程式を解読しました。コンピューターは人間に取って代わり、預言者になれるのでしょうか?

かつて私たちは、コンピューターがどれだけ強力であっても、未来を予測するには不十分であると考えていまし...

人工知能はどこにでもありますが、計画とコーディングは始めましたか?

人々は「ソフトウェア 2.0」の時代に入りつつあります。人工知能、ディープラーニング、機械学習、高度...