EDAにおける異常検知
メニューを表示するにはスワイプしてください
探索的データ分析(EDA)では、異常値や外れ値によく遭遇します。これらは、データセットの大部分と大きく異なるデータポイントです。
- 異常値は、一般的なパターンに従わないために目立つ値です。これらは以下を示す場合があります:
- データ収集時のエラー;
- 珍しい事象;
- さらなる調査が必要な重要な変動。
- 外れ値は異常値の一種です。これは、他のデータと比較して数値的特徴が異常に高いまたは低い値です。
異常値や外れ値の検出は重要です。なぜなら、これらは:
- 要約統計量を歪める;
- 可視化パターンを歪める;
- 対応しない場合、誤解を招く結論につながる。
異常値を認識し解釈することで、データ品質を維持し、データのクリーニングやさらなる探索に関する適切な判断が可能になります。
12345678910111213141516171819import pandas as pd # Sample data data = {'score': [55, 60, 62, 58, 59, 97, 61, 57, 60, 58, 59, 61, 4]} df = pd.DataFrame(data) # Calculate Q1 (25th percentile) and Q3 (75th percentile) Q1 = df['score'].quantile(0.25) Q3 = df['score'].quantile(0.75) IQR = Q3 - Q1 # Define outlier bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Identify outliers outliers = df[(df['score'] < lower_bound) | (df['score'] > upper_bound)] print("Outliers detected:") print(outliers)
123456789101112131415import matplotlib.pyplot as plt import seaborn as sns # Visualize with boxplot plt.figure(figsize=(8, 2)) sns.boxplot(x=df['score'], color='skyblue') # Highlight outliers for outlier in outliers['score']: plt.scatter(outlier, 0, color='red', s=100, label='Anomaly' if outlier == outliers['score'].iloc[0] else "") plt.title('Boxplot of Scores with Outliers Highlighted') plt.xlabel('Score') plt.legend() plt.show()
データ内で異常値や外れ値を検出した場合、対処方法にはいくつかの戦略があります。
- データ入力ミスを調査し修正する;
- ミスによる外れ値を削除する;
- 妥当だが稀な事象を表す外れ値は保持する;
- 影響を軽減するために値を変換する(例:対数変換の適用)。
選択したアプローチは分析結果に影響します。外れ値を削除するとパターンが明確になり、要約統計量がより代表的になる場合があります。一方で、意味のある異常値を無視すると重要な洞察を見逃す可能性があります。異常値の扱いを決定する前に、常に文脈と潜在的な影響を考慮してください。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 24
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 24