我需要这里的群集帮助。我需要理解集合中变量的分组,所以我做了以下几点:
"ValueError: data type not understood"
错误。我做错了什么?这是代码 -
print ('Minimum value is {0}, maximum is {1}'.format(min_value, max_value))
for position in range(0, len(sub_set)):
sub_set[position] = (sub_set[position] - min_value)/(max_value - min_value)
data = np.array(sub_set)
print (type(data))
print len(data)
bandwidth = estimate_bandwidth(data, quantile=0.2, n_samples=len(data))
问Matvey
答案 0 :(得分:1)
对于一维数据,通过聚类获得的收益很少。相反,使用核密度估计或利用数据有序性的类似方法。
因为meanshift,DBSCAN等是针对多变量数据而设计的,所以他们期望多维矩阵,但是你给出的是一维矩阵。使用reshape
来解决此问题。
一般情况下,了解您的API - 您可以更有效地使用numpy
,首先将数据转换为numpy,然后执行 vectorized中的所有其他操作 em> form。
data = numpy.array(data)
data = (data - data.min()) / data.ptp() # Scale to 0:1
dens = gaussian_kde(data).evaluate(data)
将产生数据中每个点的密度估计值。尝试将此数据拆分为此密度估计值的局部最小值。
查看数据的此曲线:
plot(gaussian_kde(data).evaluate(np.linspace(data.min(),data.max())))
在局部最小值处拆分会产生所需的结果吗?