Penghapusan pencilan secara statistik
Meskipun menghapus N% teratas dari data Anda berguna untuk memastikan titik yang sangat menyimpang dihapus, pendekatan ini memiliki kelemahan karena selalu menghapus proporsi titik yang sama, bahkan ketika datanya benar. Pendekatan alternatif yang umum digunakan adalah menghapus data yang berada lebih dari tiga simpangan baku dari mean. Anda dapat menerapkannya dengan terlebih dahulu menghitung mean dan simpangan baku dari kolom yang relevan untuk menemukan batas atas dan bawah, lalu menerapkan batas tersebut sebagai mask pada DataFrame. Metode ini memastikan hanya data yang benar-benar berbeda dari keseluruhan yang dihapus, dan akan menghapus lebih sedikit titik jika data saling berdekatan.
Latihan ini adalah bagian dari kursus
Rekayasa Fitur untuk Machine Learning di Python
Petunjuk latihan
- Hitung simpangan baku dan mean dari kolom
ConvertedSalarypadaso_numeric_df. - Hitung batas atas dan batas bawah sebagai tiga simpangan baku dari mean ke kedua arah.
- Pangkas DataFrame
so_numeric_dfuntuk mempertahankan semua baris di manaConvertedSalaryberada dalam bataslowerdanupper.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Find the mean and standard dev
std = so_numeric_df['ConvertedSalary'].____
mean = so_numeric_df['ConvertedSalary'].____
# Calculate the cutoff
cut_off = std * 3
lower, upper = mean - cut_off, ____
# Trim the outliers
trimmed_df = so_numeric_df[(so_numeric_df['ConvertedSalary'] < ____) \
& (so_numeric_df['ConvertedSalary'] > ____)]
# The trimmed box plot
trimmed_df[['ConvertedSalary']].boxplot()
plt.show()