你能在 dask 数组上使用 dask_ml kmeans 吗?
Can you use dask_ml kmeans on a dask array?
我有以下代码:
feature_array = da.concatenate(features, axis=1)#.compute()
model = KMeans(n_clusters=4)
model.fit(features, y=None)
现在,如果我首先计算 feature_array,这段代码 运行 就可以了,但如果没有它,它会给出一些我无法真正理解的内部类型错误:
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 的主要原因是我希望此代码能够 运行 处理大于内存的数据集。
干杯,
弗洛里安
对我来说没问题
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 数组。
我有以下代码:
feature_array = da.concatenate(features, axis=1)#.compute()
model = KMeans(n_clusters=4)
model.fit(features, y=None)
现在,如果我首先计算 feature_array,这段代码 运行 就可以了,但如果没有它,它会给出一些我无法真正理解的内部类型错误:
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 的主要原因是我希望此代码能够 运行 处理大于内存的数据集。
干杯, 弗洛里安
对我来说没问题
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 数组。