Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 重複データと外れ値の処理 | セクション
データ前処理と特徴量エンジニアリング

book重複データと外れ値の処理

メニューを表示するにはスワイプしてください

実世界のデータセットを扱う際には、重複レコード外れ値に頻繁に遭遇します。これらはデータ分析や機械学習モデルの性能に大きな影響を与える可能性があります。重複データは特定のパターンの重要性を不自然に高め、結果に偏りを生じさせる一方、外れ値は統計的な要約やモデル予測を歪めることがあります。これらの問題を適切に特定し対処することは、データクリーニングの重要な要素です。

1234567891011121314151617
import pandas as pd import seaborn as sns # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Find duplicate rows in the Titanic dataset duplicates = df.duplicated() print("Duplicate row indicators:") print(duplicates.value_counts()) # Show how many duplicates exist # Remove duplicate rows df_no_duplicates = df.drop_duplicates() print("\nNumber of rows before removing duplicates:") print(len(df)) print("Number of rows after removing duplicates:") print(len(df_no_duplicates))
copy
Note
定義

外れ値とは、データセットの大多数から大きく逸脱したデータポイントを指します。外れ値の検出によく用いられる手法には、可視化(ボックスプロットなど)、統計的指標Z-score など)、および四分位範囲IQR)法があります。

Zスコアと**四分位範囲(IQR)**は、データセット内の外れ値を特定するためによく使われる2つの統計指標:

  • Zスコア:
    • データポイントが平均からどれだけ標準偏差離れているかを測定;
    • Zスコアは次の式で計算:(value - mean) / standard deviation
    • Zスコアが3より大きい、または-3より小さいデータポイントは、平均値から大きく離れているため、しばしば外れ値と見なされる。
  • 四分位範囲(IQR):
    • 第一四分位数(Q1、25パーセンタイル)と第三四分位数(Q3、75パーセンタイル)の間の範囲を表す;
    • IQRはQ3 - Q1で計算;
    • 外れ値は通常、Q1 - 1.5 * IQR未満またはQ3 + 1.5 * IQRを超えるデータポイントとして定義され、これはデータの中央50%の典型的な範囲外にあることを意味する。

どちらの方法も、値が期待される範囲からどれだけ逸脱しているかを測定するのに役立つ。Zスコアは平均からの距離に着目し、IQRはデータセットの中央部分から外れた値を特定する。

12345678910111213141516171819202122
import seaborn as sns import pandas as pd # Load the Titanic dataset from seaborn df = sns.load_dataset("titanic") # Drop rows with missing 'fare' values df_fare = df.dropna(subset=["fare"]) # Calculate Q1 and Q3 for the 'fare' column Q1 = df_fare["fare"].quantile(0.25) Q3 = df_fare["fare"].quantile(0.75) IQR = Q3 - Q1 # Define outlier bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Detect outliers in 'fare' outliers = df_fare[(df_fare["fare"] < lower_bound) | (df_fare["fare"] > upper_bound)] print("Outliers detected in 'fare' using IQR method:") print(outliers[["fare"]])
copy
Note
注意

外れ値を扱う際には、それらを削除するか、極端な値を上限・下限で制限したり、log変換を適用するなどして変換する方法がある。最適な方法は、データセットや分析の目的によって異なる。

question mark

データセット内の重複と外れ値の処理に関して正しいものはどれですか?

すべての正しい答えを選択

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  3
some-alt