MulaiMulai sekarang secara gratis

Tangani pencilan dengan winsorization

Diberikan sebuah basetable dengan dua variabel: "sum\_donations" dan "donor\_id". "sum_donations dapat mengandung pencilan ketika donor menyumbang dalam jumlah yang tidak biasa. Oleh karena itu, Anda ingin melakukan winsorization pada variabel ini sehingga 5% jumlah tertinggi digantikan oleh nilai persentil 5% teratas.

Latihan ini adalah bagian dari kursus

Predictive Analytics Tingkat Menengah dengan Python

Lihat Kursus

Petunjuk latihan

  • Cetak nilai minimum sum_donations dan pastikan nilainya setidaknya 0. Lalu cetak nilai maksimum sum_donations.
  • Isilah persentil batas bawah yang sesuai. Karena semua nilai yang lebih besar dari 0 realistis dan sering terjadi, tidak perlu mengganti nilai yang lebih rendah dari nilai persentil batas bawah.
  • Buat variabel baru "sum_donations_winsorized" yang merupakan versi winsorized dari variabel "sum_donations".
  • Cetak nilai maksimum sum_donations_winsorized.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

from scipy.stats.mstats import winsorize

# Check minimum sum of donations
print(____["____"].____())
print(____["____"].____())

# Fill out the lower limit
lower_limit = ____

# Winsorize the variable sum_donations
basetable["sum_donations_winsorized"] = ____(____["____"], limits=[lower_limit, 0.05])

# Check maximum sum of donations after winsorization
print(____["____"].____())
Edit dan Jalankan Kode