Eu tenho duas partes de um conjunto de dados multidimensionais, vamos chamá-los train
e test
. E quero criar um modelo com base no conjunto de dados do trem e validá-lo no conjunto de dados de teste. O número de clusters é conhecido.
Tentei aplicar o agrupamento k-means no R e obtive um objeto que contém os centros de clusters:
kClust <- kmeans(train, centers=N, nstart=M)
Existe uma função no R que pega os centros de clusters encontrados e atribui clusters ao meu conjunto de dados de teste?
Quais são os outros métodos / algoritmos que posso tentar?
r
clustering
k-means
user2598356
fonte
fonte
Respostas:
Você pode calcular as atribuições de cluster para um novo conjunto de dados com a seguinte função:
ou você pode usar o pacote flexclust , que possui um
predict
método implementado para k-means:Também existem métodos de conversão para converter os resultados de funções de cluster como
stats::kmeans
oucluster::pam
em objetos de classekcca
e vice-versa:fonte
stepFlexclust
função executa algoritmos de clustering repetidamente para diferentes números de clusters e retorna a solução mínima dentro da distância do cluster para cada um.step1: uma função que calcula a distância entre um vetor e cada linha de uma matriz
etapa 2: uma função que aplica o computador vec2mat a todas as linhas do input_matrix
etapa 3. aplique a função mat2mat
Passo 4. Opcionalmente, use plyr :: ddply e doMC para paralelizar mat2mat para grandes conjuntos de dados
fonte