geluk voorspellen met google’s tensorflow deep neural networks

-

Bij Incentro hebben we iets met geluk. Het is onze maatstaf. We willen het maximaliseren, zowel bij klanten als bij medewerkers. In onze vorige blog bouwden we voorspelmodellen in R om geluk per land te voorspellen.

In dit blogje gaan we een stapje verder en proberen we onze modellen te verbeteren met deep learning. We gaan nogmaals aan de slag met dezelfde Happiness data ([1] & [2]) om te kijken in hoeverre voorspellen met Google’s TensorFlow betere resultaten oplevert dan onze eerdere voorspelmodellen.

support vector machines als sterkste voorspeller van geluk

In onze vorige blog namen we je mee in het voorspellen van global happiness in R. Na een verkennende analyse van de data en enkele machine learning technieken toe te passen, kunnen we concluderen dat de support vector machines techniek het best presteert in het voorspellen van het gemiddelde cijfer dat toegekend wordt aan geluk per land.

voorspellen met google’s tensorflow

Vrij nieuw op de markt (sinds november 2015) is Google’s TensorFlow. Dit is een open source software library voor machine learning en werkt onder andere met python. Anders dan eerder verschenen machine learning software, worden de computations in data flows parallel aan elkaar uitgevoerd. Zo kunnen zware, complexe modellen sneller uitgevoerd worden. In deze blog willen we je laten zien hoe je een eerste Deep Neural Network (DNN) voorspelmodel kunt bouwen met TensorFlow in python. TensorFlow maakt onder andere voorspellen met een Deep Neural Network (DNN) mogelijk.

In een notendop, bestaat deze techniek uit een regressie over verschillende getransformeerde regressies bestaande uit lagen (hidden layers). Als het ware zoekt de DNN regressor naar onderliggende patronen die met het menselijke oog niet te vinden zijn. Er ontstaat een netwerk (zie afbeelding).

In complexe regressies of classificatie taken zou deze deep learning techniek veelbelovende resultaten moeten opleveren. We zijn erg benieuwd hoe dit neurale netwerk presteert op onze (relatief simpele) Happiness dataset.

deep neural networks vs. support vector machines

In ons vorige blog kwam aan het licht dat support vector machines het beste presteren in het voorspellen van geluk. Anders dan de DNN regressor, voorspelt de support vector machine (SVM) op basis van patronen gegeneerd door lineaire scheidingen tussen observaties. Het beste SVM model verklaarde op onze happiness data rond de 73% van de variantie in de data. Kan de DNN regressor dit evenaren, of zelfs meer variantie verklaren?

We hebben de DNN regressor zijn werk laten doen op onze data. Benieuwd hoe we dit gedaan hebben? Of wil je zelf ook aan de slag met TensorFlow’s Deep Neural Networks? Dan kun je hier onze code terugvinden.

conclusie

Uit onze resultaten blijkt dat de DNN een R2 scoort van meer dan 0.78: dit model verklaart meer dan 78% van de variantie in de data. Dat betekent dat we beter scoren dan ons beste SVM model (73%). Ook de RSME van het DNN model is beduidend lager dan die van de SVM modellen. We kunnen dus concluderen dat TensorFlow’s Deep Neural Networks op deze data als een betere voorspeller uit de verf komt.

Wil je erachter komen hoeveel verbetering er te halen valt in jouw voorspellingen met TensorFlow’s Deep Neural Networks ? Neem dan gerust contact met ons op via datascience@incentro.com.

bronvermelding

[1] Veenhoven, R., World Database of Happiness, Erasmus University Rotterdam, The Netherlands. Assessed on (21-11-2016) at: http://worlddatabaseofhappiness.eur.nl
[2] World Happiness Report at: http://worldhappiness.report/