Innovatie & Strategie

Dit is een bijdrage van Itility
Datamanagement
Hoe accuraat kun je de kwaliteit van tomatenplantjes voorspellen?

De kwaliteit van tomatenplantjes voorspellen

Een hackathon om de nauwkeurigheid van het huidige classificatiemodel te verbeteren

24 maart 2020
Door: Itility, partner

Een hackathon om de nauwkeurigheid van het huidige classificatiemodel te verbeteren

Voor de eerste Itility-hackathon van 2020 ontvingen we weer een gevarieerd gezelschap van Itilians, data science studenten en andere data-liefhebbers die samen hun data science-vaardigheden kwamen trainen. De uitdaging: het verbeteren van de nauwkeurigheid van het classificatiemodel, dat wordt gebruikt om de visuele inspectie van 10 dagen oude tomatenplantjes te automatiseren. Dit model wordt gebruikt in een gezamenlijk project met Wageningen University & Research (WUR). 

De hackathon begon met een inleiding over de dataset en het huidige model van Itility. Deze is gebaseerd op een convolutional neural network (CNN), gecombineerd met transfer learning. Het bestaande model kan de kwaliteit van tomatenplantjes al voorspellen met een nauwkeurigheid van 90%.

Een snelle start met voorbeeld-dataset, Python-notebook en XGBoost-model
De focus van de hackathon lag op het verbeteren van de nauwkeurigheid van het bestaande classificatiemodel, door middel van het model verder te trainen op uiterlijke kenmerken van de tomatenplantjes (feature extraction). Hiervoor konden de hackers gebruik maken van PlantCV (een open-source bibliotheek voor beeldanalyse van planten) en een tree-based machine learning model (XGBoost). 

De groep werd verdeeld in teams, met elk een mix van data scientists met verschillende achtergronden. Iedereen kreeg een Python-notebook met code voor het laden van de data, een voorbeeld van feature extraction en een XGBoost-model om op basis van de plantkenmerken classificaties te maken. Elk team kreeg vervolgens de opdracht om de classificatie te verbeteren, met behulp van geavanceerde feature engineering en andere slimme, eigen ideeën.

Nadat iedereen was ingelogd in de Databricks-omgeving, waren de teams klaar om te beginnen met hacken. De meeste teams verkenden eerst het Python-notebook en begonnen met het identificeren van quick wins. Dit kostte echter verrassend veel tijd. Daarom besloten de meeste teams het werk te verdelen. Sommigen concentreerden zich op het verder extraheren van de plantkenmerken uit de afbeeldingen, terwijl anderen aan de slag gingen met het finetunen van de XGBoost-parameters. Specifieke plantkenmerken werden uit de gegevens geëxtraheerd door de mate van kleuring op het blad te meten, met behulp van bovenaanzichtafbeeldingen van de tomatenplantjes. Of door de hoogte van de plant te meten met behulp van zijaanzichtafbeeldingen. Middels een grid search werden de parameters gevonden met de ideale waarden voor het XGBoost-model, zoals leersnelheid door de validatienauwkeurigheid te gebruiken.

Het toepassen van feature engineering loont
Nadat de teams hun aangepaste modellen hadden voltooid, was het tijd om ze te presenteren. Sommige lieten oplossingen zien om de onbalans tussen klassen aan te pakken, zoals het overcompenseren van de minderheidsklasse. Anderen richtte zich uitsluitend op de hoofdtaak van feature engineering. Oplossingen die deze benadering volgde concentreerde zich op de geëxtraheerde kenmerken zelf, zoals kleurfrequenties in de bladeren en de stam, of op het gebruik van afbeeldingen vanuit andere hoeken (zoals zijaanzichten). Deze laatste aanpak bleek het meest effectief. Wanneer de geëxtraheerde plantkenmerken in het XGBoost-model werden opgenomen, resulteerde dit in een aanzienlijke verbetering van de nauwkeurigheid van 90 naar 97 procent.

Het belangrijkste leerpunt was dat domeinkennis van de experts een essentiële rol speelt bij het trainen van modellen voor machine learning. De combinatie van kenmerkextractie van plantafbeeldingen met behulp van PlantCV en het XGBoost-model, overtrof de eerder gebruikte CNN's. Het winnende team behaalde uiteindelijk een nauwkeurigheid van 97,2%.

Wil je meedoen aan de volgende hackathon? Meld je dan aan voor de Meetup-groep Hackabrain om een uitnodiging hiervoor te ontvangen.

Reactie toevoegen