Basi di Machine Learning

Machine Learning per dati di serie temporali in Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Inizia sempre osservando i dati

array.shape
(10, 5)
array[:3]
array([[ 0.735528  ,  1.00122818, -0.28315978],
       [-0.94478393,  0.18658748, -0.00241224],
       [-0.74822942, -1.46636618,  0.69835096]]) 
Machine Learning per dati di serie temporali in Python

Inizia sempre osservando i dati

df.head()
       col1      col2      col3
0  0.735528  1.001228 -0.283160
1 -0.944784  0.186587 -0.002412
2 -0.748229 -1.466366  0.698351
3  1.038589 -0.171248  0.831457
4 -0.161904  0.003972 -0.321933
Machine Learning per dati di serie temporali in Python

Visualizza sempre i tuoi dati

Assicurati che appaiano come ti aspetti.

# Con matplotlib
fig, ax = plt.subplots()
ax.plot(...)

# Con pandas
fig, ax = plt.subplots()
df.plot(..., ax=ax)
Machine Learning per dati di serie temporali in Python

Scikit-learn

Scikit-learn è la libreria di machine learning più usata in Python

from sklearn.svm import LinearSVC
Machine Learning per dati di serie temporali in Python

Preparare i dati per scikit-learn

  • scikit-learn si aspetta una struttura dati specifica:

    (samples, features)

  • Assicurati che i dati siano almeno bidimensionali

  • Assicurati che la prima dimensione sia samples

Machine Learning per dati di serie temporali in Python

Se i dati non hanno la forma corretta

  • Se gli assi sono invertiti:
array.T.shape
(10, 3)
Machine Learning per dati di serie temporali in Python

Se i dati non hanno la forma corretta

  • Se manca un asse, usa .reshape():
array.shape
(10,)
array.reshape(-1, 1).shape
(10, 1)
  • -1 riempie automaticamente quell'asse con i valori rimanenti
Machine Learning per dati di serie temporali in Python

Addestrare un modello con scikit-learn

# Importa un classificatore a vettori di supporto
from sklearn.svm import LinearSVC

# Istanzia il modello
model = LinearSVC()

# Allena il modello su alcuni dati
model.fit(X, y)

Spesso y ha forma (samples, 1)

Machine Learning per dati di serie temporali in Python

Esplorare il modello

# C'è un coefficiente per ogni feature in input
model.coef_
array([[ 0.69417875, -0.5289162 ]])
Machine Learning per dati di serie temporali in Python

Prevedere con un modello addestrato

# Genera le previsioni
predictions = model.predict(X_test)
Machine Learning per dati di serie temporali in Python

Esercitiamoci

Machine Learning per dati di serie temporali in Python

Preparing Video For Download...