Predicting housing prices and sales

Huizenprijzen en aantal verkopen voorspellen met behulp van data science

Het efficiënt inplannen van personeel, gericht inkopen van meer voorraad of het voorspellen van huizenprijzen in een specifieke buurt; dit zijn voorbeelden van wat je kunt bereiken door gebruik te maken van voorspellingen. In deze blog gebruiken we data science als methode om huizenprijzen en verkopen te voorspellen. Waar classificatie voorspelt bij welke klasse of groep iemand hoort, voorspelt regressie een numerieke waarde. We gaan verder in op regressie en leggen regressiemodellen uit aan de hand van twee voorbeelden: huizenprijzen en verwachte sales.

Regressie

Zoals uitgelegd in de blog klantverloop verminderen door gebruik te maken van data science, is classificatie een krachtige methode om twee (of meer) entiteiten te scheiden op basis van hun kenmerken. In het voorbeeld van katten en honden gebruikten we variabelen zoals het slaapschema en het geluid dat ze produceren. Maar wat als we een continue numerieke waarde willen voorspellen, bijvoorbeeld de lengte van een persoon, in plaats van een binaire waarde? We kunnen de klassen waaruit het model kan kiezen aanzienlijk uitbreiden en ons nog steeds in het domein van de classificatie bevinden. Dit wordt ook wel de multiclass problems genoemd. Hierin kunnen we containers aanmaken, waarbij elke container een reeks waarden bevat. Een nadeel hiervan is dat je hiermee een oneindig aantal containers kunt krijgen. Zoals je je kunt voorstellen is dit niet efficiënt, gezien de tijd die dit in beslag neemt.

Een betere optie is regressie (regression). We gaan kijken naar een voorbeeld vanuit de statistiek. In dit geval zullen we ons op de linear regression focussen, omdat het de eenvoudigste en meest ongecompliceerde manier van regressie is. Logistic regression is technisch gezien ook een vorm van regressie, maar dan aangepast voor classificatie vraagstukken.

Voorbeeld 1: het voorspellen van de huizenprijzen

Okay, genoeg theoretische uitleg. We gaan nu kijken naar een voorbeeld. Wanneer we de huizenprijzen van een specifieke buurt willen voorspellen, kunnen we veel variabelen gebruiken. Meer variabelen betekent ook grotere vectoren voor de classificator. Houd er wel rekening mee dat te veel variabelen ruis kunnen veroorzaken in de classificator. Voor dit voorbeeld gebruiken we slechts één variabel: het vloeroppervlak in vierkante meters. Als we dit vertalen naar de statistiek, beschouwen we de variabel vloeroppervlakte in vierkante meters als onafhankelijk, terwijl de prijs van een huis de afhankelijke variabel is.

Met andere woorden, de prijs van een huis is direct gekoppeld aan het vloeroppervlak. We gaan ervan uit dat er een lineair verband bestaat tussen deze twee variabelen.

predicting housing price and sales model

De horizontale as toont de variabelen van de dataset. In dit geval zou dat het vloeroppervlak zijn, de afhankelijke variabele. De prijs op de verticale as is hetgeen dat we willen voorspellen. Het figuur toont de best passende lijn voor ons model. Deze lijn moet als volgt worden gelezen; als we een huis in deze buurt hebben met een x hoeveelheid vloeroppervlak (horizontale as), dan geeft het snijpunt op de lijn ons de prijs van dit huis, weergegeven op de y-as (de verticale as).

Sum of Squares

Maar hoe weet het model welke lijn het beste past bij de gegevens? Misschien heb je inmiddels een klein groen vierkantje in het figuur opgemerkt. Dit vierkantje is de afstand van gegevenspunt A (wat we trainen) met de potentiële lijn voor het model. Deze afstand is gekwadrateerd, vandaar het kleine vierkantje, en telt alle andere datapunten in het figuur op. Dit proces wordt meerdere keren herhaald met verschillende potentiële modellijnen. Hoe kleiner de opgetelde waarde, hoe beter de lijn past. Let wel: dit is een zeer abstracte uitleg van de Sum of Squares methode.

Beperkingen van modellen met één onafhankelijke variabele

Bij grotere modellen staan er op de x-as meer variabelen (meer dimensies) om het model nog beter te laten presteren. Veel variabelen kunnen niet zo makkelijk worden getoond in figuren als hoe we net beschreven hebben. Nul variabelen (line), één variabel (2D-plot) en twee variabelen (3D-plot) kunnen in grafieken visueel getoond worden. Het tonen van meer dimensies is niet haalbaar op de gebruikelijke manieren. Door gebruik te maken van een model met één variabel heb je zelden de hoofdprijs te pakken, maar het dient wel als goed voorbeeld voor de uitleg.

Voorbeeld 2: het voorspellen van verkopen van een ijssalon

Laten we eens kijken naar een ander voorbeeld. We willen een numerieke waarde voorspellen, namelijk het aantal verkopen van een ijssalon. We hebben gegevens van een ijssalon in Rotterdam die haar verkoopcijfers van de afgelopen drie jaar heeft verzameld. De variabel aantal verkopen is de target variabel, hetgeen wat we willen voorspellen. We willen een algoritme trainen om te achterhalen en te begrijpen waarom de verkochte producten in de loop van de tijd verschilt.

Het verzamelen van externe gegevens

De gegevens van de ijssalon geven informatie over het aantal verkochte producten en wanneer de verkoop plaatsvond. Als we extra informatie willen, zullen we externe databronnen moeten raadplegen om de dataset uit te breiden. In dit geval kan het interessant zijn om gegevens over weersomstandigheden toe te voegen. Hoewel ik van ijs houd, eet ik het liever op een zonnige dag dan op een koude dag als het regent. Een andere interessante externe informatiebron zou de schoolvakantiekalender kunnen zijn, aangezien we verwachten dat meer gezinnen de ijssalon tijdens de vakantie zullen bezoeken.

Zodra we genoeg gegevens hebben verzameld om een betrouwbare voorspelling te doen, combineren we de interne en externe gegevensbronnen, zodat we een goede dataset hebben die gebruikt kan worden om ons algoritme te trainen. Zo zal bijvoorbeeld het lineaire regressiemodel  (linear regression model) een voorspelling genereren voor de komende 14 dagen. De weersverwachting voor de komende 14 dagen en de schoolvakantiekalender voor de komende 14 dagen zijn inputvariabelen (onafhankelijk) voor het model dat een voorspelling zal geven over de verwachte verkopen voor de ijssalon. Dit kan hem helpen met het plannen van personeel en het gerichter inkopen van voorraad.

 

Gerelateerde berichten

Data optimaal benutten met DBT; Breng je bedrijfsprocessen naar het volgende niveau

Binnen bedrijven is het beheersen van de kunst van het transformeren van data in bruikbare inzichten iets wat leiders onderscheidt van volgers. Bent je ooit in een situatie geweest waarin je twijfelde aan de betrouwbaarheid van jouw gegevens, wat leidde tot het niet nemen van beslissingen of de verkeerde beslissing? Lees dan deze blog!

Lees meer

Webinar: Externe tools om jouw Power BI-omgeving te optimaliseren

Ben je doorgewinterde Power BI-gebruiker, of ben je een BI-manager en wil je je team helpen aan een goede werkomgeving? Dit webinar gaat je helpen aan de skills en tools voor een schone en efficiënte Power BI-omgeving. Schrijf je nu in via onderstaand formulier!

Lees meer

Webinar: Kick-start jouw Data Science project

Je hebt een goede businesscase voor jouw Data Science project geformuleerd. Gefeliciteerd! Maar hoe nu verder? In dit webinar geven we je een overzicht van de te nemen stappen in jouw Data Science project. Ook laten we je zien welke technologieën je hiervoor in kunt zetten.

Lees meer
All posts
Voetbal stadium

Klantverloop verminderen door gebruik van data science

Nu je meer weet over de basis van data science gaan we ons verder verdiepen in de transformatie van de data. In deze blog leggen we de classificatiemodellen uit en presenteren we een casus van een voetbalclub.

Classificatie

In de blog over een kennismaking met data science, hebben we al uitgelegd hoe belangrijk data is. Op het moment dat er een betekenis wordt gehangen aan data, verandert de data in bruikbare informatie. Om klantverloop te kunnen voorspellen, is het cruciaal om bruikbare informatie te hebben over klanten. Zoals je je wellicht herinnert van onze vorige blog, zijn er twee belangrijke onderdelen van een machine learning database: de voorspellende variabelen (features) en de target variabel (class). Laten we kijken naar de target variabel die in ons voorbeeld de ‘Animal’ kolom is.

DIKW klantverloop

Binaire classificatie

Er zijn slechts twee waarden voor dieren: ‘kat’ en ‘hond’. Laten we er voor het gemak vanuit gaan dat deze dataset alleen bestaat uit katten en honden. Ons machine learning model kan, eenmaal getraind, alleen kiezen tussen twee waardes. We noemen dit binaire classificatie. Een binair classificatie probleem kan slechts twee waarden (labels) als target variabel hebben. In dit geval ‘kat’ en ‘hond’. Een ander voorbeeld is of een klant iets bij jou gaat kopen of niet. De voorspellende waarde van dit vraagstuk heeft enkel twee uitkomsten; ‘ja’ of ‘nee’. Door gebruik te maken van machine learning algoritmes kun je in staat zijn om dit te voorspellen. Best handig, toch?

Classificeren van meerdere klassen

Je zou nu kunnen denken: “Als er een target variabel met twee labels bestaat, hoe zit het dan met een target variabel met drie labels?”. Een target variabel met drie labels bestaat inderdaad. Net zoals met vier, vijf of twintig labels. Dit noemen we een multiclass problem.

Het concept is volledig hetzelfde: het machine learning algoritme kan één van de ‘n-labels’ voorspellen, in plaats van twee. Wat er echter onder de motorkap gebeurt, is waar het verschil tussen de binaire en multiclass problemen ontstaat.

Het verschil zit hem in de algoritmen

Zoals gezegd hebben binaire classificatie twee labels. Multiclass problems hebben meer dan twee labels. Het fundamentele verschil tussen de twee is het algoritme dat gebruikt wordt. Sommige algoritmes zijn speciaal ontwikkeld voor binaire classificatie. Laten we bijvoorbeeld de logistic regression gebruiken als machine learning algoritme, die is speciaal ontworpen voor binaire classificatie vraagstukken. Onderstaande grafiek laat de statistische functie van het model zien. In tegenstelling tot de linear regression, voorspelt de logistic regression enkel een waarde tussen de 0 en de 1, waar de linear regression een continue waarde voorspelt. Dit maakt de logistic regression perfect voor een binair classificatie vraagstuk.

De y-as van de grafiek toont de kans voor X. Let op: de X-as toont slechts één voorspellende variabele. In werkelijkheid bevat een machine learning model vrijwel altijd meerdere variabelen om een soliede voorspelling te kunnen maken. De lijn die aangeduid is met y is de threshold: als de kans van X (onafhankelijke variabel, voor de statistici) boven de waarde ligt, zal het model dit element classificeren als de ‘correcte’ waarde.

Een voorbeeld van het model

Okay, dat was nogal een theoretische uitleg. Laten we kijken naar een voorbeeld. Misschien heb je de ‘A’ in het onderstaande figuur opgemerkt. Dit punt komt overeen met kenmerk X met een willekeurige waarde. Deze willekeurige waarde heeft een waarschijnlijkheid van 80% om als ‘True’ (in false vs. true) of ‘Overweight’ (in ‘not overweight’ vs. ‘overweight’) te zijn. Of anders gezegd, er is slechts 20% kans dat deze variabele overeenkomt met de klasse ‘False’. In werkelijkheid is de logistic regression complexer, maar dit geeft het algemene idee weer.

klantverloop model

Voorspellen van klantverloop: casus bij een voetbalclub

In dit deel geven we een voorbeeld van een classificatie casus bij voetbalclub A. Elk seizoen verkoopt voetbalclub A seizoenkaarten aan haar fans. Aan het einde van een seizoen vraagt de voetbalclub aan haar fans of ze hun abonnement willen verlengen. De meeste fans zullen dit doen, maar een deel van deze fans zal haar abonnement opzeggen. Deze opzeggers zullen leiden tot een daling van de inkomsten, wat voetbalclub A wil voorkomen. Bovendien, als de voetbalclub zou kunnen weten welke fans zullen gaan opzeggen, zouden ze hierop kunnen inspelen door hen extra aandacht en eventueel een korting te geven. Maar hoe kan voetbalclub A weten welke fans zullen gaan opzeggen?

Kenmerken en de target variabel

Machine learning kan voetbalclub A helpen door deze fans te identificeren. Op basis van de voorgaande seizoenen weet de voetbalclub welke fans in het verleden zijn hebben opgezegd. Waarschijnlijk heeft Voetbalclub A informatie over deze fans, zoals hoe vaak ze de wedstrijden hebben bezocht en wat de prijzen zijn van hun toenmalige seizoenkaarten. Vervolgens kan voetbalclub A dit soort informatie omzetten naar voorspellende variabelen voor een machine learning algoritme. In dit geval is de target variabel die we willen voorspellen of de fan gaat opzeggen?

De voorspelling

Het algoritme kijkt naar de data en probeert het gedrag en van de fans te begrijpen die in het verleden hebben opgezegd. Op basis van deze patronen kan het model een voorspelling doen voor de fans die op dit moment een abonnement hebben. De uitkomst van het geeft voorspellende model geeft per fan aan wat de kans van opzeggen is. Het gevolg is dat deze informatie bijvoorbeeld kan worden doorgegeven aan de marketing- en verkoopafdeling. Vooral zij kunnen hierop acteren, zodat ze het aantal opzeggingen kunnen minimaliseren.

Deze casus is in veel verschillende situaties van toepassing. Elk bedrijf dat een abonnementsmodel heeft, kan met machine learning de opzeggers detecteren. Een paar andere classificatie voorbeelden zijn:

  • Opsporing van fraude
  • Spamdetectie
  • Conversievoorspelling (kopen of niet)
  • Gezichtsclassificatie (ontgrendel je smartphone met gezichtsherkenning)

 

Gerelateerde blogs

Data optimaal benutten met DBT; Breng je bedrijfsprocessen naar het volgende niveau

Binnen bedrijven is het beheersen van de kunst van het transformeren van data in bruikbare inzichten iets wat leiders onderscheidt van volgers. Bent je ooit in een situatie geweest waarin je twijfelde aan de betrouwbaarheid van jouw gegevens, wat leidde tot het niet nemen van beslissingen of de verkeerde beslissing? Lees dan deze blog!

Lees meer

Webinar: Externe tools om jouw Power BI-omgeving te optimaliseren

Ben je doorgewinterde Power BI-gebruiker, of ben je een BI-manager en wil je je team helpen aan een goede werkomgeving? Dit webinar gaat je helpen aan de skills en tools voor een schone en efficiënte Power BI-omgeving. Schrijf je nu in via onderstaand formulier!

Lees meer

Webinar: Kick-start jouw Data Science project

Je hebt een goede businesscase voor jouw Data Science project geformuleerd. Gefeliciteerd! Maar hoe nu verder? In dit webinar geven we je een overzicht van de te nemen stappen in jouw Data Science project. Ook laten we je zien welke technologieën je hiervoor in kunt zetten.

Lees meer
All posts