Nu fik jeg jo en masse data ind i Azure IoT Hub, og jeg vi gerne lære lidt Machine Learning (ML), så hvad kan jeg mon bruge disse data til sammen med ML?
Først udvidede jeg min dims med et par sensorer mere. Jeg satte en DHT22 mere på, med en ledning, så den kunne hænge ud af vinduet. Og så satte jeg den til at køre nede på vores badeværelse. Dvs. jeg nu både fik indendørs og udendørs luftfugtighed og temperatur aflæsninger. Disse aflæsninger sendte jeg til IoT hvert 10 sekund. Men hvordan kan jeg bruge det til ML?
Jeg skal måske lige forklare hvad ML er. ML er næsten det samme som Artificial Intelligence (AI). Det er en computer (Machine) der kigger på en masse historiske data, og bruger dem til at lære (Learning) sammenhænget mellem data. Senere kan man så bruge denne læring til at lave et kvalificeret gæt på nogle ukendte parameter i datasættet, hvis man kender de øvrige parameter.
Jeg ville gerne bruge ML til at forudsige sandsynligheden for regn, ud fra de parameter jeg kender, som jo er udendørs luftfugtighed og temperatur. Men først skulle jeg bruge et datasæt til at “træne” min ML. Jeg skulle altså have en masse data som indholder luftfugtighed, temperatur OG regn. Hvor finder man det? Jeg fandt et datasæt på nettet fra en lufthavn. Der var et væld af vejr data, men jeg skulle kun bruge de 3 tidligere nævnte parametre. Men heldigvis er det netop denne slags AzureML er god til.
Da jeg havde fået trænet modellen kunne jeg se at den ville kunne “gætte” sandsynligheden for regn rigtig 67,2% af gangene. Det er ikke imponerende, men det er sikkert lige så godt som DMI 😉
Havde det været nede på 50% af gangene, så kunne jeg lige så godt slå med en terning. Men det her var trods alt lidt bedre. Hvis man ville have præcisionen bedre, kunne man bare tilføje flere relevante parametre. Det kunne f.eks. være tid på året, tid på dagen, lufttryk osv. Men det vigtige for mig var ikke at få den til at gætte så rigtigt som muligt, men mere bevise at det kunne lade sig gøre. Og det kunne det. 🙂
Når man har trænet sin model, kan man automatisk oprette en webservice fra Azure ML, som tager 2 parametere (temperatur og luftfugtughed) og svarer så med sandsynligheden for regn. Det er jo lige det jeg skulle bruge til mit IoT projekt. Så med lidt tilpasninger til Stream Analytics i Azure, så fik jeg nu en værdi mere med ind i PowerBI, nemlige sandsynligheden for regn. Så nu kan det også ses live og historisk, ud fra den min dims i badeværelset aflæser.