Tengo dos partes de un conjunto de datos multidimensionales, llamémoslas train
y test
. Y quiero construir un modelo basado en el conjunto de datos del tren y luego validarlo en el conjunto de datos de prueba. Se conoce el número de grupos.
Intenté aplicar el agrupamiento k-means en R y obtuve un objeto que contiene los centros de los grupos:
kClust <- kmeans(train, centers=N, nstart=M)
¿Existe una función en R que tome los centros de los grupos que se encontraron y asigne grupos a mi conjunto de datos de prueba?
¿Cuáles son los otros métodos / algoritmos que puedo probar?
r
clustering
k-means
usuario2598356
fuente
fuente
Respuestas:
Puede calcular las asignaciones de clúster para un nuevo conjunto de datos con la siguiente función:
o puede usar el paquete flexclust , que tiene un
predict
método implementado para k-means:Hay también métodos de conversión para convertir los resultados de las funciones de racimo como
stats::kmeans
ocluster::pam
a objetos de la clasekcca
y viceversa:fuente
stepFlexclust
función ejecuta algoritmos de agrupación repetidamente para diferentes números de agrupaciones y devuelve el mínimo dentro de la solución de distancia de agrupación para cada una.Paso 1: una función que calcula la distancia entre un vector y cada fila de una matriz
Paso 2: una función que aplica la computadora vec2mat a cada fila de input_matrix
paso 3. aplicar la función mat2mat
etapa 4. Opcionalmente, use plyr :: ddply y doMC para paralelizar mat2mat para grandes conjuntos de datos
fuente