Caracteristici cu decalaj temporal și modele auto-regresive

Machine Learning pentru Date de Tip Șir de Timp în Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Trecutul este util

  • Datele de tip serie de timp conțin aproape întotdeauna informații partajate între momente de timp
  • Informațiile din trecut pot ajuta la predicția viitorului
  • Adesea, cele mai bune caracteristici pentru predicție sunt valorile anterioare ale aceleiași serii de timp.
Machine Learning pentru Date de Tip Șir de Timp în Python

Netezime și autocorelație

  • O întrebare frecventă despre o serie de timp: cât de lin este semnalul.
  • Cu alte cuvinte, cât de corelat este un moment de timp cu vecinii săi (numită autocorelație).
  • Gradul de autocorelație din date va influența modelele dvs.
Machine Learning pentru Date de Tip Șir de Timp în Python

Crearea caracteristicilor cu decalaj temporal

  • Vom construi un model care utilizează valori din trecut ca intrări.
  • Aceasta ne permite să evaluăm gradul de autocorelație al semnalului (și multe altele).
Machine Learning pentru Date de Tip Șir de Timp în Python

Decalarea datelor cu Pandas

print(df)
         df 
    0   0.0
    1   1.0 
    2   2.0 
    3   3.0 
    4   4.0 
# Shift a DataFrame/Series by 3 index values towards the past
print(df.shift(3))
         df
    0   NaN
    1   NaN
    2   NaN
    3   0.0
    4   1.0
Machine Learning pentru Date de Tip Șir de Timp în Python

Crearea unui DataFrame cu decalaje temporale

# data is a pandas Series containing time series data
data = pd.Series(...)

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

# Create a dictionary of time-shifted data
many_shifts = {'lag_{}'.format(ii): data.shift(ii) for ii in shifts}

# Convert them into a dataframe
many_shifts = pd.DataFrame(many_shifts)
Machine Learning pentru Date de Tip Șir de Timp în Python

Antrenarea unui model cu caracteristici decalate temporal

# Fit the model using these input features 
model = Ridge() 
model.fit(many_shifts, data)
Machine Learning pentru Date de Tip Șir de Timp în Python

Interpretarea coeficienților modelului auto-regresiv

# Visualize the fit model coefficients
fig, ax = plt.subplots()
ax.bar(many_shifts.columns, model.coef_)
ax.set(xlabel='Coefficient name', ylabel='Coefficient value')

# Set formatting so it looks nice
plt.setp(ax.get_xticklabels(), rotation=45, horizontalalignment='right')
Machine Learning pentru Date de Tip Șir de Timp în Python

Vizualizarea coeficienților pentru un semnal zgomotos

Machine Learning pentru Date de Tip Șir de Timp în Python

Vizualizarea coeficienților pentru un semnal lin

Machine Learning pentru Date de Tip Șir de Timp în Python

Să exersăm!

Machine Learning pentru Date de Tip Șir de Timp în Python

Preparing Video For Download...