Menangani outlier
Pada latihan ini, Anda akan menangani outlier — titik data yang begitu berbeda dari keseluruhan data sehingga perlu diperlakukan secara berbeda dari titik data lain yang terlihat “normal”. Anda akan menggunakan keluaran dari latihan sebelumnya (persentase perubahan dari waktu ke waktu) untuk mendeteksi outlier. Pertama, Anda akan menulis sebuah fungsi yang mengganti titik data outlier dengan nilai median dari seluruh deret waktu.
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Data Deret Waktu di Python
Instruksi latihan
- Definisikan sebuah fungsi yang menerima sebuah seri masukan dan melakukan hal berikut:
- Menghitung nilai absolut jarak setiap titik data dari rataan seri, lalu membuat masker boolean untuk titik data yang berjarak tiga kali standar deviasi dari rataan.
- Gunakan masker boolean ini untuk mengganti outlier dengan median dari seluruh seri.
- Terapkan fungsi ini pada data Anda dan visualisasikan hasilnya menggunakan kode yang diberikan.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
def replace_outliers(series):
# Calculate the absolute difference of each timepoint from the series mean
absolute_differences_from_mean = np.abs(series - np.mean(series))
# Calculate a mask for the differences that are > 3 standard deviations from zero
this_mask = absolute_differences_from_mean > (np.____(series) * ____)
# Replace these values with the median accross the data
series[this_mask] = np.____(series)
return series
# Apply your preprocessing function to the timeseries and plot the results
prices_perc = prices_perc.____
prices_perc.loc["2014":"2015"].plot()
plt.show()