Eu tenho uma pergunta muito básica sobre clustering. Depois de encontrar k clusters com seus centróides, como faço para interpretar as classes dos pontos de dados que agrupei (designando rótulos de classe significativos para cada cluster). Não estou falando da validação dos clusters encontrados.
Pode ser feito com base em um pequeno conjunto de pontos de dados rotulados, para calcular a qual cluster esses pontos rotulados pertencem e com base no tipo e número de pontos que cada cluster recebe, decidir o rótulo? Isso parece bastante óbvio, mas não sei como é padrão atribuir rótulos a clusters dessa maneira.
Para ser claro, desejo executar um cluster não supervisionado que não use nenhum rótulo para encontrar primeiro meus clusters. Depois de encontrar os clusters, desejo atribuir rótulos de classe significativos aos clusters com base nas propriedades de alguns exemplos de pontos de dados.
Respostas:
Sim. O que você propõe é totalmente padrão e é a maneira como o software k-means padrão funciona automaticamente. No caso de k-significa, você calcula a distância euclidiana entre cada observação (ponto de dados) e a média de cada cluster (centróide) e atribui as observações ao cluster mais semelhante. Em seguida, o rótulo do cluster é determinado examinando as características médias das observações classificadas no cluster em relação às médias daquelas em relação aos outros clusters.
fonte
Se você olhar para os nomes no seu objeto kmeans, notará que há um objeto "cluster". Ele contém os rótulos de classe ordenados da mesma forma que os dados de entrada. Aqui está um exemplo simples que vincula os rótulos do cluster aos seus dados.
fonte
Os rótulos para o cluster podem se basear na classe de amostras majoritárias dentro de um cluster. Mas isso é verdade apenas se o número de clusters for igual ao número de classes.
fonte