了解群集

2024-04-19 12:59:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个集群方面的帮助。我需要理解变量在集合中的分组,所以我做了以下工作:

  1. 我得到了数据并确定它是浮点型的
  2. 我使用x=(x-min)/(max-min)标准化了这些值,其中min 和max是表示数据中min和max的变量 射程
  3. 我曾经np.数组函数将其转换为numpy数组
  4. 然后我尝试使用bandwidth(使用ManShift)或DBSCAN函数来执行处理,但它会导致"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))

向马特维问好


Tags: 数据函数datalenisvaluetypenp
1条回答
网友
1楼 · 发布于 2024-04-19 12:59:41

对于一维数据,通过聚类获得的收益很小。相反,可以使用内核密度估计或类似的方法来利用数据的有序性。你知道吗

因为meanshift、DBSCAN等都是为多变量数据设计的,他们希望得到一个多维矩阵,但你给出的是一个一维矩阵。使用reshape修复此问题。你知道吗

一般来说,学习API—您可以更有效地使用numpy,方法是先将数据转换为numpy,然后以向量化的形式执行所有其他操作。你知道吗

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())))

局部极小值的分裂是否产生期望的结果?你知道吗

相关问题 更多 >