Treinar modelos de machine learning em grandes conjuntos de dados

Programação Paralela com Dask em Python

James Fulton

Climate Informatics Researcher

Dask-ML

import dask_ml
  • Acelera tarefas de machine learning
Programação Paralela com Dask em Python

Regressão linear

Um exemplo de dados com relação linear entre x e y.

Programação Paralela com Dask em Python

Regressão linear

Uma linha reta foi ajustada aos dados.

Programação Paralela com Dask em Python

Regressão linear

A distância entre a linha reta e os pontos reais é destacada.

Programação Paralela com Dask em Python

Ajustando um modelo de regressão linear

# Importar modelo de regressão
from sklearn.linear_model import SGDRegressor

# Criar instância do modelo
model = SGDRegressor()

# Ajustar o modelo aos dados
model.fit(X, y)

# Fazer previsões
y_pred = model.predict(X)
Programação Paralela com Dask em Python

Usando um modelo do scikit-learn com Dask

# Importar modelo de regressão
from sklearn.linear_model import SGDRegressor

# Criar instância do modelo
model = SGDRegressor()


# Importar wrapper do Dask-ML para o modelo from dask_ml.wrappers import Incremental
# Envelopar o modelo dask_model = Incremental(model, scoring='neg_mean_squared_error')
# Ajustar em DataFrames ou arrays do Dask dask_model.fit(dask_X, dask_y) # não é lazy
Programação Paralela com Dask em Python

Ajuste em múltiplas iterações

A animação mostra que a linha fica mais precisa após várias iterações de ajuste.

Programação Paralela com Dask em Python

Treinando um modelo Incremental

# Percorrer os dados várias vezes
for i in range(10):
    dask_model.partial_fit(dask_X, dask_y)  # não é lazy    
Programação Paralela com Dask em Python

Gerando previsões

y_pred = dask_model.predict(dask_X)

print(y_pred)
dask.array<_predict, shape=(nan,), dtype=int64, chunksize=(nan,), chunktype=...>
print(y_pred.compute())
array([0.465557, 0.905675, 0.285214, ..., 0.249454, 0.559624, 0.823475])
Programação Paralela com Dask em Python

Vamos praticar!

Programação Paralela com Dask em Python

Preparing Video For Download...