Scikit learn dask是否支持sklearn learning_曲线函数?

Scikit learn dask是否支持sklearn learning_曲线函数?,scikit-learn,dask,dask-distributed,dask-ml,Scikit Learn,Dask,Dask Distributed,Dask Ml,我用sklearn计算随机森林的学习曲线。我需要为很多不同的RFs做这件事,因此我想使用集群和Dask来减少RFs匹配的时间 目前我实现了以下算法: from sklearn.externals import joblib from dask.distributed import Client, LocalCluster worker_kwargs = dict(memory_limit="2GB", ncores=4) cluster = LocalCluster(n_workers=4,

我用sklearn计算随机森林的学习曲线。我需要为很多不同的RFs做这件事,因此我想使用集群和Dask来减少RFs匹配的时间

目前我实现了以下算法:

from sklearn.externals import joblib
from dask.distributed import Client, LocalCluster

worker_kwargs = dict(memory_limit="2GB", ncores=4)
cluster = LocalCluster(n_workers=4, threads_per_worker=2, **worker_kwargs) # processes=False?
client = Client(cluster)

X, Y = ..., ...
estimator = RandomForestRegressor(n_jobs=-1, **rf_params)
cv = ShuffleSplit(n_splits=5, test_size=0.2)
train_sizes = [...] # 20 different values

with joblib.parallel_backend('dask', scatter=[X,Y]):
    train_sizes, train_scores, test_scores = learning_curve(estimator, X, Y, cv=cv, n_jobs=-1, train_sizes=train_sizes)       
以下是两个并行级别:

  • 一个用于安装RF(n_作业=-1)
  • 一个用于在所有训练集大小上循环(n_jobs=-1)
我的问题是:如果后端是loky,那么大约需要23秒

[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   22.8s finished
现在,如果后端是
dask
,则需要更多时间:

[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   30.3s finished
我现在知道
Dask
引入了开销,但我不知道这解释了运行时间的所有差异

dask
的开发速度很快,我发现有很多不同的版本可以做同样的事情,而不知道哪一个是最新的