Språkklassificering av Myers-Briggs del 3: toppresultat med två klasser!

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 4: För bra för att vara sant, tyvärr

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

Del 6: Postmodern kritik

Min första tanke efter det klena resultatet i det initiala experimentet (se del 1) var att testa två klassificerare istället för en som jag gjorde då.  Jungs fyra kognitiva funktioner är i hans typteori uppdelade i två helt olika användningsområden, hur en tar in information och hur en drar slutsatser av dem.  Utöver att ta en till vända med att granska processen för datatvätt- och städ som i förra bloggposten (se del 2) visat sig innehålla misstag, har jag nu brutit upp språkklassificeringen på två separata klassificerare. Resultaten med två klassificerare är riktigt bra!

Jungs fyra kognitiva funktioner kan  placeras visuellt så att de bildar ett kors. Den vertikala axeln nedan innehåller motsatsparet sensing (konkreta sinnesintryck) respektive intuition (abstrakta mönster). Den horisontella axeln i sin tur innehåller motsatsparet thinking (objektiv beräkning) respektive feeling (subjektivt inkännande).

Jungs två psykologiska motsatspar

För dessa två motsatspar (dikotomier) skapade jag denna gång två olika klassificerare på uClassify.com. Dessutom gjorde jag mig omaket att gå igenom hela förbearbetnings-processen av datasetet för att se till så att jag inte glömde någon datatvätt- och städuppgift innan jag tränade klassificerarna, vilket del 2 visade prov på. Resultaten blev nu helt annorlunda, rentav väldigt överraskande!

I förra experimentet, som byggde på en fyrdelad klassificerare där alltså axlarna perceiving och judging bakades in i samma klassificerare gav följande resultat för precision och recall:

del 2 SNTF-klassificerare utvärdering

Därutöver hade klassificeraren en accuracy på 0.59 och ett Kappa-värde på 0.45. De resultaten var jag väldigt nöjd med. Men kolla vad som hände när jag följde Jungs teori mer noggrant och separerade de två motsatsparen i två separata klassificerare.

De nya resultaten

classification report perceiving

classification report perceiving

För att få en känsla för hur starka resultaten är kan en notera att på sidan 674 i Proceedings of the Eighth International Conference on Soft Computing and Pattern Recognition (SoCPaR 2016) presenterar forskarna M.S. Raje och A. Singh en artikel som jämför James W. Pennebakers företag Reciptivity som är en kommersiell tillämping av hans psykologiska textanalys forskning känt som LIWC och språket i 450 twitterkonton. Tyvärr kan inte artikeln läsas in sin helhet utan att köpa hela boken. Forskarna har testat ett neuralt nätverk (ANN) och logistisk regressionanalys och fått fram en accuracy på 0.52 för S/N respektive 0.56 för T/F.

Raje and Singh Myers_briggs classification Twitter ANN Logistic Regression

De drar slutsatsen att dessa nivåer på accuracy är goda nog för att kunna förutspå personlighetsstyp – och inte att förglömma – att presentera på en Internationell konferens om maskininlärning!

Accuracy quality in Twitter LIWC personality study

Vi har alltså fått fram väldigt intressanta resultat för språkklassificering!

Kom dock  ihåg att de nya mätvärdena inte kan jämföras vare sig med dessa forskares experiment eftersom de mäter något helt annat och inte heller rakt av med de från mitt föregående experiment, eftersom det då var fyra klasser vilket innebär att sannolikheten att gissa rätt enligt slumpen då var 0.25 (25 %) medan de nya klassificerarna med två klasser medför en motsvarande sannolikhet på 0.5 (50%). De nya resultaten visar dock mycket höga resultat för samtliga våra utvärderingsmått, närmare 90% generell träffsäkerhet (accuracy), precision och recall. Cohens Kappa-måttet som visar hur bra överensstämmelse det är mellan hur två mänskliga bedömare kategoriserar en text, visar dock en något lägre resultat på knappt 74 procent, vilket enligt Landis och Koch citerade på Wikipedia räknas som i de högre regionerna av ”substantial”, alltså ungefär betydande. (UPDATE: stort tack till Mikael Huss som snabbt såg ett kodfel i min ursprungliga uträkning av Cohens Kappa som gav ett resultat på 0.88, vilket alltså var fel.) Kanske är inte heller valet av Cohens Kappa helt optimalt för att utvärdera detta resultat, vilket antyds i Wikipedia-artikeln.

Från min bakgrund som medieanalytiker, det vill säga i praktiken att kategorisera pressklipp utifrån ämne, tonalitet och andra kvalitativa variabler vill jag minnas att det pratades om ett värde på 65% som räknades som bra. Det behöver dock inte vara Cohens Kappa som användes då, utan snarare ett liknande Kappa-mått som möjliggör jämförelse mellan fler än två bedömare.

Har du egna erfarenheter så dela gärna dem i kommentarsfältet. Det tillsammans med de höga värdena för precision, recall och accuracy gör att det här experimentet känns väldigt spännande att gräva djupare i!

Nästa steg

Frågor som nu känns viktiga att gå vidare med är förstås först och främst att få min kod peer-reviewad så jag inte räknat fel när jag fått fram de här resultaten. Notebooken ligger inbäddad längst ner i bloggposten. Utöver att kontrollera resultaten märkte jag att jag fick betydligt sämre resultat när jag tränade klassifierarna på betydligt fler texter, mellan 5000 och 10000 texter.  Det vore intressant att göra automatiska tester som visar vid vilken mängd träningsdata som kvalitén på resultaten går ner, på maskininlärningsspråk overfittingvilket Naiva Bayesiska klassificerare som den jag använt på uClassify.com ändå är ovanligt robusta mot.

En annan uppenbar fråga är hur bra mina ursprungliga personligt utvalda träningsdata står sig i jämförelse med dessa ”data-drivna” klassificerare. Men innan dess vill jag såklart se vilka ord som ger störst utslag för respektive klass så det går att börja tolka vad det är klassificeraren ser för mönster i relation till Jungs personlighetstypsteori!

Och slutligen, eftersom min fru Pernilla just nu läser den populära boken Omgiven av idioter av Thomas Eriksson som bygger på DISA/DISC-modellen som i sin tur bygger på Jungs typteori, vill jag gärna testa att utveckla klassificerare även för extraversion vs introversion när det blir tid och tillfälle.