Mulai sekarangMulai gratis

Standarisasi data

Beberapa model, seperti K-nearest neighbors (KNN) dan neural networks, bekerja lebih baik dengan data yang ditata skala—jadi kita akan menstandarkan data.

Kita juga akan menghapus variabel yang kurang penting (hari dalam minggu) berdasarkan feature importances, dengan mengindeks DataFrame fitur menggunakan .iloc[]. KNN menggunakan jarak untuk menemukan titik serupa saat membuat prediksi, sehingga fitur berskala besar akan mendominasi fitur berskala kecil. Menata skala data mengatasi hal tersebut.

scale() dari sklearn akan menstandarkan data, yakni menetapkan mean menjadi 0 dan standar deviasi menjadi 1. Idealnya kita akan menggunakan StandardScaler dengan fit_transform() pada data latih, dan fit() pada data uji, tetapi di sini kita dibatasi hingga 15 baris kode.

Setelah data ditata skala, kita akan memeriksa keberhasilannya dengan memplot histogram data.

Latihan ini merupakan bagian dari kursus

Machine Learning untuk Keuangan dengan Python

Lihat Kursus

Instruksi latihan

  • Hapus fitur hari dalam minggu dari fitur train/test menggunakan .iloc (hari dalam minggu adalah 4 fitur terakhir).
  • Standarkan train_features dan test_features menggunakan scale() dari sklearn; simpan fitur terstandar sebagai scaled_train_features dan scaled_test_features.
  • Plot histogram rata-rata bergerak RSI 14 hari (diindeks pada [:, 2]) dari train_features yang belum ditata skala pada subplot pertama (ax[0]).
  • Plot histogram rata-rata bergerak RSI 14 hari yang telah distandarkan pada subplot kedua (ax[1]).

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

from sklearn.preprocessing import scale

# Remove unimportant features (weekdays)
train_features = train_features.iloc[:, :-4]
test_features = test_features.____

# Standardize the train and test features
scaled_train_features = scale(train_features)
scaled_test_features = ____

# Plot histograms of the 14-day SMA RSI before and after scaling
f, ax = plt.subplots(nrows=2, ncols=1)
train_features.iloc[:, 2].hist(ax=____)
ax[1].hist(scaled_train_features[:, 2])
plt.show()
Edit dan Jalankan Kode