Perché i dati misti sono un problema per gli algoritmi di clustering basati su euclidi?


21

La maggior parte degli algoritmi classici di riduzione del clustering e della dimensionalità (clustering gerarchico, analisi dei componenti principali, k-media, mappe autoorganizzanti ...) sono progettati specificamente per i dati numerici e i loro dati di input sono visti come punti in uno spazio euclideo.

Questo è ovviamente un problema, dato che molte domande del mondo reale riguardano dati misti: ad esempio se studiamo bus, l'altezza e la lunghezza e le dimensioni del motore saranno numeri, ma potremmo anche essere interessati al colore (variabile categorica: blu / rosso / verde ...) e classi di capacità (variabile ordinata: piccola / media / grande capacità). In particolare, potremmo voler studiare contemporaneamente questi diversi tipi di variabili.

Esistono diversi metodi per estendere gli algoritmi di clustering classico a dati misti, ad esempio utilizzando una dissomiglianza di Gower per collegare il clustering gerarchico o il ridimensionamento multidimensionale o altri metodi che prendono come input una matrice di distanza. O ad esempio questo metodo, un'estensione di SOM a dati misti.

La mia domanda è: perché non possiamo semplicemente usare la distanza euclidea su variabili miste? o perché è male farlo? Perché non possiamo semplicemente codificare fittizi le variabili categoriali, normalizzare tutte le variabili in modo che abbiano un peso simile nella distanza tra le osservazioni ed eseguire i soliti algos su queste matrici?

È davvero facile e mai fatto, quindi suppongo che sia molto sbagliato, ma qualcuno può dirmi perché? E / o mi dai qualche riferimento? Grazie


5
Puoi fare tutto ciò che ti piace con i tuoi dati per rappresentarli come punti nello spazio euclideo, ma il significato delle funzionalità potrebbe scomparire. Il problema è a livello di scala di misurazione, non a livello di spazio. La scala ordinale deve essere adeguatamente quantificata, la codifica fittizia non aiuta. La scala binaria del senso asimmetrico (presente vs assente) richiede naturalmente una metrica di distanza diversa dalla distanza euclidea; più il problema dell'interpolazione (non esiste una media sostanziale tra sì e no).
ttnphns,

(cont.) Lo spazio euclideo riguarda due cose: è continuo (a grana fine) e consente qualsiasi direzione. Non tutti i tipi di dati richiedono o accolgono un tale spazio per compensare le differenze derivanti dalla natura dei dati.
ttnphns,

Il clustering gerarchico funziona con qualsiasi tipo di somiglianza, tra l'altro. (ad eccezione di alcuni casi come Ward) - in particolare, è possibile utilizzare ad esempio il coefficiente di Jaccard che è significativo per alcuni casi categoriali / binari.
Anony-Mousse -Reststate Monica

Risposte:


5

Non si tratta di non essere in grado di calcolare qualcosa .

Le distanze sono molto utilizzate per misurare qualcosa di significativo . Questo fallirà molto prima con i dati categoriali. Se mai funziona con più di una variabile, questo è ...

Se hai gli attributi di taglia e massa corporea, anche la distanza euclidea non ha molto senso. È buono quando x, y, z sono distanze. Quindi la distanza euclidea è la distanza della linea di vista tra i punti.

Ora, se si codificano le variabili fittizie, che significato ha questo?

Inoltre, la distanza euclidea non ha senso quando i tuoi dati sono discreti.

Se esistono solo valori interi xey, la distanza euclidea produrrà comunque distanze non intere. Non si ricollegano ai dati. Allo stesso modo, per le variabili con codifica fittizia, la distanza non verrà mappata su una quantità di variabili fittizie ...

Quando quindi prevedi di utilizzare, ad esempio, il clustering k-mean, non si tratta solo di distanze, ma di calcolare la media . Ma non esiste un mezzo ragionevole per le variabili con codifica fittizia, vero?

Infine, c'è la maledizione della dimensionalità . È noto che la distanza euclidea si degrada quando si aumenta il numero di variabili. L'aggiunta di variabili con codifica fittizia significa che si perde abbastanza rapidamente il contrasto della distanza. Tutto è simile a tutto il resto, perché una singola variabile fittizia può fare la differenza.


3

Al centro di questi problemi di clustering basato su metriche c'è l'idea di interpolazione.

Prendi il metodo che hai appena citato e consideriamo una variabile continua come il peso. Hai 100 kg e hai 10 kg nei tuoi dati. Quando vedi un nuovo 99 kg, la metrica ti consentirà di avvicinarti a 100 kg, anche se non l'hai mai visto. Sfortunatamente, non esiste interpolazione per i dati discreti.

Un altro argomento per questa domanda è che non esiste un modo naturale per farlo. Vuoi assegnare 3 valori in R e renderli uguali a distanza tra ogni coppia, questo sarebbe impossibile. Se li assegni in diverse categorie ed esegui diciamo PCA, perdi le informazioni che riflettono effettivamente la stessa categoria.


1
Grazie! Comprendo il problema dell'interpolazione, ma in molte applicazioni questo non è un problema (ad es. Quando sappiamo che i bus sono verdi, rossi o blu e che nessun altro colore esiste nel nostro set di dati). E penso che ci siano modi semplici per standardizzare le variabili fittizie in modo che ogni variabile categoriale abbia un "peso" simile a quello di ogni variabile numerica (se anche le variabili numeriche fossero standardizzate in precedenza). O di assegnare arbitrariamente pesi alle diverse variabili ...
jubo

0

Un problema con i valori categorici non ordinati è che se il manichino li codifica, si forza un ordinamento e quindi un nuovo significato per le variabili. Ad esempio, se si codifica blu come 1 e arancione come 2 e verde 3, si implica che un modello di dati con valore arancione è più vicino a un modello con valore verde rispetto a quello con valore blu.

Un modo per gestirlo è renderli nuove funzionalità (colonne). Per ogni valore distinto si crea una nuova funzione binaria e la si imposta su vero / falso (in altre parole binario codifica i valori e trasforma ogni bit in una colonna). Per ogni modello di dati di questo nuovo set di funzionalità, solo una funzionalità avrà il valore 1 e tutte le altre 0. Ma questo di solito non impedisce all'algoritmo di training di assegnare valori di centroidi vicini a 1 a più di una funzionalità. Questo corso potrebbe causare problemi di interpretazione perché ciò non ha senso nel dominio dei dati.

Non si ha lo stesso problema con le "classi di capacità", vale a dire le categorie ordinate poiché in tal caso l'assegnazione dei valori numerici prende in considerazione.

E naturalmente è che usi caratteristiche di diversa natura o unità di misura o diversi intervalli di valori, quindi dovresti sempre normalizzare i valori.

/programming/19507928/growing-self-organizing-map-for-mixed-type-data/19511894#19511894

/programming/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409


Questo è ciò che intendevo per "codifica fittizia" per variabili categoriche, ma grazie. E tra l'altro non sono d'accordo con la tua affermazione sui fattori ordinati ("classi di capacità") perché non c'è modo di scegliere tra es. (1,2,3) o (1.2.100), che farebbe una differenza enorme per un algoritmo basato sulla distanza.
jubo,

0

La risposta è in realtà abbastanza semplice, dobbiamo solo capire quali sono le informazioni in una variabile fittizia. L'idea di una variabile fittizia indica la presenza o l'assenza di livelli di fattore (valori discreti di una variabile categoriale). Ha lo scopo di rappresentare qualcosa di non misurabile, non quantificabile, memorizzando le informazioni sul fatto che siano presenti o meno. Questo è il motivo per cui una variabile fittizia è espressa in cifre binarie, tanto quanto i valori discreti della variabile categoriale che rappresenta (o meno 1).

La rappresentazione dei livelli dei fattori come valori 0/1 ha senso solo in un'equazione analitica, come un modello lineare (questo è un concetto semplice per coloro che possono interpretare i coefficienti dei modelli statistici). In una variabile fittizia, le informazioni della variabile categoriale sottostante sono memorizzate nell'ordine dei bit. Quando si utilizzano quei bit come dimensioni per mappare un campione di input su uno spazio di caratteristiche (come nel caso di una matrice di somiglianza / distanza), le informazioni nell'ordine dei bit vengono completamente perse.


1
Grazie! In realtà, il mio punto è che le variabili categoriali con codifica fittizia hanno senso (un certo) senso in una distanza euclidea: se i valori sono diversi si aggiunge 2 alla distanza quadrata, in caso contrario si aggiunge 0. E si potrebbero normalizzare i manichini in diversi modi, per tenere conto del numero di categorie o delle loro probabilità.
jubo,
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.