Selezione delle funzionalità per problemi di clustering


9

Sto cercando di raggruppare insieme diversi set di dati utilizzando algoritmi non supervisionati (clustering). Il problema è che ho molte funzionalità (~ 500) e una piccola quantità di casi (200-300).

Finora ero solito fare solo problemi di classificazione per i quali avevo sempre etichettato i dati come set di addestramento. Lì ho usato alcuni criteri (cioè random.forest.importance o information.gain) per la preselezione delle funzioni e poi ho usato una selezione sequenziale in avanti per diversi studenti per trovare le caratteristiche rilevanti.

Ora vedo che in caso di apprendimento senza supervisione non ho né alcun criterio per la preselezione né posso usare la selezione sequenziale in avanti (almeno non nel pacchetto mlr).

Mi chiedevo se avrei potuto fare un'analisi del componente principale prima di trovare un piccolo numero di funzionalità da leggere nel mio algoritmo di clustering. O hai qualche altra idea?

Grazie

modificare:

Ok, quindi dopo alcune ricerche online posso aggiornare un po 'la mia domanda: prima di tutto ho letto alcuni articoli che scoraggiano l'uso del PCA prima degli algoritmi di clustering, per due motivi:

  • I PC sono funzioni di tutte le caratteristiche, quindi è difficile mettere in relazione il risultato con il set di dati iniziale e quindi è più difficile da interpretare

  • Inoltre, se si ha il problema che in realtà solo una minima parte delle funzionalità è utile per eseguire il clustering, non si dice che queste funzionalità descrivano anche la più grande varianza tra i campioni (che è ciò che fanno i PC)

Quindi PCA è fuori dal tavolo ...

Ora sono tornato alla mia idea iniziale di fare una selezione sequenziale in avanti per il clustering.

Quale misura delle prestazioni consiglieresti? (Ho pensato all'indice Dunn) Quale algoritmo di clustering porterebbe a cluster più o meno della stessa dimensione? (per il clustering gerarchico di solito ottengo un cluster con un singolo outlier e un altro con tutto il resto -> quindi avrei bisogno di qualcosa che protegga in qualche modo dagli outlier)

Spero che voi ragazzi mi potete aiutare ...


Le foreste casuali possono essere applicate in problemi senza supervisione. E penso che puoi ancora estrarre alcune funzionalità informative nel processo.
amanita kiki,

Risposte:


11

Ho alcuni pensieri da condividere sulla riduzione dimensionale in problemi di apprendimento senza supervisione. Nel rispondere, ho ipotizzato che il tuo interesse sia per il "high-touch", il coinvolgimento umano rispetto all'interpretazione del cluster rispetto a un approccio automatizzato, chiavi in ​​mano, scatola nera e "machine-touch" in cui l'interpretazione è deliberatamente de-enfatizzata . Se fosse quest'ultimo, perché dovresti anche porre la domanda? Inoltre, nel corso degli anni ho avuto una grande esperienza nella gestione di soluzioni cluster in una vasta gamma di ambienti aziendali, tra cui marketing B2C strategico, arene tecnologiche B2B e politiche educative (raggruppamento di studenti e scuole).

Per prima cosa, ho una domanda sul tuo commento riguardante "il raggruppamento di set di dati diversi". Non sapevo cosa intendevi con ciò o come potesse avere un impatto sull'approccio e speravo che tu potessi elaborare.

Vorrei contestare la tua ipotesi al punto 1 sopra che le soluzioni basate su PCA sono "difficili da interpretare". Le ragioni per cui anche l'esecuzione di un PCA come fase preliminare del clustering sono principalmente legate all'igiene della soluzione risultante nella misura in cui molti algoritmi di clustering sono sensibili alla ridondanza delle funzionalità. PCA riduce questa ridondanza in una manciata di componenti gestibile, minimizzando in tal modo le sfide e le difficoltà che si nota riguardo alla selezione delle funzionalità. Sebbene sia vero che i componenti emessi da un PCA offuscano la granularità e la specificità delle singole funzionalità, questo è un problema se si fa affidamento esclusivamentesu tali componenti nell'analisi dei risultati. In altre parole, non si è in alcun modo bloccati a utilizzare solo i componenti per l'interpretazione del cluster. Non solo, non devi nemmeno preoccuparti del significato delle dimensioni del fattore. Sono solo un mezzo intermedio e (alla fine) usa e getta per un fine che facilita una soluzione attuabile. Ma nel fare questo punto differisco da molti praticanti poiché i team possono, lo faranno e passeranno settimane con cura a costruire una soluzione fattoriale "significativa". Per me, questo è uno spreco inefficiente di tempo e denaro dei clienti.

A questo punto ci sarà un carico di considerazioni tecniche da affrontare. Per uno, se il tuo algoritmo PCA non è invariante per il ridimensionamento (ad esempio, OLS vs ML), allora qualsiasi soluzione PCA risultante sarà distorta, caricando più pesantemente sulle funzionalità ad alta varianza. In questi casi le tue funzionalità devono essere preelaborate o trasformate in qualche modo per appiattire questa varianza. Ci sono un gran numero di possibilità qui tra cui standardizzazione media, gamma o standardizzazione IQR, ridimensionamento ipsativo e così via. Sfrutta questa trasformazione offrendo la soluzione migliore e più interpretabile.

Una volta generata una soluzione cluster, l'interpretazione è meglio motivata (nella mia esperienza) ignorando i componenti e ripiegando le funzionalità originali insieme a qualsiasi ulteriore informazione descrittiva non direttamente utilizzata nella soluzione. A questo punto alcune euristiche sono le migliori guide per approfondimenti qualitativi. Questo può essere facile come generare un foglio di calcolo che profila i tuoi cluster in base a medie o mediane per ciascuna funzione (le righe del foglio), per ciascun cluster (le colonne) e una colonna aggiuntiva che rappresenta la media generale per il campione totale . Quindi, indicizzando le medie dei cluster per ciascuna caratteristica rispetto alla media generale (e moltiplicando per 100), viene creato un euristico che è come un punteggio del QI in quanto circa "100" è un QI "normale" o comportamento medio, gli indici di 120+ suggeriscono alte probabilità che una funzione sia "vera" sul comportamento di un cluster e gli indici di 80 o meno sono indicativi di caratteristiche "non vere" di un cluster. Questi indici di 120+ e 80 o meno sono come t-test proxy per il significato di una determinata funzionalità nel guidare la soluzione. Ovviamente, puoi eseguire test di gruppo significativi e, a seconda delle dimensioni del campione, otterrai risposte che variano in base a queste regole pratiche rapide e sporche.

Ok ... dopo tutto ciò, supponiamo che tu sia ancora contrario all'utilizzo di PCA come input diretto in un algoritmo di clustering, il problema rimane su come selezionare un set ridotto di funzionalità. La PCA può ancora essere utile qui poiché i PCA sono come eseguire una regressione senza una variabile dipendente. Le funzioni di caricamento principali su ciascun componente possono diventare input nell'algoritmo del cluster.

Per quanto riguarda il gran numero di funzioni e la dimensione del campione relativamente piccola dei dati, la regola empirica tipica in molte analisi multivariate a "informazione completa" è un minimo di circa 10 osservazioni per funzione. Esistono alcuni metodi specializzati che possono essere sfruttati per aggirare questa sfida. Ad esempio, i minimi quadrati parziali (PLS) sono stati sviluppati per la prima volta da Herman Wold nel suo libro The Emetical Empiricism del 1990 per l'uso in campi come la chemiometria che affrontano questo preciso problema. È di natura analitica dei fattori ma è molto meno rigoroso nel richiedere una grande n per generare le dimensioni. Altre soluzioni includono gli approcci casuali simili a foreste, "dividi e conquista", usati con enormi quantità di informazioni. Questi metodi sono esaminati in questo pdfhttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Ma supponi di aver deciso che non vuoi ancora avere nulla a che fare con l'analisi dei fattori e che sei pronto a eseguire una sorta di processo di selezione "sequenziale" supervisionato. A mio avviso, il problema più importante riguarda meno la ricerca di una metrica delle prestazioni post-hoc (indice di Dunn) e più l'identificazione di un proxy adatto - una variabile dipendente - per rendere possibile questo approccio. Questa decisione è interamente in funzione del tuo giudizio e dello stato delle PMI nei tuoi dati. Non ci sono "buone pratiche", risposte molto meno facili per questo e dato il modo in cui hai descritto i tuoi dati, non è una piccola sfida.

Una volta presa questa decisione, ci sono letteralmente centinaia di possibili soluzioni di selezione variabile tra cui scegliere. La selezione delle variabili è un'area tematica in cui ogni statistico e il loro fratello hanno pubblicato un articolo. Il tuo approccio preferito sembra essere la "selezione sequenziale in avanti" va bene.

Vale la pena notare che esistono modelli di apprendimento supervisionato che si ripiegano in una soluzione cluster come parte dell'algoritmo. Esempi di questo includono gli approcci ampi e altamente flessibili noti come modelli di classe latente. L'essenza dei modelli LC è che sono a due stadi: nella fase uno viene definito un DV e viene costruito un modello di regressione. Nella seconda fase, qualsiasi eterogeneità nell'output residuo del modello - un singolo vettore latente - è suddivisa in "classi" latenti. C'è una panoramica della modellazione LC in questa discussione CV qui ... Dubbio sul modello logit multinomiale di classe latente

Spero che sia di aiuto.


Grazie per aver dedicato del tempo a rispondere alla mia domanda in modo così ampio. Innanzitutto è divertente che tu abbia menzionato la chemiometria perché questo è esattamente il campo su cui sto lavorando. Sto cercando di trovare gruppi nelle misure di diversi campioni e le mie caratteristiche sono segnali in uno spettro nmr. Questo è anche il motivo principale per cui ho pensato di scartare il PCA così presto, poiché l'obiettivo della mia analisi è quello di mettere in relazione i cluster con una manciata di funzionalità (segnali) reali. Non sono morto per usare una selezione sequenziale, è proprio quello che ho usato finora. Daremo un'occhiata ai link che hai dato.
JohnDoe,

Questo è divertente per la chemiometria. Il libro di Wold è una buona lettura, in generale. Che tipo di "soggetti" comprendono i campioni? E quali sono le immagini nmrs?
Mike Hunter,

I campioni sono estratti di piante acquose e prendono spettri 1H-nmr. Il mio compito è puramente esplorativo. Dovrei trovare qualsiasi cluster che vogliamo mettere in relazione con diversi genotipi in seguito o diverse caratteristiche della pianta come la resistenza alla stress da siccità, ecc. Non è facile trovare un buon punto di partenza per trovare l'insieme corretto di metaboliti / funzionalità che aiutano a dividere i cluster, in quanto vi saranno cluster diversi creati da funzionalità diverse per le diverse domande.
JohnDoe,

Pertanto, ho pensato che l'approccio sequenziale potesse funzionare meglio: - trovare un set di funzionalità per raggruppare i dati - quindi rimuovere quelle funzionalità dall'intero set e ricominciare da capo In questo modo spero di trovare diversi set di cluster a cui in seguito potrò fare riferimento le diverse domande
JohnDoe,

1
Qualcosa da considerare è il confronto di qualsiasi lavoro esplorativo con un insieme predeterminato o definito di cluster chiamato anche un'analisi cluster "di conferma". Lo suggerisco perché sembra che tu e il tuo team abbiate delle forti ipotesi in entrata sulla formazione dei cluster in funzione, ad esempio, della "resistenza allo stress da siccità" delle piante. Penso che scoprirai che il lavoro esplorativo fornirà approfondimenti e risultati superiori. Il clustering esplorativo sfrutta tutte le informazioni disponibili nei dati, mentre le regole di assegnazione "di conferma" tipicamente sfruttano una manciata di funzioni relative
Mike Hunter,

1

Tutto ciò che serve è un criterio per la qualità del clustering. Ecco l'idea: dividi i dati su train e test, costruisci il clustering sulla parte train; utilizzare questo clustering per raggruppare ciascuno degli elementi del set di test (dal cluster più vicino); creare un cluster separato sul set di test; trova la somiglianza del clustering nel test con il clustering previsto. Questa somiglianza è il criterio di qualità del clustering. Ora, come misurare questa somiglianza dipende da te. Una volta ottenuto, si seleziona il sottoinsieme di funzionalità per massimizzare questa somiglianza.

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.