2013-02-24 17 views
6

Ho bisogno di trovare le classi di sostantivi presenti in natura in base alla loro distribuzione con preposizione diversa (come agente, strumentale, tempo, luogo ecc.). Ho provato ad usare k-means clustering ma di meno aiuto, non ha funzionato bene, c'era molta sovrapposizione tra le classi che stavo cercando (probabilmente a causa della forma non globulare delle classi e dell'inizializzazione casuale in k-means).Stima dei parametri in DBSCAN

Attualmente sto lavorando all'utilizzo di DBSCAN, ma non riesco a capire il valore di epsilon e il valore dei mini punti in questo algoritmo di clustering. Posso usare valori casuali o ho bisogno di calcolarli. Qualcuno può aiutare. In particolare con epsilon, almeno come calcolarlo se ne ho bisogno.

risposta

6

Utilizzare la conoscenza del dominio per scegliere i parametri. Epsilon è un raggio. Si può pensare ad una dimensione minima del cluster.

Ovviamente i valori casuali non funzioneranno molto bene. Come euristico, puoi provare a guardare una trama di k-distanza; ma non è automatico neanche.

La prima cosa da fare in ogni caso è scegliere una funzione di distanza adeguata per i dati. E eseguire la normalizzazione appropriata.

Per quanto riguarda "minPts", dipende nuovamente dai dati e ha bisogno di. Un utente può desiderare un valore molto diverso da un altro. E naturalmente minPts e Epsilon sono accoppiati. Se si duplica epsilon, sarà necessario aumentare di 2 volte il numero minimo (per la distanza euclidea, perché aumenta il volume di un'ipersfera!)

Se si desidera un gran numero di cluster piccoli e dettagliati, scegliere un piccolo estratto. Se vuoi un numero maggiore e minore di cluster (e più rumore), usa un minuscolo più grande. Se non si desidera alcun cluster, scegliere minuscoli più grandi delle dimensioni del set di dati ...

+0

Non sarà in grado di dirvi i parametri qui. Devi * sperimentare *. Ma seriamente, prima prova a capire come misurare la somiglianza. Un risultato del clustering DBSCAN sarà sempre valido quanto la funzione di similarità. –

+0

Sto assumendo una struttura gerarchica nei miei dati, con 3 classi principali. Ho circa 32K punti con 15 dimensioni. Punto dati personali: nome, conteggio (prep1)/conteggio totale di un nome, conteggio (prep2)/totale ....... conteggio (prep15)/totale. Sto usando la funzione di distanza euclidea, non ho ancora provato altri. Cosa intendi per normalizzazione, come dovrei normalizzare i dati, ho già normalizzato le distribuzioni per frequenza totale di un dato nome. Un'altra domanda, relativa a k-means, posso scegliere il centroide in anticipo, dato che posso indovinare i prototipi di ogni classe data la conoscenza del mio dominio. – Riyaz