Entraîner des modèles de machine learning sur de grands ensembles de données

Programmation parallèle avec Dask en Python

James Fulton

Climate Informatics Researcher

Dask-ML

import dask_ml
  • Accélère les tâches de machine learning
Programmation parallèle avec Dask en Python

Régression linéaire

Exemple de données avec une relation linéaire entre x et y.

Programmation parallèle avec Dask en Python

Régression linéaire

Une droite a été ajustée aux données.

Programmation parallèle avec Dask en Python

Régression linéaire

La distance entre la droite et les points réels est mise en évidence.

Programmation parallèle avec Dask en Python

Ajuster un modèle de régression linéaire

# Import regression model
from sklearn.linear_model import SGDRegressor

# Create instance of model
model = SGDRegressor()

# Fit model to data
model.fit(X, y)

# Make predictions
y_pred = model.predict(X)
Programmation parallèle avec Dask en Python

Utiliser un modèle scikit-learn avec Dask

# Import regression model
from sklearn.linear_model import SGDRegressor

# Create instance of model
model = SGDRegressor()


# Import Dask-ML wrapper for model from dask_ml.wrappers import Incremental
# Wrap model dask_model = Incremental(model, scoring='neg_mean_squared_error')
# Fit on Dask DataFrames or arrays dask_model.fit(dask_X, dask_y) # not lazy
Programmation parallèle avec Dask en Python

L'ajustement exige plusieurs itérations

L'animation montre que la droite s'ajuste mieux après plusieurs itérations.

Programmation parallèle avec Dask en Python

Entraîner un modèle Incremental

# Loop through data multiple times
for i in range(10):
    dask_model.partial_fit(dask_X, dask_y)  # not lazy    
Programmation parallèle avec Dask en Python

Générer des prédictions

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])
Programmation parallèle avec Dask en Python

Passons à la pratique !

Programmation parallèle avec Dask en Python

Preparing Video For Download...