¿Existe algún algoritmo de clasificación que asigne un nuevo vector de prueba al clúster de puntos cuya distancia media sea mínima?
Déjenme escribirlo mejor: Imaginemos que tenemos $K$ grupos de $T_k$ puntos cada uno. Para cada cluster k, calculo la media de todas las distancias entre $x(0)$ y $x(i)$ , donde $x(i)$ es un punto de la agrupación $k$ .
El punto de prueba se asigna al clúster con el mínimo de esas distancias.
¿Cree que es un algoritmo de clasificación válido? En teoría, si los clústeres están "bien formados" como los que se tienen después de un mapeo discriminante lineal, deberíamos ser capaces de tener una buena precisión de clasificación.
¿Qué opinas de este algo? Lo he intentado, pero el resultado es que la clasificación está fuertemente sesgada hacia el clúster con el mayor número de elementos.
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
0 votos
Se llama asignación. Cualquier función de distancia entre un punto y una clase - función de enlace (véase stats.stackexchange.com/a/217742/3277 ) se puede utilizar, no sólo entre la vinculación media lo que está utilizando. He implementado una función para SPSS que hace la asignación por varias funciones de enlace.