Clustering di un set di dati con variabili sia discrete che continue


33

Ho un set di dati X che ha 10 dimensioni, 4 delle quali sono valori discreti. In effetti, quelle 4 variabili discrete sono ordinali, ovvero un valore più alto implica un semantico più alto / migliore.

2 di queste variabili discrete sono categoriche nel senso che per ciascuna di queste variabili, la distanza, ad esempio da 11 a 12, non è uguale alla distanza da 5 a 6. Mentre un valore di variabile superiore implica un valore più elevato nella realtà, la scala è non necessariamente lineare (in realtà, non è veramente definito).

La mia domanda è:

  • È una buona idea applicare un algoritmo di clustering comune (ad es. K-Means e Gaussian Mixture (GMM)) a questo set di dati che contiene variabili sia discrete che continue?

Altrimenti:

  • Devo rimuovere le variabili discrete e concentrarmi solo su quelle continue?
  • Dovrei discretizzare meglio quelli continui e utilizzare un algoritmo di clustering per dati discreti?

3
Devi trovare una buona misura della distanza (spesso il compito più difficile nel raggruppamento): se riesci a trovare una misura della distanza che descriva correttamente e accuratamente quanto sono simili (o meno) i tuoi elementi di dati, non dovresti avere problemi.
Andrew,

Parlando di quelle 2 variabili categoriali che in effetti le hai descritte come ordinali. Ora, che dire delle restanti 2 variabili "ordinali"? In che modo sono diversi da quelli?
ttnphns,

Sono anche discreti, ma entrambi hanno una funzione di distanza significativa, cioè sono basati su intervallo (se non sto incasinando la definizione di intervallo).
ptikobj,

Risposte:


14

7

In passato ho dovuto affrontare questo tipo di problema e penso che potrebbero esserci 2 approcci interessanti:

  • Continuificazione: trasforma gli attributi simbolici con una sequenza di numeri interi. Esistono diversi modi per farlo, tutti descritti in questo documento . Puoi provare gli algoritmi NBF, VDM e MDV.

  • Discretizzazione: trasforma gli attributi continui in valori simbolici. Ancora una volta, molti algoritmi e una buona lezione su questo sarebbe questo articolo . Credo che il metodo più comunemente usato sia l'1R di Holte, ma il modo migliore per conoscerlo con certezza è quello di esaminare le curve ROC rispetto ad algoritmi come EWD, EFD, ID, LD o NDD.

Una volta che hai tutte le funzionalità nello stesso spazio, diventa un normale problema di clustering.

La scelta tra continuazione o discretizzazione dipende dal set di dati e dall'aspetto delle funzionalità, quindi è un po 'difficile da dire, ma ti consiglio di leggere gli articoli che ti ho dato su quell'argomento.


4

K-significa ovviamente non ha alcun senso, in quanto calcola i mezzi (che sono privi di senso). Lo stesso vale per GMM.

Potresti provare algoritmi di clustering basati sulla distanza con funzioni di distanza appropriate, ad esempio DBSCAN.

La sfida principale è trovare una funzione di distanza!

Sebbene tu possa inserire una diversa funzione di distanza in k-medie, calcolerà comunque la media che probabilmente non ha molto senso (e probabilmente fa confusione con una funzione di distanza per valori discreti).

Ad ogni modo, il primo obiettivo è definire cosa sia "simile" . Quindi cluster usando questa definizione di similar!


2

Se ti senti a tuo agio a lavorare con una matrice di distanza di dimensioni num_of_samples x num_of_samples, puoi anche usare random forests.

Fai clic qui per un documento di riferimento intitolato Unsupervised learning with random forest predictors.

L'idea è quella di creare un set di dati sintetico in base ai shufflingvalori nel set di dati originale e addestrare un classificatore per separarli entrambi. Durante la classificazione otterrai un oggetto inter-sample distance matrixsu cui testare il tuo algoritmo di clustering preferito.


-2

Approccio misto da adottare: 1) Utilizzare la tecnica di classificazione (albero decisionale C4.5) per classificare il set di dati in 2 classi. 2) Una volta fatto, lascia variabili categoriche e procedi con variabili continue per il clustering.


Non ho potuto seguire il tuo suggerimento. Quali due classi e come sarà d'aiuto?
KarthikS,

Penso che Swapnil Soni debba dire che una volta usata la tecnica di classificazione per classificarla in due classi. Possiamo quindi utilizzare l'etichetta dell'output della classificazione come variabile binaria. Quindi invece di tutte le variabili categoriali ottieni una variabile binaria indicativa e quindi il tuo algoritmo di clustering può procedere con i dati (costituiti da tutte le variabili binarie continue più 1). La mia interpretazione può essere sbagliata però.
Tusharshar,

perfettamente bene!
Swapnil Soni,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.