Trénování modelů strojového učení na velkých datasetech

Parallel Programming with Dask in Python

James Fulton

Climate Informatics Researcher

Dask-ML

import dask_ml
  • Urychluje úlohy strojového učení
Parallel Programming with Dask in Python

Lineární regrese

Příklad dat s lineárním vztahem mezi x a y.

Parallel Programming with Dask in Python

Lineární regrese

Na data byla proložena přímka.

Parallel Programming with Dask in Python

Lineární regrese

Zvýrazněna vzdálenost mezi přímkou a skutečnými datovými body.

Parallel Programming with Dask in Python

Trénování modelu lineární regrese

# 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 Programming with Dask in Python

Použití modelu scikit-learn s Daskem

# 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 Programming with Dask in Python

Trénování probíhá ve více iteracích

Animace ukazuje, že přímka se po několika iteracích přizpůsobuje přesněji.

Parallel Programming with Dask in Python

Trénování inkrementálního modelu

# Loop through data multiple times
for i in range(10):
    dask_model.partial_fit(dask_X, dask_y)  # not lazy    
Parallel Programming with Dask in Python

Generování předpovědí

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 Programming with Dask in Python

Pojďme cvičit!

Parallel Programming with Dask in Python

Preparing Video For Download...