gpt4 book ai didi

python - scikit learn (python) 中的 Meanshift 不理解数据类型

转载 作者:行者123 更新时间:2023-11-30 09:02:11 26 4
gpt4 key购买 nike

我有一个包含7265 个样本132 个特征的数据集。我想使用 scikit learn 的meanshift 算法,但遇到了这个错误:

Traceback (most recent call last):
File "C:\Users\OJ\Dropbox\Dt\Code\visual\facetest\facetracker_video.py", line 130, in <module>
labels, centers = getClusters(data,clusters)
File "C:\Users\OJ\Dropbox\Dt\Code\visual\facetest\facetracker_video.py", line 34, in getClusters
ms.fit(np.array(dataarray))
File "C:\python2.7\lib\site-packages\sklearn\cluster\mean_shift_.py", line 280, in fit
cluster_all=self.cluster_all)
File "C:\python2.7\lib\site-packages\sklearn\cluster\mean_shift_.py", line 137, in mean_shift
nbrs = NearestNeighbors(radius=bandwidth).fit(sorted_centers)
File "C:\python2.7\lib\site-packages\sklearn\neighbors\base.py", line 642, in fit
return self._fit(X)
File "C:\python2.7\lib\site-packages\sklearn\neighbors\base.py", line 180, in _fit
raise ValueError("data type not understood")
ValueError: data type not understood

我的代码:

dataarray = np.array(data)
bandwidth = estimate_bandwidth(dataarray, quantile=0.2, n_samples=len(dataarray))
ms = MeanShift(bandwidth=bandwidth, bin_seeding=True)
ms.fit(dataarray)
labels = ms.labels_
cluster_centers = ms.cluster_centers_

如果我检查数据变量的数据类型,我会看到:

print isinstance( dataarray, np.ndarray )
>>> True

带宽为 0.925538333061,dataarray.dtypefloat64

我正在使用 scikit learn 0.14.1

我可以与 sci-kit 中的其他算法进行聚类(尝试过 kmeans 和 dbscan)。我做错了什么?

<小时/>

编辑:

数据可以在这里找到:(泡菜格式):http://ojtwist.be/datatocluster.p和:http://ojtwist.be/datatocluster.npz

最佳答案

这是 scikit 项目中的一个错误。据记录here .

在拟合过程中有一个 float -> int 转换,在某些情况下可能会崩溃(通过将种子点放置在箱的角落而不是中心)。链接中有一些代码可以解决该问题。

如果您不想接触 scikit 代码(并保持代码与其他机器之间的兼容性),我建议您在将数据传递给 MeanShift 之前对其进行标准化。

试试这个:

>>>from sklearn import preprocessing
>>>data2 = preprocessing.scale(dataarray)

然后在代码中使用 data2 。它对我有用。

如果您不想使用任何一个解决方案,那么这是为该项目做出贡献的绝佳机会,可以使用该解决方案提出拉取请求:)

编辑:您可能希望保留信息以“缩小”均值漂移的结果。因此,使用 StandardScaler对象,而不是使用函数来缩放。

祝你好运!

关于python - scikit learn (python) 中的 Meanshift 不理解数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com