我正在尝试使用hdbscan的roximate_predict功能基于与从相似图像数据来源获得的聚类的相似性,对图像进行逐点分类。
我要聚类的数据称为X_low
我想知道我的方法是否有意义。是否可以使用这种方法基于聚类模型进行分类?
我知道本教程说:
请注意,approximate_predict()
采用了一系列新点。如果只有一点,请确保将其包装在列表中。
但是我没有明白这一点,我的数据似乎在列表中,但是仍然抛出错误。
import hdbscan
cluster_umap = hdbscan.HDBSCAN( min_samples=5,min_cluster_size=50, gen_min_span_tree=True, prediction_data=True)
clusterer = cluster_umap.fit(X_low)
#My data to be classified is simply called: data
data.shape
Out[39]: (2601, 1501)
result_image_centers = np.zeros_like(data)
nx = data.shape[0]
ny = data.shape[1]
step = 1
for i in range(0,data.shape[0],step):
for j in range(0,data.shape[1],step):
class_id, strengths=hdbscan.approximate_predict(clusterer, data[i,j])
result_image_centers[i,j]=class_id
尽管它仍然抛出一个错误:
File "/home/flavio/.local/lib/python3.6/site-packages/hdbscan/prediction.py", line 380, in approximate_predict
if points_to_predict.shape[1] != \
IndexError: tuple index out of range