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?
Respostas:
Então, você foi informado de que precisa de uma medida de distância apropriada. Aqui estão alguns leads:
e, claro: distância de Mahalanobis .
fonte
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.
fonte
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!
fonte
If you are comfortable working with a distance matrix of size
num_of_samples x num_of_samples
, you could userandom 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 aninter-sample distance matrix
, on which you could test your favorite clustering algorithm.fonte
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.
fonte