Noções básicas de machine learning

Machine Learning para dados de séries temporais em Python

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

Sempre comece olhando seus dados

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 para dados de séries temporais em Python

Sempre comece olhando seus dados

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 para dados de séries temporais em Python

Sempre visualize seus dados

Verifique se está como você espera.

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

# Usando pandas
fig, ax = plt.subplots()
df.plot(..., ax=ax)
Machine Learning para dados de séries temporais em Python

Scikit-learn

Scikit-learn é a biblioteca de machine learning mais popular em Python

from sklearn.svm import LinearSVC
Machine Learning para dados de séries temporais em Python

Preparando dados para scikit-learn

  • scikit-learn espera uma estrutura específica de dados:

    (samples, features)

  • Garanta que seus dados tenham pelo menos duas dimensões

  • Garanta que a primeira dimensão seja samples

Machine Learning para dados de séries temporais em Python

Se seus dados não tiverem o formato correto

  • Se os eixos estiverem trocados:
array.T.shape
(10, 3)
Machine Learning para dados de séries temporais em Python

Se seus dados não tiverem o formato correto

  • Se faltar um eixo, use .reshape():
array.shape
(10,)
array.reshape(-1, 1).shape
(10, 1)
  • -1 preenche automaticamente o eixo com os valores restantes
Machine Learning para dados de séries temporais em Python

Ajustando um modelo com scikit-learn

# Importe um classificador de vetores de suporte
from sklearn.svm import LinearSVC

# Instancie o modelo
model = LinearSVC()

# Ajuste o modelo a alguns dados
model.fit(X, y)

É comum que y tenha formato (samples, 1)

Machine Learning para dados de séries temporais em Python

Investigando o modelo

# Há um coeficiente por feature de entrada
model.coef_
array([[ 0.69417875, -0.5289162 ]])
Machine Learning para dados de séries temporais em Python

Prevendo com um modelo ajustado

# Gerar previsões
predictions = model.predict(X_test)
Machine Learning para dados de séries temporais em Python

Vamos praticar

Machine Learning para dados de séries temporais em Python

Preparing Video For Download...