Cluster de um conjunto de dados com variáveis ​​discretas e contínuas


33

Eu tenho um conjunto de dados X que tem 10 dimensões, 4 das quais são valores discretos. De fato, essas 4 variáveis ​​discretas são ordinais, ou seja, um valor mais alto implica uma semântica maior / melhor.

2 dessas variáveis ​​discretas são categóricas no sentido de que, para cada uma dessas variáveis, a distância, por exemplo, de 11 a 12, não é a mesma que a distância de 5 a 6. Enquanto um valor mais alto de variável implica em maior realidade, a escala é não necessariamente linear (na verdade, não está realmente definido).

Minha pergunta é:

  • É uma boa idéia aplicar um algoritmo de agrupamento comum (por exemplo, K-Means e depois Gaussian Mixture (GMM)) a esse conjunto de dados que contém variáveis ​​discretas e contínuas?

Se não:

  • Devo remover as variáveis ​​discretas e focar apenas as contínuas?
  • Devo discretizar melhor os contínuos e usar um algoritmo de agrupamento para dados discretos?

3
Você precisa encontrar uma boa medida de distância (geralmente a tarefa mais difícil no armazenamento em cluster): se você puder encontrar uma medida de distância que descreva correta e com precisão o quão semelhantes (ou não) seus itens de dados são, não deverá ter nenhum problema.
10133 Andrew

Falando sobre essas duas variáveis ​​categóricas, você as descreveu como ordinais. Agora, o que há com as duas variáveis ​​"ordinais" restantes? Como eles são diferentes deles?
ttnphns

Eles também são discretos, mas ambos têm uma função de distância significativa, ou seja, são baseados em intervalos (se eu não estiver alterando a definição de intervalo).
Ptikobj

Respostas:


14

7

Eu tive que lidar com esse tipo de problema no passado e acho que poderia haver duas abordagens interessantes:

  • Continuousification: transform symbolic attributes with a sequence of integers. There are several ways to do this, all of which described in this paper. You can try NBF, VDM and MDV algorithms.

  • Discretização: transforme atributos contínuos em valores simbólicos. Novamente, muitos algoritmos e uma boa palestra sobre isso seriam este artigo . Acredito que o método mais usado é o 1R de Holte, mas a melhor maneira de saber com certeza é olhar as curvas ROC contra algoritmos como EWD, EFD, ID, LD ou NDD.

Depois de ter todos os seus recursos no mesmo espaço, ele se torna um problema comum de cluster.

A escolha entre a continuação ou a discretização depende do seu conjunto de dados e da aparência de seus recursos, por isso é um pouco difícil de dizer, mas aconselho você a ler os artigos que forneci sobre esse tópico.


4

K-means obviously doesn't make any sense, as it computes means (which are nonsensical). Same goes for GMM.

You might want to try distance-based clustering algorithms with appropriate distance functions, for example DBSCAN.

The main challenge is to find a distance function!

While you could put a different distance function into k-means, it will still compute the mean which probably doesn't make much sense (and probably messes with a distance function for discrete values).

Anyway, first focus on define what "similar" is. Then cluster using this definition of similar!


2

If you are comfortable working with a distance matrix of size num_of_samples x num_of_samples, you could use random forests, as well.

Click here for a reference paper titled Unsupervised learning with random forest predictors.

The idea is creating a synthetic dataset by shuffling values in the original dataset and training a classifier for separating both. During classification you will get an inter-sample distance matrix, on which you could test your favorite clustering algorithm.


-2

Mixed approach to be adopted: 1) Use classification technique (C4.5 decision tree) to classify the data set into 2 classes. 2) Once it is done, leave categorical variables and proceed with continuous variables for clustering.


I could not follow your suggestion. Which two classes, and how will that help?
KarthikS

I think what Swapnil Soni needs to say is that once we use the classification technique to classify it into two class. We can then use the label of classification output as a binary variable. So instead of all the categorical variable you get an indicative binary variable and then your clustering algorithm can proceed with the data ( consisting of all continuous plus 1 binary variable). My interpretation can be wrong though.
Tusharshar

perfectly fine!
Swapnil Soni
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.