私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
外れ値の検出は、データ分析および機械学習プロジェクトにおいて重要なタスクです。外れ値は、異常値または外れ値とも呼ばれ、他のデータと大きく異なる観測値を指します。これらの点は、測定エラー、データ入力エラー、または実際の変動によって発生する可能性があります。外れ値を正しく特定して処理することは、モデルの品質と精度を確保するために重要です。 scikit-learn (略して sklearn) は、Python の機能豊富な機械学習ライブラリとして、さまざまな外れ値検出方法を提供します。この記事では、sklearn の外れ値検出テクノロジーを詳しく紹介し、実践的なコード例を示します。
外れ値の検出は、次のような分野で重要です。
sklearn は、外れ値を検出するためのいくつかの方法を提供します。一般的に使用される手法をいくつか示します。
Z スコア法は、データの平均と標準偏差に基づいてデータを正規分布に正規化し、各ポイントの Z スコアを計算します。
from scipy.stats import zscore
data = [[1, 2], [3, 4], [5, 6], [100, 100]]
data = np.array(data)
z_scores = zscore(data)
threshold = 3 # 通常阈值设为3
outliers = np.where((z_scores > threshold) | (z_scores < -threshold))
IQR 法では、データの第 1 四分位 (Q1) と第 3 四分位 (Q3) を使用して外れ値の範囲を決定します。
Q1 = np.percentile(data, 25, axis=0)
Q3 = np.percentile(data, 75, axis=0)
IQR = Q3 - Q1
threshold = 1.5
outliers = np.where((data < (Q1 - threshold * IQR)) | (data > (Q3 + threshold * IQR)))
DBSCAN などの密度ベースの方法では、固定しきい値ではなくデータ ポイントの密度に基づいて外れ値を特定します。
from sklearn.cluster import DBSCAN
dbscan = DBSCAN(min_samples=5, eps=0.5)
dbscan.fit(data)
core_samples_mask = np.zeros_like(dbscan.labels_, dtype=bool)
core_samples_mask[dbscan.core_sample_indices_] = True
outliers = dbscan.labels_ == -1
Isolation Forest は、ランダム フォレストに基づく外れ値検出方法であり、特徴とセグメンテーション ポイントをランダムに選択することで外れ値を「分離」します。
from sklearn.ensemble import IsolationForest
iso_forest = IsolationForest(n_estimators=100, contamination=0.01)
iso_forest.fit(data)
outliers = iso_forest.predict(data) == -1
絶対的な基準がないため、外れ値検出のパフォーマンスを評価することは多くの場合困難です。ただし、次の方法で評価できます。
実際のアプリケーションでは、外れ値の検出は、データセット内の異常な動作を特定して、さらなる分析を行ったり、予防措置を講じたりするのに役立ちます。
外れ値の検出は、データ分析と機械学習における重要なリンクです。 sklearn はさまざまな外れ値検出方法を提供しており、それぞれの方法に固有のアプリケーション シナリオと利点があります。この記事を通じて、sklearn のさまざまな外れ値検出手法について学び、実用的なコード例を提供しました。
この記事の目的は、読者が外れ値検出をより深く理解し、sklearn でこれらの手法を実装する方法を習得できるようにすることです。この記事を通じて読者が外れ値検出について理解を深め、これらのテクニックを実際のプロジェクトに効果的に適用できることを願っています。データ量が増加し続けるにつれて、外れ値の検出はデータ サイエンスにおいて引き続き重要な役割を果たします。