Я использовал kmeans для кластеризации некоторых изображений полярных графов в несколько кластеров. но формат данных, который я использовал, - это наборы функций повторной сети, и каждый из этих наборов функций представляет собой длинный список целых чисел. Я думаю, это означает, что мои данные имеют много измерений. В случае двух деменций я знаю, что мы используем эти два как x и y и разбрасываем результаты. Но как я могу представить эти данные, когда у меня есть около 100 чисел в каждом из них.
Я просто использовал эту строку кода для кластеризации своих данных.
kmeans = KMeans(n_clusters=7, random_state=0).fit(new_array)
и изображения сгруппированыв число кластеров я дал это. некоторые кластеры выглядят почти одинаково, а некоторые имеют изображения, которые имеют очень четкие различия, я пытаюсь понять, как алгоритм отличает эти изображения друг от друга
- это код, который я использовал для генерации наборов функций повторной сети.
def extract_vector(path):
resnet_feature_list = []
count = 0
image_list = []
print("starting...")
l = len(glob.glob(path))
for im in glob.glob(path):
name = im.rsplit(".", 1)[0]
name = name.rsplit("\\", 1)[1]
image_list.append(name)
im = cv2.imread(im)
im = cv2.resize(im, (224, 224))
img = preprocess_input(np.expand_dims(im.copy(), axis=0))
resnet_feature = my_new_model.predict(img)
resnet_feature_np = np.array(resnet_feature)
resnet_feature_list.append(resnet_feature_np.flatten())
count = count+1
print(name, " - (", count, "/", l, ")")
json.dump(image_list,
codecs.open("resnet50_image_name_list-10-11.json", 'w', encoding='utf-8'))
json.dump(np.array(resnet_feature_list).tolist(),
codecs.open("resnet50_image_feature_list-10-11.json", 'w', encoding='utf-8'))
return np.array(resnet_feature_list)