Можете ли вы использовать dask_ml kmeans в массиве dask? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующий код:

feature_array = da.concatenate(features, axis=1)#.compute()
model = KMeans(n_clusters=4)
model.fit(features, y=None)

Теперь, если я сначала вычисляю feature_array, этот код работает просто отлично, но без него он дает некоторую внутреннюю ошибку TypeError, которую я не могу понять:

File "/Users/(...)/lib/python3.7/site-packages/dask_ml/utils.py", line 168, in check_array
    sample = np.ones(shape=shape, dtype=array.dtype)
  File "/Users/(...)/lib/python3.7/site-packages/numpy/core/numeric.py", line 207, in ones
    a = empty(shape, dtype, order)
TypeError: 'float' object cannot be interpreted as an integer

Разве я не должен использовать массив dask с dask_ml? Основная причина, по которой я хочу использовать dask_ml, заключается в том, что я хочу, чтобы этот код мог работать с наборами данных, превышающими объем памяти.

Приветствия, Флориан

1 Ответ

1 голос
/ 23 февраля 2020

У меня все работает нормально

In [1]: from dask_ml.cluster import KMeans                                      

In [2]: import dask.array as da                                                 

In [3]: x = da.random.random((10, 3))                                           

In [4]: k = KMeans(n_clusters=3)                                                

In [5]: k.fit(x)                                                                
Out[5]: 
KMeans(algorithm='full', copy_x=True, init='k-means||', init_max_iter=None,
       max_iter=300, n_clusters=3, n_jobs=1, oversampling_factor=2,
       precompute_distances='auto', random_state=None, tol=0.0001)

Я рекомендую предоставить MCVE

Кроме того, вы предоставляете массив Numpy, а не массив Dask .

...