Come faccio a sapere se il mio algoritmo di clustering k-dire soffre della maledizione della dimensionalità?


12

Credo che il titolo di questa domanda dica tutto.


3
Penso che dovrai chiarirci cosa intendi con un sintomo.
mdewey,

Se "sintomo" è una versione di "test" esente da mano, allora forse potresti prendere dei sottocampioni del tuo set di dati - forse il 66% della dimensione del campione, eseguire l'analisi (kmean, nel tuo caso), e poi vedere come è nervoso i risultati sono. Ad esempio, è possibile vedere la frequenza con cui determinate osservazioni vengono assegnate allo stesso cluster. Inoltre, potrebbe non valere la pena. Se sei preoccupato per la possibilità di un problema di dimensionalità, è probabile che tu ne abbia uno. Potresti prendere in considerazione altri approcci di clustering che riducono in qualche modo la dimensionalità.
generic_user

@generic_user se quel commento fosse una risposta, lo considererei una risposta accettata :)
mathieu

1
Questa domanda è abbastanza chiara per rimanere aperta, IMO.
gung - Ripristina Monica

1
Abbastanza spesso, si incontrano problemi molto più gravi di k-medie prima della "maledizione della dimensionalità". k-mean può lavorare su 128 dati dimensionali (ad es. vettori di colore SIFT) se gli attributi sono di buona natura. In una certa misura, a volte può persino funzionare su dati di testo a 10000 dimensioni. Il modello teorico della maledizione non vale mai per i dati reali. I problemi più grandi sono caratteristiche incomparabili, scarsità e incapacità di visualizzare e ricontrollare il risultato.
Ha QUIT - Anony-Mousse

Risposte:


18

Aiuta a pensare a cosa sia The Curse of Dimensionality . Ci sono molti ottimi thread su CV che vale la pena leggere. Ecco un punto di partenza: spiega a "un bambino la maledizione della dimensionalità" .

Noto che sei interessato a come questo si applica al clustering di -means. Vale la pena sapere che -means è una strategia di ricerca per minimizzare (solo) la distanza euclidea quadrata. Alla luce di ciò, vale la pena pensare a come la distanza euclidea si collega alla maledizione della dimensionalità (vedi: Perché la distanza euclidea non è una buona metrica in alte dimensioni? ). kkk

La risposta breve di questi thread è che il volume (dimensione) dello spazio aumenta a un ritmo incredibile rispetto al numero di dimensioni. Anche dimensioni (che non mi sembrano molto "high-dimensionali") possono provocare la maledizione. Se i tuoi dati sono stati distribuiti uniformemente in quello spazio, tutti gli oggetti diventano approssimativamente equidistanti l'uno dall'altro. Tuttavia, come osserva Anony-Mousse nella sua risposta a questa domanda, questo fenomeno dipende da come i dati sono disposti all'interno dello spazio; se non sono uniformi, non hai necessariamente questo problema. Ciò porta alla domanda se i dati ad alta dimensione distribuiti uniformemente siano molto comuni (vedi: la "maledizione della dimensionalità" esiste davvero nei dati reali? ). 10

Direi che ciò che conta non è necessariamente il numero di variabili (la dimensionalità letterale dei tuoi dati), ma l'effettiva dimensionalità dei tuoi dati. Partendo dal presupposto che dimensioni siano "troppo alte" per i mezzi , la strategia più semplice sarebbe quella di contare il numero di funzioni che hai. Ma se volessi pensare in termini di effettiva dimensionalità, potresti eseguire un'analisi dei componenti principali (PCA) e osservare come gli autovalori diminuiscono. È abbastanza comune che la maggior parte della variazione esista in un paio di dimensioni (che in genere attraversano le dimensioni originali del set di dati). Ciò implicherebbe che è meno probabile che tu abbia un problema con i mezzi nel senso che la tua effettiva dimensionalità è in realtà molto più piccola. k k10kk

Un approccio più coinvolto sarebbe quello di esaminare la distribuzione delle distanze a coppie nel set di dati secondo le linee @ hxd1011 suggerite nella sua risposta . Guardare semplici distribuzioni marginali ti darà qualche indizio sulla possibile uniformità. Se si normalizzano tutte le variabili in modo che rientrino nell'intervallo , le distanze a coppie devono trovarsi nell'intervallo . Le distanze altamente concentrate causeranno problemi; d'altra parte, una distribuzione multimodale può essere promettente (puoi vedere un esempio nella mia risposta qui: Come usare insieme variabili sia binarie che continue nel clustering? ).[ 0 , [0, 1][0, D]

Tuttavia, se -means "funzionerà" è ancora una domanda complicata. Partendo dal presupposto che ci siano raggruppamenti latenti significativi nei tuoi dati, non necessariamente esistono in tutte le tue dimensioni o in dimensioni costruite che massimizzano la variazione (cioè i componenti principali). I cluster potrebbero trovarsi nelle dimensioni con variazioni inferiori (vedere: Esempi di PCA in cui i PC con bassa varianza sono "utili" ). Cioè, potresti avere cluster con punti vicini e ben separati tra su solo alcune delle tue dimensioni o su PC a variazione inferiore, ma non sono remotamente simili su PC ad alta variazione, il che causerebbe -means per ignorare i cluster che cerchi e selezionare invece i cluster finti (alcuni esempi sono disponibili qui:kkkCome comprendere gli svantaggi di K-significa ).


Si scopre che esiste già un tag per l' apprendimento multiplo (avrebbe dovuto guardare prima!). Riassumendo per coloro che potrebbero non saperlo, l'idea è che mentre i dati ad alta dimensione tendono ad essere sparsi in termini di spazio intero, possono essere densi su qualche superficie interna all'interno di quello spazio.
GeoMatt22,

+1 per la risposta eccellente. Potresti per favore elaborare un po 'di più sulla parte degli autovalori? Se la dimensionalità effettiva è ridotta, allora mi consiglia di fare PCA e conservare solo i primi punteggi con autovalori elevati?
DataD'oh,

@ DataD'oh, questa è certamente una possibilità, ma quello che sto dicendo è che non è necessario farlo. In effetti, i dati non sono ad alta dimensione (quando solo i primi autovettori hanno autovalori elevati), quindi non è necessario necessariamente fare nulla: la maledizione della dimensionalità non si applica.
gung - Ripristina Monica

@gung Ho pubblicato una nuova domanda . Spero non sia troppo banale.
DataD'oh,

7

La mia risposta non è limitata a K significa, ma controlla se abbiamo maledizione della dimensionalità per qualsiasi metodo basato sulla distanza. K-medie si basa su una misura della distanza (ad esempio, la distanza euclidea)

Prima di eseguire l'algoritmo, possiamo verificare la distribuzione della metrica della distanza, ovvero tutte le metriche della distanza per tutte le coppie di dati. Se hai punti dati, dovresti avere metriche di distanza . Se i dati sono troppo grandi, possiamo verificarne un campione.0,5 N ( N - 1 )N0.5N(N1)

Se abbiamo la maledizione del problema della dimensionalità, quello che vedrai è che questi valori sono molto vicini tra loro. Questo sembra molto intuitivo, perché significa che ognuno è vicino o lontano da ognuno e che la misura della distanza è sostanzialmente inutile.


Ecco alcune simulazioni per mostrarti risultati così controintuitivi. Se tutte le funzionalità sono distribuite uniformemente e se ci sono troppe dimensioni, tutte le metriche della distanza devono essere vicine a , che proviene da . Sentiti libero di cambiare la distribuzione uniforme in altre distribuzioni. Ad esempio, se passiamo alla distribuzione normale (cambia in ), converrà in un altro numero con dimensioni di numeri grandi. 1 x i = 0 1 x j = 0 (xi-xj)2dxidxj16xi=01xj=01(xixj)2dxidxjrunifrnorm

Ecco la simulazione per dimensione da 1 a 500, le caratteristiche sono distribuzione uniforme da 0 a 1.

plot(0, type="n",xlim=c(0,0.5),ylim=c(0,50))
abline(v=1/6,lty=2,col=2)
grid()

n_data=1e3
for (p in c(1:5,10,15,20,25,50,100,250,500)){
    x=matrix(runif(n_data*p),ncol=p)
    all_dist=as.vector(dist(x))^2/p
    lines(density(all_dist))
}

inserisci qui la descrizione dell'immagine


1
Che cos'è ? P
amoeba,

1
Avevo votato a causa di una dimostrazione del fenomeno del restringimento euclideo in dimensioni elevate. Ma la risposta non dimostra una sofferenza di k-significa raggruppare dalla maledizione. La sofferenza implicherebbe che in dimensioni elevate cluster ragionevolmente ben separati (e dati casuali non uniformi come i tuoi) potrebbero non essere scoperti con successo come in dimensioni ridotte. Non hai toccato questo argomento.
ttnphns,

@amoeba è il numero di dimensioni. Esaminerò la trama e aggiungerò il codice. Grazie. P
Haitao Du,

@ttnphns grazie per il tuo commento e voto positivo. Vedrò se posso aggiungere un paragrafo per discutere l'impatto su k significa.
Haitao Du,
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.