Hoe start je met de toepassing van machine learning modellen in Python voor financiële analyses?

Met machine learning maak je het mogelijk voor machines (computers) om te leren. Dit is mogelijk door toepassing van de programmeertaal Python gecombineerd met toepassing van statistische voorspellingen. Je gebruikt historische data om van te leren, waarna het getrainde model voorspellingen kan doen op nieuwe data. Bijvoorbeeld wanneer je een aandeel moet kopen of juist verkopen.

Voor wie wil starten met machine learning kan het lastig zijn om overzicht te krijgen over alle competenties die je moet beheersen. Daarom doen we in dit blog een poging het overzichtelijk uiteen te zetten in behapbare bouwstenen.

Hoe wordt machine learning met Python toegepast in financiële analyses?

Er zijn extreem veel toepassingen van machine learning op de beurs. Zo zijn modellen toe te passen op:

  • Het genereren van koop- of verkoopsignalen. Een model wordt getraind op basis van historische data voor indicatoren als RSI, prijsverloop, Stochastic RSI, EMAs voor verschillende timeframes. Een getraind model kan vervolgens voorspellingen doen op nieuwe data en op het juiste moment signalen afgeven.

  • Het selecteren van winstgevende arbitrage trading mogelijkheden. Wederom kan een machine learning model op basis van historische data leren voor welke handelsparen op welke momenten tussen welke platforms of landen kansen liggen. Het selecteren van het meest winstgevende arbitrage pair per moment kan veel hogere rendementen opleveren dan het focussen op één pair.

    Beginnen met machine learning (stap 1): leer Python

    Veelal zijn mensen met interesse in machine learning al redelijk technisch. Daarmee bedoel ik dat veel mensen al een baan hebben waarbij analytische vaardigheden van belang zijn. Ik denk dan aan analyses in Excel of misschien toepassing van SQL queries. Echter, deze groep kan vaak nog niet programmeren terwijl dat wel van belang is om goed te worden in de toepassing van machine learning.

    De meest logische programmeertaal om te leren is Python. Python is een veelzijdige maar ook een gemakkelijke taal om te leren. Bovendien hebben o.a. grote techbedrijven als Airbnb en Uber machine learning packages ontwikkeld binnen Python. Packages zijn pakketjes met voorontwikkelde functionaliteit die vervolgens gemakkelijk toe te passen is. Hierdoor is Python bij uitstek geschikt voor de toepassing van machine learning en lijkt het naar de toekomt toe de dominante programmeertaal te blijven op dit vlak.

    Je leert Python het snelst in een klassikale bootcamp omdat je zo gedwongen wordt om hele dagen bezig te zijn met het opdoen van de nieuwe skill. Online trainingsprogramma’s leiden dikwijls niet tot de gewenste resultaten omdat je afhankelijk bent van je eigen doorzettingsvermogen en het in de avonduurtjes gedaan moet worden. Heb je een opleidingsbudget bij jouw werkgever? Gebruik het!

    Leer statistische concepten noodzakelijk voor machine learning (stap 2)

    Iedere machine learning voorspelling gebruikt concepten die we kennen uit de statistiek. Met statistiek kun je beoordelen hoe betrouwbaar jouw model is, of hoe groot de kans is dat een koersdaling of koersstijging zich voordoet.

    Voor wie een universitaire studie heeft gedaan zullen basisconcepten bekend zijn. Ik denk bijvoorbeeld aan de p-waarde, de normale verdeling, Z-waardes, of logistieke- of lineaire regressie. Over het algemeen zijn dit concepten die weggezakt zijn, maar ze zijn essentieel voor wie met machine learning aan de slag wil. Voor wie nog nooit een introductie in statistiek heeft gehad is er meer werk aan de winkel. Dit zijn de thema’s waarvan wij aanbevelen je in te verdiepen:

  • Hoe verzamel je data? Waar moet je op letten? Dit wordt ‘sampling’ genoemd

  • Welke data types zijn er allemaal? Welke machine learning algoritmes pas je toe bij welk soort data type?

  • Wat is een standaardafwijking en wat is variantie?

  • Welke verdelingen zijn er naast de normale verdeling?

  • Hoe stel je hypotheses op en hoe test je ze?

    Als je je goed hebt ingelezen in de basisstatistiek kun je kijken of je de eerste algoritmes kunt doorgronden. Het is aan te bevelen om te beginnen met lineaire regressie of classificatie. Dit is relatief makkelijk te begrijpen en zo kun je snel tot je eerste voorspelmodellen komen.

    Python leren

    Als je bovenstaande beheerst kun je je verdiepen in bijvoorbeeld ensemble methods om via boosting, bagging, of stacking tot betere voorspellingen te komen.

    NB: Bovenstaande afbeelding komt van de website pythoncursus.nl van Data Science Partners uit een artikel over ensemble methods.

    Start met een eigen project

    Nergens leer je zo veel en zo snel van als je eigen project. Bovendien is het makkelijker om de motivatie op te brengen als je direct iets relevants maakt. Stel jezelf dus een ambitieus door voor een machine learning model dat je wilt toepassen op data van de beurs en ga er voor.