Как передать фрейм данных Dask в качестве входных данных для моделей dask-ml? - PullRequest
0 голосов
/ 01 октября 2018

Обычные конвейеры ML включают обработку панд или рамок данных dask в форму, которая может быть передана в модели ML.Однако многие модели dask-ml не могут принимать кадры данных Dask, поскольку они не отслеживают количество строк на раздел.Вызов метода fit вызывает Cannot fit on dask.dataframe due to unknown partition lengths error.Что мне следует сделать, чтобы я мог передать кадры данных Dask в модель dask-ml?

Вот пример:

import dask.dataframe as dd
import pandas as pd
from dask_ml.cluster import KMeans

df = dd.from_pandas(pd.DataFrame({'A': [1, 2, 3, 4, 5], 
                                  'B': [6, 7, 8, 9, 10]}),
                    npartitions=2)

kmeans = KMeans()
kmeans.fit(df)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-53-6c1545864b12> in <module>()
      6 
      7 kmeans = KMeans()
----> 8 kmeans.fit(df)

~/anaconda3/envs/pds/lib/python3.6/site-packages/dask_ml/cluster/k_means.py in fit(self, X, y)
    187 
    188     def fit(self, X, y=None):
--> 189         X = self._check_array(X)
    190         labels, centroids, inertia, n_iter = k_means(
    191             X,

~/anaconda3/envs/pds/lib/python3.6/site-packages/dask_ml/utils.py in wraps(*args, **kwargs)
    298         def wraps(*args, **kwargs):
    299             with _timer(f.__name__, _logger=logger, level=level):
--> 300                 results = f(*args, **kwargs)
    301             return results
    302 

~/anaconda3/envs/pds/lib/python3.6/site-packages/dask_ml/cluster/k_means.py in _check_array(self, X)
    159         elif isinstance(X, dd.DataFrame):
    160             raise TypeError(
--> 161                 "Cannot fit on dask.dataframe due to unknown " "partition lengths."
    162             )
    163 

TypeError: Cannot fit on dask.dataframe due to unknown partition lengths.

1 Ответ

0 голосов
/ 08 октября 2018

Это теперь поддерживается на главном сервере dask-ml с https://github.com/dask/dask-ml/pull/393

Это будет включено в выпуск Dask-ML 0.10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...