Gibt es einen Klassifizierungsalgorithmus, der dem Punktcluster, dessen durchschnittliche Entfernung minimal ist, einen neuen Testvektor zuweist?
Lassen Sie es mich besser schreiben: Stellen wir uns vor, wir haben Cluster von jeweils Punkten. Für jeden Cluster k berechne ich den Durchschnitt aller Abstände zwischen und , wobei ein Punkt im Cluster .
Der Testpunkt wird dem Cluster mit einem Minimum solcher Abstände zugewiesen.
Denken Sie, dass dies ein gültiger Klassifizierungsalgorithmus ist? Theoretisch sollten wir in der Lage sein, eine gute Klassifizierungsgenauigkeit zu erzielen, wenn der Cluster "gut geformt" ist, wie Sie es nach einer linearen Fischerei-Diskriminanz-Zuordnung getan haben.
Was denkst du über dieses Algo? Ich habe es versucht, aber das Ergebnis ist, dass die Klassifizierung stark auf den Cluster mit der größten Anzahl von Elementen ausgerichtet ist.
def classify_avg_y_space(logging, y_train, y_tests, labels_indices):
my_labels=[]
distances=dict()
avg_dist=dict()
for key, value in labels_indices.items():
distances[key] = sk.metrics.pairwise.euclidean_distances(y_tests, y_train[value])
avg_dist[key]=np.average(distances[key], axis=1)
for index, value in enumerate(y_tests):
average_distances_test_cluster = { key : avg_dist[key][index] for key in labels_indices.keys() }
my_labels.append(min(average_distances_test_cluster, key=average_distances_test_cluster.get))
return my_labels