Algoritmo per la generazione di regole di classificazione


11

Quindi abbiamo il potenziale per un'applicazione di machine learning che si adatta abbastanza bene al tradizionale dominio problematico risolto dai classificatori, cioè abbiamo un insieme di attributi che descrivono un elemento e un "secchio" in cui finiscono. Tuttavia, piuttosto che creare modelli di probabilità come in Naive Bayes o classificatori simili, vogliamo che il nostro output sia un insieme di regole leggibili dall'uomo che possono essere riviste e modificate da un utente finale.

L'apprendimento delle regole di associazione assomiglia alla famiglia di algoritmi che risolve questo tipo di problema, ma questi algoritmi sembrano concentrarsi sull'identificazione di combinazioni comuni di funzionalità e non includono il concetto di bucket finale a cui tali funzionalità potrebbero indicare. Ad esempio, il nostro set di dati è simile al seguente:

Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big,   steel } => { truck }
Item C { 2-door, small, steel } => { coupe }

Voglio solo le regole che dicono "se è grande e un 2 porte, è un camion", non le regole che dicono "se è un 4 porte è anche piccolo".

Una soluzione alternativa che mi viene in mente è quella di utilizzare semplicemente algoritmi di apprendimento delle regole di associazione e ignorare le regole che non comportano un end bucket, ma sembra un po 'confuso. Ho perso qualche famiglia di algoritmi là fuori? O forse sto affrontando il problema in modo errato per cominciare?

Risposte:


9

Il C45 realizzato da Quinlan è in grado di produrre regole per la previsione. Controlla questa pagina di Wikipedia . So che in Weka il suo nome è J48. Non ho idea di quali siano le implementazioni in R o Python. Ad ogni modo, da questo tipo di albero decisionale dovresti essere in grado di inferire le regole per la previsione.

Modifica successiva

Inoltre potresti essere interessato agli algoritmi per inferire direttamente le regole per la classificazione. RIPPER è uno, che di nuovo a Weka ha ricevuto un altro nome JRip. Vedi l'articolo originale di RIPPER: Fast Effective Rule Induction, WW Cohen 1995


Avevo sperimentato C45 / J48 in un precedente progetto. Non mi rendevo conto che c'erano regole che potevo recuperare da esso. Controllerò anche RIPPER. Grazie!
super_seabass

Dai

Volevo fornire un aggiornamento per questa domanda / risposta: abbiamo usato JRip con un certo successo, ma il nostro nuovo contendente principale è FURIA ( cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs/… ). Sta generando le migliori regole per la revisione / l'uso umano perché cerca di generare un set di regole esaustivo. JRip crea buone regole, ma ha una regola "predefinita" per la classificazione quando non si applicano altre regole. I bucket predefiniti non funzionano bene nel contesto aziendale del nostro progetto, abbiamo bisogno di regole esaustive.
super_seabass,

7

In realtà è ancora più semplice di quello, da quello che descrivi --- stai solo cercando un algoritmo di albero di classificazione di base (quindi non c'è bisogno di varianti leggermente più complesse come C4.5 che sono ottimizzate per l'accuratezza della previsione). Il testo canonico è:

http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

Questo è facilmente implementato in R:

http://cran.r-project.org/web/packages/tree/tree.pdf

e Python:

http://scikit-learn.org/stable/modules/tree.html


Non sono d'accordo che gli alberi siano di aiuto qui. È una questione di regole di filtraggio, e ciò può essere ottenuto con il pacchetto arules in R.
adesantos


1

Dovresti provare il pacchetto arules in R. Ti permette di creare non solo le regole di associazione ma anche di specificare la lunghezza di ogni regola, l'importanza di ogni regola e anche di poterle filtrare, che è quello che stai cercando (prova il comando rhs () di questo pacchetto).

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.