-
外れ値の特定と可視化:
- データセット内の外れ値を特定するための統計的手法を使用します。代表的な手法には、ボックスプロットやヒストグラム、散布図を利用する方法があります。これらの手法を用いて、外れ値を可視化し、分析します。
-
外れ値の除去:
- 外れ値を除去する方法の一つは、統計的な閾値を設定し、その閾値を超える値を除外することです。例えば、平均値からの標準偏差の何倍かを閾値として設定し、それを超える値を外れ値とみなして除去します。
import numpy as np def remove_outliers(data, threshold): mean = np.mean(data) std = np.std(data) cutoff = std * threshold lower_bound = mean - cutoff upper_bound = mean + cutoff filtered_data = [x for x in data if lower_bound <= x <= upper_bound] return filtered_data data = [1, 2, 3, 10, 20, 100, 200] threshold = 2 filtered_data = remove_outliers(data, threshold) print(filtered_data)
-
外れ値の代替:
- 外れ値を除去する代わりに、代替値で置き換える方法もあります。代替値としては、中央値や平均値を使用することが一般的です。
import numpy as np def replace_outliers(data): median = np.median(data) data = [median if x > 3*median else x for x in data] return data data = [1, 2, 3, 10, 20, 100, 200] replaced_data = replace_outliers(data) print(replaced_data)
-
外れ値の補間:
- 外れ値を補間する方法もあります。補間は、周囲の値を考慮して、外れ値を推定する手法です。代表的な補間手法には、線形補間や多項式補間があります。
import numpy as np from scipy.interpolate import interp1d def interpolate_outliers(data): x = np.arange(len(data)) y = np.array(data) f = interp1d(x, y, kind='linear') interpolated_data = f(x) return interpolated_data.tolist() data = [1, 2, 3, 10, 20, 100, 200] interpolated_data = interpolate_outliers(data) print(interpolated_data)
外れ値の処理は、データの品質向上やモデルのパフォーマンス向上に寄与する重要なステップです。これらの手法とコード例を活用して、外れ値を適切に処理しましょう。