Fitur tunda waktu dan model auto-regresif

Machine Learning untuk Data Deret Waktu di Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Masa lalu itu berguna

  • Data deret waktu hampir selalu mengandung informasi yang dibagi antar titik waktu
  • Informasi masa lalu dapat membantu memprediksi masa depan
  • Sering kali fitur terbaik untuk memprediksi deret waktu adalah nilai sebelumnya dari deret waktu yang sama.
Machine Learning untuk Data Deret Waktu di Python

Catatan tentang kehalusan dan autokorelasi

  • Pertanyaan umum pada deret waktu: seberapa halus datanya.
  • Alias, seberapa berkorelasi satu titik waktu dengan tetangganya (disebut autokorelasi).
  • Besarnya autokorelasi dalam data akan memengaruhi model Anda.
Machine Learning untuk Data Deret Waktu di Python

Membuat fitur jeda waktu

  • Mari kita lihat cara membangun model yang memakai nilai masa lalu sebagai fitur masukan.
  • Kita dapat memakainya untuk menilai seberapa autokorelasi sinyal kita (dan banyak hal lain juga)
Machine Learning untuk Data Deret Waktu di Python

Menggeser data dengan Pandas

print(df)
         df 
    0   0.0
    1   1.0 
    2   2.0 
    3   3.0 
    4   4.0 
# Geser DataFrame/Series sebanyak 3 indeks ke masa lalu
print(df.shift(3))
         df
    0   NaN
    1   NaN
    2   NaN
    3   0.0
    4   1.0
Machine Learning untuk Data Deret Waktu di Python

Membuat DataFrame bergeser waktu

# data adalah pandas Series berisi data deret waktu
data = pd.Series(...)

# Pergeseran
shifts = [0, 1, 2, 3, 4, 5, 6, 7]

# Buat kamus data yang digeser waktu
many_shifts = {'lag_{}'.format(ii): data.shift(ii) for ii in shifts}

# Ubah menjadi dataframe
many_shifts = pd.DataFrame(many_shifts)
Machine Learning untuk Data Deret Waktu di Python

Melatih model dengan fitur bergeser waktu

# Latih model menggunakan fitur masukan ini 
model = Ridge() 
model.fit(many_shifts, data)
Machine Learning untuk Data Deret Waktu di Python

Menafsirkan koefisien model auto-regresif

# Visualisasikan koefisien model terlatih
fig, ax = plt.subplots()
ax.bar(many_shifts.columns, model.coef_)
ax.set(xlabel='Nama koefisien', ylabel='Nilai koefisien')

# Atur format agar rapi
plt.setp(ax.get_xticklabels(), rotation=45, horizontalalignment='right')
Machine Learning untuk Data Deret Waktu di Python

Memvisualisasikan koefisien untuk sinyal kasar

Machine Learning untuk Data Deret Waktu di Python

Memvisualisasikan koefisien untuk sinyal halus

Machine Learning untuk Data Deret Waktu di Python

Ayo berlatih!

Machine Learning untuk Data Deret Waktu di Python

Preparing Video For Download...