Addestrare modelli ML su dataset grandi

Programmazione parallela con Dask in Python

James Fulton

Climate Informatics Researcher

Dask-ML

import dask_ml
  • Velocizza i task di machine learning
Programmazione parallela con Dask in Python

Regressione lineare

Esempio di dati con relazione lineare tra x e y.

Programmazione parallela con Dask in Python

Regressione lineare

Una retta è stata adattata ai dati.

Programmazione parallela con Dask in Python

Regressione lineare

È evidenziata la distanza tra la retta e i punti dati reali.

Programmazione parallela con Dask in Python

Fittare un modello di regressione lineare

# Importa il modello di regressione
from sklearn.linear_model import SGDRegressor

# Crea un'istanza del modello
model = SGDRegressor()

# Esegui il fit sui dati
model.fit(X, y)

# Genera predizioni
y_pred = model.predict(X)
Programmazione parallela con Dask in Python

Usare un modello scikit-learn con Dask

# Importa il modello di regressione
from sklearn.linear_model import SGDRegressor

# Crea un'istanza del modello
model = SGDRegressor()


# Importa il wrapper Dask-ML per il modello from dask_ml.wrappers import Incremental
# Wrappa il modello dask_model = Incremental(model, scoring='neg_mean_squared_error')
# Esegui il fit su DataFrame o array Dask dask_model.fit(dask_X, dask_y) # non lazy
Programmazione parallela con Dask in Python

Il fit richiede più iterazioni

L'animazione mostra che la retta si adatta meglio dopo più iterazioni di fit.

Programmazione parallela con Dask in Python

Addestrare un modello Incremental

# Esegui più passaggi sui dati
for i in range(10):
    dask_model.partial_fit(dask_X, dask_y)  # non lazy    
Programmazione parallela con Dask in Python

Generare predizioni

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])
Programmazione parallela con Dask in Python

Passons à la pratique !

Programmazione parallela con Dask in Python

Preparing Video For Download...