2012-09-03 6 views
5

Recentemente ho iniziato a utilizzare weka e sto cercando di classificare i tweet in positivo o negativo utilizzando Naive Bayes. Quindi ho un set di formazione con tweet a cui ho dato l'etichetta e un set di test con tweet che hanno tutti l'etichetta "positivo". Quando mi sono imbattuto Naive Bayes, ottengo i seguenti risultati:Significato di istanze classificate correttamente weka

istanze correttamente classificati: 69 92% casi erroneamente classificati: 6 8%

Poi se cambio le etichette dei tweet nel test impostato su " negativo" e corse di nuovo Naive Bayes, i risultati sono invertiti:

casi correttamente classificati: 6 8% casi erroneamente classificati: 69 92%

ho pensato che le istanze correttamente classificati mostrano la precisione del Naive Bayes e che dovrebbe essere lo stesso no importa le etichette dei tweet nel set di prova. C'è qualcosa di sbagliato nei miei dati o non capisco correttamente il significato di istanze classificate correttamente?

Grazie mille per il vostro tempo,

Nantia

risposta

5

Le etichette sul set di test dovrebbero essere la classificazione reale corretta. La prestazione è calcolata chiedendo al classificatore di dare la sua migliore ipotesi sulla classificazione per ogni istanza nel set di test. Quindi le classificazioni previste vengono confrontate con le classificazioni effettive per determinare l'accuratezza. Pertanto, se si capovolgono i valori "corretti" che gli vengono assegnati, anche i risultati verranno capovolti.

+0

Grazie mille @Junnux e Antimonio per le risposte rapide! Il set di test è stato creato in questo modo: fornisco un termine di ricerca al mio programma, twitter api restituisce tweet che includono questo termine, questi tweet compongono il mio set di test e poi esegue Naive Bayes. Quindi non sono in grado di aggiungere le etichette corrette per il set di test. Se ti capisco bene, in questo caso sarò in grado di ottenere le risposte del classificatore per le etichette del set di test, ma non sarò in grado di valutare l'accuratezza. Ho capito bene? – nadia

+0

Hai ragione, supponendo che tu abbia etichette per il set di allenamento almeno. Se non lo hai nemmeno, allora stai prendendo l'approccio sbagliato. Naive Bayes è un algoritmo per l'apprendimento supervisionato. Se non hai etichette, allora quello che stai cercando è l'apprendimento __unsupervised__, che richiede un diverso set di algoritmi, e in generale dà risultati molto peggiori. Ti suggerirei di trovare un modo per etichettare i tuoi dati o google per l'apprendimento senza supervisione. – Antimony

+0

Sì, il mio scopo è l'apprendimento supervisionato, quindi ho le etichette per il mio set di allenamento. Grazie mille ancora! Mi hai davvero aiutato a risolvere alcune cose. :) – nadia

1

In base al set di allenamento, il 69,92% dei casi è classificato come positivo. Se le etichette per il set di test, ovvero le risposte corrette, indicano che sono tutte positive, quindi il 69,92% è corretto. Se il set di prova (e quindi la classificazione) è lo stesso, ma si cambiano le risposte corrette, ovviamente la percentuale corretta sarà anche l'opposto.

Ricordare che per valutare un classificatore sono necessarie le vere etichette del set di test. Altrimenti non puoi confrontare le risposte del classificatore con le risposte vere. Mi sembra che tu abbia frainteso questo. È possibile ottenere le etichette per i dati non visibili, se questo è ciò che si desidera, ma in tal caso non è possibile valutare l'accuratezza del classificatore.