ML-modellen trainen op grote datasets

Parallel programmeren met Dask in Python

James Fulton

Climate Informatics Researcher

Dask-ML

import dask_ml
  • Versnelt machinelearning-taken
Parallel programmeren met Dask in Python

Lineaire regressie

Voorbeelddata met een lineair verband tussen x en y.

Parallel programmeren met Dask in Python

Lineaire regressie

Er is een rechte lijn op de data gefit.

Parallel programmeren met Dask in Python

Lineaire regressie

De afstand tussen de rechte lijn en de werkelijke datapunten is gemarkeerd.

Parallel programmeren met Dask in Python

Een lineair regressiemodel fitten

# 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)
Parallel programmeren met Dask in Python

Een scikit-learn-model gebruiken met 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
Parallel programmeren met Dask in Python

Fitten kost meerdere iteraties

De animatie laat zien dat de rechte lijn na meerdere iteraties nauwkeuriger past.

Parallel programmeren met Dask in Python

Een Incremental-model trainen

# Loop meerdere keren door de data
for i in range(10):
    dask_model.partial_fit(dask_X, dask_y)  # not lazy    
Parallel programmeren met Dask in Python

Voorspellingen genereren

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])
Parallel programmeren met Dask in Python

Laten we oefenen!

Parallel programmeren met Dask in Python

Preparing Video For Download...