För att maskininlärning (ML) ska fungera krävs stora datamängder och att databearbetningen håller en hög kvalitet. Varför är det så viktigt att förbereda data på rätt sätt och hur gör man det? I den här artikeln tar vi en närmare titt på varför organisationer behöver skaffa sig kontroll över sina data och hur det går till.
Att utvecklingen inom maskininlärning under flera decennier gick så trögt, beror dels på att det är en extremt komplex uppgift att efterlikna mänskligt beteende, men även på svårigheterna att bearbeta de stora datamängder som krävs. I dag ser det annorlunda ut. Tack vare de stora framsteg som gjorts inom programutveckling och tillgången på skalbar datorkraft och stora datamängder, investerar allt fler organisationer i maskininlärning och tillhörande teknik.
Maskininlärning har växt enormt snabbt på senare år och idag används tekniken i till exempel sökmotorer och sociala medier, dvs. i tjänster som de flesta av oss använder dagligen och blivit beroende av. Företag använder maskininlärning i CRM-system, inom marknadsföring och ledningsfunktioner samt rent allmänt för att kunna fatta bättre affärsbeslut.
Men för att en lösning som bygger på maskininlärning ska bli framgångsrik krävs stora mängder data. Faktum är att data är hjärtat i varje ML-modell. Och stora datamängder kräver bra databehandling. En förutsättning för att lyckas med databehandling är att data förbereds på rätt sätt. Om man misslyckas med detta får det stora negativa konsekvenser för ML-modellen.
Varför förbereda data?
När ett problem ska lösas med maskininlärning samlas rådata in, baserat på vad problemet är och vilka förutsägelser maskininlärningsalgoritmen ska göra. Om du till exempel vill förutsäga priset på bostäder i ett visst område behöver du en stor mängd data om tidigare försäljningar av bostäder i området – inklusive priser och detaljerade uppgifter om varje bostadsförsäljning.
Men de data som samlas kan inte användas i sin ursprungliga form. Datamängden måste förberedas innan den kan användas som beslutsunderlag. Skälet till detta är följande:
- ML-algoritmer använder tal. En datamängd innehåller ofta många olika typer av data och maskininlärningsmodeller bygger vanligtvis på att datan ska bestå av numeriska tal. Med andra ord använder modellen tal som indata och förutsäger sedan utdata, även dessa i form av tal.
- För att en ML-algoritm ska fungera måste vissa förutsättningar vara uppfyllda. Det finns mängder av unika algoritmer som kan användas för att lösa unika problem och för att avgöra vilka algoritmer som ger bäst resultat i ett visst projekt måste man först utvärdera flera olika algoritmer, med hänsyn till datamängd och de problem som ska lösas. Utmaningen är att varje enskild algoritm ställer särskilda krav på datans utformning och därför behöver datan anpassas till de specifika algoritmer som valts.
- Maskininlärningsmodeller är beroende av data. ML-algoritm är endast så bra som de data som används för att träna den. Man kan jämföra det med en bil. Om bilen tankas med ett dåligt drivmedel påverkas motorns prestanda negativt. I maskininlärning reduceras modellens förmåga att göra förutsägelser om indatan inte förbereds korrekt eller om datamängden inte är tillräckligt omfattande.
Eftersom vi vet att många ML-modeller är väl etablerade, förstådda och används i stor omfattning är den avgörande faktorn för hur väl modellen fungerar vilka data som används till att träna dem. Med andra ord är det oerhört viktigt att data förbereds på rätt sätt.
Vill du få ut mer av dina data?
Databehandling på bästa sätt
Här följer några tips på hur du förbereder data på rätt sätt inför analys eller användning med en viss algoritm.
Identifiera användningsfallet
Många analysproblem kan lösas med självlärande algoritmer, men det är inte så enkelt att det bara är att välja en algoritm och mata den med data. För det första gäller det att välja en algoritm som är lämplig för ändamålet. I praktiken är det datan som bestämmer vilken algoritm som bör användas, inte tvärtom.
Definiera datamängden
För varje ML-algoritm krävs en datamängd, en eller flera datakällor och en frekvens för uppdatering av algoritmen. Det är viktigt komma ihåg att dessa krav varierar beroende på vilken algoritm som ska användas. I en realtidsanalys till exempel, kan algoritmen kräva clickstream-data i realtid. På liknande sätt kräver prediktiva analyser historiska data. Det är också viktigt att göra en bedömning av vad som faktiskt är möjligt att åstadkomma med hänsyn till aktuell budget och tidsram. Dessa faktorer är avgörande för vilka datamängder som kan användas och hur data bör förberedas.
Definiera kraven för databearbetningen
Det aktuella användningsfallet styr vilka data som bör användas och även hur data bör samlas in och bearbetas innan analysen påbörjas. För att reducera ”false positives” och bias i datan bör man även tänka igenom hur felaktiga värden ska hanteras och hur data ska profileras och kvalitetssäkras.
Definiera logiska användningsmönster
När användningsfallet har identifierats och kraven för datamängden och förberedelsen av data har fastställts är det dags att välja indata för datatyperna, vilka beslut algoritmen ska fatta och hur dessa beslut ska viktas. Eller med andra ord – bestämma hur data ska användas.
Bygg en pipeline för varje användningsfall
När stegen ovan är genomförda är det dags att definiera kraven för pipelinen för det aktuella användningsfallet, både för träningen av modellen och för den slutliga implementeringen. Eftersom kraven på datamängd, prestanda och frekvens varierar mellan olika användningsfall kan flera olika pipelines behövas. För att processen ska bli så effektiv som möjligt bör alla pipelines studeras så att eventuella överlapp kan identifieras. Ofta kan en kombination av pipeline-komponenter användas.
Välj en dataplattform
Nästa steg är att välja en dataplattform, baserat på de datakällor som ska användas och kraven på databehandling. Det finns många alternativ, från open source-lösningar till kommersiella lösningar. Om det rör sig om mycket stora mängder data kan en data lake (datasjö) användas för lagring. Dessa data kan sedan bearbetas och förberedas för analys i strukturerade datalager.
Läs även: Vad är skillnaden mellan en datasjö och ett datalager?
Planera för tillväxt
När det handlar om maskinvarumiljön är det viktigt att planera för tillräcklig beräkningskraft, lagring och nätverkskapacitet för varje pipeline. ML-projekt är i hög grad beroende av data och det krävs större resurser under träningen och förbättringen av modellen än när modellen används i produktion. Därför är det viktigt att ta höjd för stora datamängder. Molnbaserade plattformar är skalbara vilket gör det möjligt att välja prestanda och beräkningskraft utan stora investeringar i maskinvara.
Testa tillräckligt
En av de viktigaste faktorerna för att lyckas med maskininlärning är att modellerna testas tillräckligt, både före och efter driftsättning av modellen. Detta arbete innefattar att de underliggande datamängderna justeras kontinuerligt och förutsätter att en fullständig ändringshistorik finns tillgänglig.
Övervaka och optimera dataflödet
Välj en lösning med centraliserade funktioner för konfigurering, övervakning, felsökning och kapacitetsplanering. På så sätt blir det enklare att se till att all data är tillgänglig och redo att analyseras med maskininlärning.
Hur kan Visma bWise bistå din organisation?
Genom att följa dessa metoder kan din organisation optimera dataarkitekturen och uppnå bästa möjliga resultat med maskininlärning. TimeXtender är en plattform för automatiserad databehandling och implementering av datasjöar, datalager och semantiska åtkomstlager.
TimeXtender framtidssäkrar data på Microsoft-plattformar och gör det också möjligt att byta dataplattform utan att pipelines måste byggas om.
Vill du lära dig mer om TimeXtender eller någon av våra andra lösningar och tjänster inom Business intelligence, analys eller data management?