Domanda

Sto usando la funzione explorer di Weka per la classificazione.

Quindi ho il mio file .arff, con 2 caratteristiche di valore NUMERICO, e la mia classe è un binario 0 o 1 (es. {0,1}).

Esempio:

@RELATION summary
@ATTRIBUTE feature1 NUMERIC
@ATTRIBUTE feature2 NUMERIC
@ATTRIBUTE class {1,0}

@DATA
23,11,0
20,100,1
2,36,0
98,8,1
.....

Carico questo file .arff, uso 10 volte la convalida incrociata (nessun file di test) e scelgo NaiveBayes, quindi classifico i dati e mi dà: 5 etichettati in modo errato, 100 etichettati correttamente. Fin qui tutto bene.

Ora, cambio significativamente il mio file .arff (fornisco valori completamente casuali per i miei attributi di funzionalità). E ripeti quanto sopra, e ottengo le stesse statistiche ESATTE quando classifico.

Ho provato questo con più modifiche al mio file .arff, diversi algoritmi di classificazione. Tuttavia, ESATTA la stessa statistica (all'interno dello stesso algoritmo) indipendentemente dai valori che do al mio file .arff.

Sto facendo qualcosa di sbagliato qui?

È stato utile?

Soluzione

È difficile dirlo senza ulteriori informazioni, ma ho due suggerimenti:

  1. Quali sono le proporzioni relative delle due classi? Sono da 5 a 100? Molti algoritmi non funzionano bene con le distribuzioni di etichette di classe altamente distorte.

  2. Solo un sospetto, ma prova a cambiare le etichette della tua classe da numeri a stringhe (ad esempio 'class1' e 'class2'). Weka chiama questi attributi "nominali", quindi forse non è permesso usare numeri.

Altri suggerimenti

Inoltre: tieni presente che la convalida incrociata è piuttosto orribile nell'interfaccia utente in quanto ti mostra solo l'albero originale, comunque (prima che pieghino in altri dati). Se si desidera generare gli alberi finali, è necessario l'API programmatica. Suggerisco di utilizzare un set di dati di allenamento / test diviso.

Hai provato a cambiare

@ATTRIBUTE class {1,0} 

con

@ATTRIBUTE class {yes,no} 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top