Språkklassificering av Myers-Briggs del 4: för bra för att vara sant, tyvärr

Läs även del 1:  Kan man förutsäga Myers-Briggs personlighetstyp från bloggtexter?

Del 2:  En lömsk bugg och stora förbättringar!

Del 3: Toppresultat med två klasser!

Del 5: Jung var nåt på spåren, men...

Del 6: Postmodern kritik

Det är svårt att se sina egna misstag i sin egen kod. Därför är det viktigt att låta en extern person verifiera resultaten. Helst inte bara genom att köra koden, utan genom att skriva helt ny kod från grunden och använda samma data. Det tog inte lång tid för min ypperliga externa verifierare Micke ”falköga” Huss att försynt konstatera att han inte fick samma resultat som jag när han testkörde. Han rekommenderade mig framförallt att spara träningsdatan och utvärderingssdatan i två helt separata filer, därefter läsa in dem separat och i kod tydligt bevisa att de inte finns nån överlappning mellan dem som skevar resultatet.

Eftersom min egen kod var svårbegriplig även för mig själv beslöt jag att själv skriva helt ny och förhoppningsvis lättbegripligare kod som följde hans rekommendationer och si! Jag hade blandat tränings- och utvärderingsdata och fått på tok för höga resultat. Från en tidigare pricksäkerhet på 87 procent visade det sig att pricksäkerheten i själva verket var knappa 56 procent.

Gör om, gör rätt

Här är den nya notebooken som visar att mina tidigare resultat var felaktiga. Du kan själv enkelt reproducera experimentet eftersom den innehåller länk till rådatan. Ladda ner notebooken och rådatafilen på samma plats och därefter kan du köra igenom den själv.

Troligen uppstod felet uppstod i in[25] i den förra notebooken där jag använde Pandas inbyggda metod .sample utan att egentligen ha ordentliga kunskaper om hur den fungerar i detalj.

Lärdomar

Det enklaste sättet för mig att undvika liknande fel en annan gång är att utgå från detta sätt att arrangera klassificerings-experiment, det vill säga att vara nogrann med att spara tränings- och evalueringsexempel i separata filer och sen försäkra mig om att de inte överlappar så omsorgsfullt som möjligt.