Af maskinlæring og mænd: En kort analyse af mine Tinder-data

Det var en almindelig aften i Chen-husstanden - jeg havde slået mig ned om aftenen og gjorde min Tinder-ting før sengetid ..

“Hmm .. søde billeder, men ingen bio. Tror sandsynligvis, at han er hot shit, til venstre. ”

”Har han på sig en ko-onesie ?! Hvorfor skulle du lægge det i din Tinder-profil? ... og hvorfor er jeg underligt med det? Stryg til højre ”

Det var da en tanke kom ind i mit hoved. Jeg spekulerede på, om jeg, i betragtning af mine Tinder-data i de sidste ~ 2 år med sporadisk brug mellem forhold, kunne skelne et slags mønster i de typer mænd, jeg sveipede på. Har jeg en skjult "type" ud over de nørdedøde søde softwareingeniører, som jeg har set før? Måske havde jeg en hemmelig ting for følsomme musikere, der har deres Spotify Anthem af Mumford og Sons og bare ikke ved det endnu. Jeg besluttede at Google, hvis en sådan analyse var blevet udført før, og var glædeligt overrasket over at se, at du faktisk kan indsende en anmodning om Tinder til at sende dine data! Jeg indtastede straks min e-mail-adresse, og en zip-mappe kom min vej cirka 2 dage senere.

I zip-mappen er der en lokal HTML-fil, du kan åbne for at få adgang til alle tilgængelige data

Jeg var skuffet over at opdage, at Tinder ikke delte nogen data om de mennesker, jeg havde matchet med. Jeg havde i det mindste håbet på alder, uddannelse, bio og erhverv, som bestemt har indflydelse på min skør. I stedet fik jeg en meddelelseslog over alle meddelelser, jeg nogensinde havde sendt over Tinder, med anonyme navne (dvs.: Match 30). Jeg regnede med, at jeg stadig kunne arbejde med dette, og besluttede at udføre følelsesanalyse på samtalerne for at se, om jeg kunne bestemme, hvilke samtaler der ville resultere i en dato, og hvilke der ville svimle ud.

Metode

Jeg havde i alt 104 kampe, som jeg blev til en ordbog. For hver kamp lavede jeg værdien til en streng for hver meddelelse, jeg nogensinde havde sendt til dem. For at køre stemningsanalyse på disse meddelelser brugte jeg en Naive Bayes Classifier fra et bibliotek kaldet nltk (Natural Language Toolkit).

Jeg trente klassificeren på et datasæt, der fulgte med nltk, der indeholdt 1.000 positive og 1.000 negative filmanmeldelser (ja, jeg ved, at dette er et tilfældigt datasæt, der skal bruges, men dette var min første gang, jeg gjorde NLP okay? Giv mig en pause). Klassificeringsmodellen havde en 0,72 nøjagtighedsscore, som jeg regnede med var god nok til at få mig i gang.

Jeg kørte samtalerne for mine 104 kampe gennem modellen og fik følgende resultater:

Fig

Det ser ud til, at mine interaktioner med Tinder oftere end ikke er relativt behagelige, hvilket giver mening - jeg gemmer mine bunny-kogende tendenser til efter den første date. Vent, hvad? …Komme videre..

Derefter kiggede jeg på succesraten for hvert sentiment, succes defineret som om jeg gav mit nummer ud eller ej.

Fig

Som du kan se, har jeg givet mit telefonnummer ud til 12 personer over Tinder. Jeg nåede denne konklusion ved at søge efter “647” gennem hver af mine samtaler, men min værelseskammerat påpegede, at antallet kunne være en inflation, fordi “hvad nu hvis du bare taler meget om Drake?” Desværre ved mine kampe, ved jeg ikke nok om Drake til at lave 6ix-God-tema pick-up-linjer, så jeg tællede alle forekomster af “647” som mig, som var interesseret i at lære en bedre at kende.

Efter at have set på dette diagram kom der et andet spørgsmål i tankerne - hvem er disse negative kampe, som jeg angiveligt giver mit nummer til ?! Jeg besluttede at tage et dybt dybde i de “positive” og “negative” spande og skabe et større udvalg af tiltrækningskraft.

Fig. 3

Som du (forhåbentlig) kan fortælle fra diagrammet, brød jeg de 2 holdningskategorier ned i mennesker, jeg virkelig kunne lide, folk, jeg kunne lide, og folk, som jeg ikke kunne lide. Så folk, som jeg virkelig ikke kunne lide, folk, som jeg ikke kunne lide, og folk, som jeg ikke kunne lide. Dette diagram gav mere indsigt end den indledende fig. 2:

  • Jeg giver mit nummer mest ud til folk, jeg virkelig kan lide, efterfulgt af mennesker, som jeg kan lide
  • Folk, der ikke gjorde et stort indtryk på nogen måde (dvs. lavt positivt, lavt negativt) lukkede typisk ikke aftalen

Det overraskende var imidlertid, at jeg tilsyneladende giver mit telefonnummer ud til folk, jeg virkelig ikke kan lide. Er jeg i hemmelighed en masochist? Er dette den skjulte indsigt, jeg ledte efter at opdage gennem datavidenskab ?? Jeg besluttede at undersøge dette mere detaljeret ved først at visualisere en anden funktion.

Fig. 4

En anden funktion, jeg havde adgang til, var længden på mine samtaler. Jeg tællede samtalelængde for hver person og fandt, at jeg delte et gennemsnit på ~ 152 ord i samtaler, der blev betragtet som ”positive”, og et gennemsnit på ~ 110 i samtaler, der blev betragtet som ”negative”. Det gennemsnitlige ordtælling for alle mine samtaler var 141.

Fig

Baseret på fig. 5 og fig. 3 ser det ud til, at hvis jeg investerer tiden i at tale med nogen og lære dem at kende, er jeg åben for en første date… selvom samtalen er forfærdelig? Jeg kiggede specifikt på de 2 meget negative kampe, jeg delte mit nummer med, og de havde samtalelængder på 147 og 364 - begge længere end min gennemsnitlige samtale.

Fra dette kan jeg antage, at mængde og kvalitet af samtalen begge spiller en rolle i afgørelsen af, om jeg vil ønske at gå på en date med nogen.

Bare for sjovt ønskede jeg at medtage et par skærmkapper med beskeder fra en person, jeg virkelig kunne lide og gik på en date med, mod en person, som jeg senere ikke har været med på! Se om du kan se, hvilket der er :)

Min model klassificerede den person, jeg kunne lide, med 99% selvtillid og den person, jeg var uovertruffen med 98% tillid, så det er tilsyneladende helt indlysende?

Person APerson B

Konklusion

Så desværre gennemførte jeg ikke det, jeg oprindeligt havde tænkt mig at gøre, da jeg anmodede om mine data fra Tinder. Jeg ønskede at oprette en slags profil til den type fyr, jeg var garanteret at stryge lige på, men Tinder var som nah, at oplysningerne kun er til USA.

I stedet var jeg i stand til at visualisere nogle interessante korrelationer, som jeg mere eller mindre allerede vidste eksisterede, men som stadig var sej at se kvantificeret.

  1. Jeg giver sjældent mit nummer ud (~ 12% af tiden), men når jeg gør det, er det som regel efter fast banter
  2. Jeg chatter mere, hvis jeg har en behagelig samtale, men ikke nødvendigvis mindre, hvis jeg har en ubehagelig samtale
  3. Selv hvis jeg har det ikke så godt med at chatte med nogen, hvis jeg har taget sig tid til at lære dem at kende, giver jeg dem fordelen ved tvivlen og håber, at de er bedre personlige

Fremtidige iterationer

  • Træn modellen på et Twitter / mere relevant datasæt, og se, om det gør en forskel i nøjagtighed af forudsigelser
  • Prøv at forbedre nøjagtigheden af ​​modellen ved hjælp af det aktuelle datasyn for filmanmeldelse, og se derefter, om det gør en forskel for følelsesforudsigelserne for mine samtaler
  • Tilføj oplysninger om, hvorvidt det at give et telefonnummer resulterede i en dato, eller om det fandt ud, efter at jeg delte mit telefonnummer
  • Se om der er visse ord, jeg bruger, og emner, jeg taler om, når jeg holder en positiv samtale, kontra negativ
  • Tilføj oplysninger om fysisk udseende, etnicitet, besættelse, uddannelse ?? Virker som en masse arbejde, og jeg er allerede ikke i det, men logisk set ville dette være et godt næste skridt

Fortæl mig, hvad du syntes om min første satsning på NLP, og hvis du har nogen feedback!