Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
dslc_downloads
events_agenda
klanten
dslc_projects
vacature
Hackathon Dutch Sciences week_header image

Hackathon Machine Learning voor screening scoliose. Wat kun je ermee bereiken?

  • 24 juni 2019

Herkent u het volgende testje bij de schoolarts nog? U moest voor de arts gaan staan en twee verschillende houdingen aannemen. De hele test duurde ongeveer tien seconden en u had op dat moment waarschijnlijk geen idee van het nut van deze test. Dit was een screening voor scoliose. Scoliose is een vergroeiing van de wervelkolom (ruggengraat) waardoor een s-vorm ontstaat. In ernstige gevallen kan scoliose leiden tot andere gezondheidsproblemen, zoals bijvoorbeeld problemen met de ademhaling.

De scoliose screening wordt door steeds minder GGD’s uitgevoerd omdat de regering preventie screening niet rendabel genoeg vindt. De vereniging van scoliosepatiënten is het hier echter niet mee eens. Daarom hebben orthopeden van het OLVG-ziekenhuis in Amsterdam een hackathon georganiseerd om uit te zoeken of ze het voor ouders eenvoudiger kunnen maken zelfstandig deze preventie screening uit te voeren. Scamander heeft met een groepje Data Scientists meegedaan aan deze hackathon.

Aftrap van de hackathon

De hackathon ging van start met een uitleg over scoliose. 3% van de Nederlanders lijdt aan scoliose. 10% van deze personen heeft een hulpmiddel nodig of moet zelfs een heftige operatie ondergaan om verergering te voorkomen. We kregen toelichting over de verschillende gradaties en de gevolgen van ernstige vormen van scoliose. Voorbeelden zijn het vervormen van de borstkas, het niet meer volledig kunnen gebruiken van de longen en vroegtijdige slijtage in de wervelkolom. Wanneer scoliose tijdig wordt ontdekt kan met behulp van een brace de kans op verergering worden teruggedrongen en is er minder snel een heftige corrigerende operatie nodig.

Afbeeldingen Scoliose. Bron: Vereniging van Scoliosepatiënten

Een zogenaamde buktest is een goede manier om te kunnen zien of iemand scoliose heeft. Er wordt dan gekeken naar een bochel, scheve schouders, heupen en taille en de vorm van de ruggengraat zelf. Het OLVG heeft recent getest hoe goed experts kunnen zien of iemand scoliose heeft aan de hand van foto’s die zijn gemaakt bij buktesten. Het resultaat van de test kwam op maximaal 80%, afhankelijk van de ernst van de kromming. De vraag aan de deelnemers van de hackathon was of wij deze score met behulp van Machine Learning konden evenaren of zelfs overtreffen.

Zwart-wit foto’s, metingen en voorspellen

Artsen van het OLVG hebben 3 fases gedefinieerd, op basis waarvan een programma een betrouwbare indicatie kan geven of iemand wel of niet scoliose heeft. Deze 3 fases waren ook de 3 verschillende cases waaraan gewerkt kon worden tijdens de hackathon. Voor elke fase moest een stuk code worden opgeleverd.

Fase 1

Fase 1 bestaat uit het anonimiseren van foto’s waarbij het lichaam in de gemaakte foto wit wordt gemaakt en de rest van de foto zwart. Hierbij is het van belang dat de code de lichamen heel precies kan herkennen, ongeacht de achtergrond van de foto’s.

Fase 2

Fase 2 betreft het analyseren van deze zwart-wit foto’s. Hierbij wordt voornamelijk gekeken naar de symptomen, zoals scheve schouders, heupen en taille, en een zichtbaar vergroeide ruggengraat. Dit kan op verschillende manieren, zoals het trekken van lijnen, het berekenen van hoeken of het plaatsen van zwaartepunten in het lichaam op de foto om te zien hoeveel dit verschilt van de gemiddelde situatie.

Fase 3

In fase 3 moet op basis van een tabel met geanonimiseerde data over patiënten voorspelt worden of iemand scoliose heeft. De data bestaat uit leeftijd, geslacht, gegevens over de kromming en gedane observaties over de houding van de persoon. We kregen tijdens de hackathon de vrijheid om uit deze gegevens nieuwe ‘attributen’ te creëren om te ondersteunen bij het maken van voorspellingen.

De combinatie & onze focus

De combinatie van de 3 fases moeten een goede oplossing bieden om scoliose tijdig te ontdekken aan de hand van een foto van een lichaam. Ons team heeft zich gericht op het bieden van een oplossing voor fase 3.

Onze oplossing: een neuraal netwerk

Ons team heeft gekozen voor gebruik van de ontwikkeltalen Python en R. We hadden daarbij een brede kennis van verschillende voorspelmodellen. Maar hoe kies je van die verschillende modellen nou de beste? Onze aanpak voor deze hackathon licht ik graag toe.

De data

We maakten afspraken over hoe we met de data zouden omgaan. Met name vragen omtrent missende gegevens waren belangrijk om te bespreken. Het was namelijk ondenkbaar om de regels waarin een dataveld ontbrak maar gewoon weg te laten in het model. Wanneer hier in de toekomst namelijk wel een waarde in komt, heb je geen manier om er een voorspelling voor te maken. We bleven over met een aantal logische keuzes: het op de lege plekken invullen van gemiddelde, mediaan en modus. Omdat we veel met nominale data-categoriën te maken hadden was een gemiddelde of mediaan geen optie. Daarom hebben we gekozen voor de modus. Verder gebruikten we allemaal dezelfde dataset met dezelfde gegevens en dezelfde manier om onderscheid te maken tussen training- en testsets, namelijk 10-fold-cross-validation. Dit is een bekende en algemeen geaccepteerde methode om overfitting te voorkomen.

Modellen

Vervolgens konden we aan de slag met het testen van onze eigen modellen: beslisboom en random forest, logistische regressie en kunstmatig neuraal netwerk met meerdere lagen. Na veel parameters te hebben uitgeprobeerd en de resultaten van de modellen met elkaar te hebben vergeleken, kwam uiteindelijk het neurale netwerk als beste uit de test. Al onze modellen hadden rond de 85% nauwkeurigheid, maar het neurale netwerk had een resultaat van 90% op de sets waarop we konden trainen en waarvan we dus de antwoorden wisten.

Het beste resultaat

Tot slot stopten we de testset van het OLVG in het model en kregen te zien wie wel en wie niet de diagnose scoliose kreeg volgens het model. Hiervan konden we niet zelf zien wat de eigenlijke uitslag zou moeten zijn. Dit wist alleen de organisatie. Onze uitkomsten overhandigden we aan de organisatie, voor een vergelijking met de werkelijke antwoorden. Nadat de uitkomsten van elke groep waren gecheckt, kregen we de uitslag te horen. Met een score van 85% goede voorspellingen had ons neuraal netwerk het beste resultaat geleverd!

Hackathon uitkomsten

We zijn trots op het resultaat dat wij en de andere deelnemende teams hebben neergezet. We hebben machines beter laten presteren dan de experts. Hopelijk kan het OLVG iets met deze uitkomsten en zien we binnenkort een programma verschijnen waarmee je eenvoudig en betrouwbaar een kind kunt testen op scoliose.

Meer informatie?

Heeft u vragen over Analytics of Machine Learning? Of heeft u wellicht zelf een casus waarbij u denkt dat voorspellingen u kunnen helpen? Aarzel dan niet om contact met me op te nemen via ocapel@scamander.com of via het formulier ‘reageren’ naast deze blog.

Oscar van Capel

Deel dit met uw volgers

Herkent u het volgende testje bij de schoolarts nog? U moest voor de arts gaan staan en twee verschillende houdingen aannemen. De hele test duurde ongeveer tien seconden en u had op dat moment waarschijnlijk geen idee van het nut van deze test. Dit was een screening voor scoliose. Scoliose is een vergroeiing van de wervelkolom (ruggengraat) waardoor een s-vorm ontstaat. In ernstige gevallen kan scoliose leiden tot andere gezondheidsproblemen, zoals bijvoorbeeld problemen met de ademhaling.

De scoliose screening wordt door steeds minder GGD’s uitgevoerd omdat de regering preventie screening niet rendabel genoeg vindt. De vereniging van scoliosepatiënten is het hier echter niet mee eens. Daarom hebben orthopeden van het OLVG-ziekenhuis in Amsterdam een hackathon georganiseerd om uit te zoeken of ze het voor ouders eenvoudiger kunnen maken zelfstandig deze preventie screening uit te voeren. Scamander heeft met een groepje Data Scientists meegedaan aan deze hackathon.

Aftrap van de hackathon

De hackathon ging van start met een uitleg over scoliose. 3% van de Nederlanders lijdt aan scoliose. 10% van deze personen heeft een hulpmiddel nodig of moet zelfs een heftige operatie ondergaan om verergering te voorkomen. We kregen toelichting over de verschillende gradaties en de gevolgen van ernstige vormen van scoliose. Voorbeelden zijn het vervormen van de borstkas, het niet meer volledig kunnen gebruiken van de longen en vroegtijdige slijtage in de wervelkolom. Wanneer scoliose tijdig wordt ontdekt kan met behulp van een brace de kans op verergering worden teruggedrongen en is er minder snel een heftige corrigerende operatie nodig.

Afbeeldingen Scoliose. Bron: Vereniging van Scoliosepatiënten

Een zogenaamde buktest is een goede manier om te kunnen zien of iemand scoliose heeft. Er wordt dan gekeken naar een bochel, scheve schouders, heupen en taille en de vorm van de ruggengraat zelf. Het OLVG heeft recent getest hoe goed experts kunnen zien of iemand scoliose heeft aan de hand van foto’s die zijn gemaakt bij buktesten. Het resultaat van de test kwam op maximaal 80%, afhankelijk van de ernst van de kromming. De vraag aan de deelnemers van de hackathon was of wij deze score met behulp van Machine Learning konden evenaren of zelfs overtreffen.

Zwart-wit foto’s, metingen en voorspellen

Artsen van het OLVG hebben 3 fases gedefinieerd, op basis waarvan een programma een betrouwbare indicatie kan geven of iemand wel of niet scoliose heeft. Deze 3 fases waren ook de 3 verschillende cases waaraan gewerkt kon worden tijdens de hackathon. Voor elke fase moest een stuk code worden opgeleverd.

Fase 1

Fase 1 bestaat uit het anonimiseren van foto’s waarbij het lichaam in de gemaakte foto wit wordt gemaakt en de rest van de foto zwart. Hierbij is het van belang dat de code de lichamen heel precies kan herkennen, ongeacht de achtergrond van de foto’s.

Fase 2

Fase 2 betreft het analyseren van deze zwart-wit foto’s. Hierbij wordt voornamelijk gekeken naar de symptomen, zoals scheve schouders, heupen en taille, en een zichtbaar vergroeide ruggengraat. Dit kan op verschillende manieren, zoals het trekken van lijnen, het berekenen van hoeken of het plaatsen van zwaartepunten in het lichaam op de foto om te zien hoeveel dit verschilt van de gemiddelde situatie.

Fase 3

In fase 3 moet op basis van een tabel met geanonimiseerde data over patiënten voorspelt worden of iemand scoliose heeft. De data bestaat uit leeftijd, geslacht, gegevens over de kromming en gedane observaties over de houding van de persoon. We kregen tijdens de hackathon de vrijheid om uit deze gegevens nieuwe ‘attributen’ te creëren om te ondersteunen bij het maken van voorspellingen.

De combinatie & onze focus

De combinatie van de 3 fases moeten een goede oplossing bieden om scoliose tijdig te ontdekken aan de hand van een foto van een lichaam. Ons team heeft zich gericht op het bieden van een oplossing voor fase 3.

Onze oplossing: een neuraal netwerk

Ons team heeft gekozen voor gebruik van de ontwikkeltalen Python en R. We hadden daarbij een brede kennis van verschillende voorspelmodellen. Maar hoe kies je van die verschillende modellen nou de beste? Onze aanpak voor deze hackathon licht ik graag toe.

De data

We maakten afspraken over hoe we met de data zouden omgaan. Met name vragen omtrent missende gegevens waren belangrijk om te bespreken. Het was namelijk ondenkbaar om de regels waarin een dataveld ontbrak maar gewoon weg te laten in het model. Wanneer hier in de toekomst namelijk wel een waarde in komt, heb je geen manier om er een voorspelling voor te maken. We bleven over met een aantal logische keuzes: het op de lege plekken invullen van gemiddelde, mediaan en modus. Omdat we veel met nominale data-categoriën te maken hadden was een gemiddelde of mediaan geen optie. Daarom hebben we gekozen voor de modus. Verder gebruikten we allemaal dezelfde dataset met dezelfde gegevens en dezelfde manier om onderscheid te maken tussen training- en testsets, namelijk 10-fold-cross-validation. Dit is een bekende en algemeen geaccepteerde methode om overfitting te voorkomen.

Modellen

Vervolgens konden we aan de slag met het testen van onze eigen modellen: beslisboom en random forest, logistische regressie en kunstmatig neuraal netwerk met meerdere lagen. Na veel parameters te hebben uitgeprobeerd en de resultaten van de modellen met elkaar te hebben vergeleken, kwam uiteindelijk het neurale netwerk als beste uit de test. Al onze modellen hadden rond de 85% nauwkeurigheid, maar het neurale netwerk had een resultaat van 90% op de sets waarop we konden trainen en waarvan we dus de antwoorden wisten.

Het beste resultaat

Tot slot stopten we de testset van het OLVG in het model en kregen te zien wie wel en wie niet de diagnose scoliose kreeg volgens het model. Hiervan konden we niet zelf zien wat de eigenlijke uitslag zou moeten zijn. Dit wist alleen de organisatie. Onze uitkomsten overhandigden we aan de organisatie, voor een vergelijking met de werkelijke antwoorden. Nadat de uitkomsten van elke groep waren gecheckt, kregen we de uitslag te horen. Met een score van 85% goede voorspellingen had ons neuraal netwerk het beste resultaat geleverd!

Hackathon uitkomsten

We zijn trots op het resultaat dat wij en de andere deelnemende teams hebben neergezet. We hebben machines beter laten presteren dan de experts. Hopelijk kan het OLVG iets met deze uitkomsten en zien we binnenkort een programma verschijnen waarmee je eenvoudig en betrouwbaar een kind kunt testen op scoliose.

Meer informatie?

Heeft u vragen over Analytics of Machine Learning? Of heeft u wellicht zelf een casus waarbij u denkt dat voorspellingen u kunnen helpen? Aarzel dan niet om contact met me op te nemen via ocapel@scamander.com of via het formulier ‘reageren’ naast deze blog.

Oscar van Capel