Gör din datauppsättning redo för träning
Du tränar en datauppsättning för att besvara din fråga för maskininlärning. Träningsdatauppsättningen innehåller en kolumn för varje funktion samt en kolumn som innehåller målet. Algoritmerna för maskininlärning lär sig allmänna mönster från dessa datarader för att skapa en modell som kan förutsäga målet.
För att göra datauppsättningen redo för maskininlärning måste du förstå dina data och samla in de nödvändiga datapunkterna. Du kan också behöva omvandla vissa data och ta bort data som inte är relevanta för ditt användningsområde.
Vilka uppgifter ska du samla in?
Definiera din fråga för maskininlärning exakt och bestäm exakt vad som behöver samlas in för att närma dig frågan:
-
Om du vill förutsäga vilka kunder som kommer att säga upp sin tjänst måste du sammanställa en datauppsättning där varje rad representerar en kund, varje funktionskolumn representerar en funktion som beskriver kunden och målkolumnen är om kunden har sagt upp sin tjänst under en viss tidsperiod.
-
Om du vill förutsäga hur försäljningen kommer att se ut för en viss månad och en viss region måste du sammanställa en datauppsättning där varje rad representerar en viss månad för en viss region, varje funktionskolumn representerar en funktion som beskriver den månadens verksamhet i den regionen och målkolumnen är försäljningsintäkterna för den regionen under den månaden.
Försök att ta reda på vilka saker som kan påverka målet och se om det går att samla in dessa data. Kom ihåg att prognosalgoritmerna endast kan identifiera mönster som finns där och kan hittas. Kanske behöver du samla in eller skapa ytterligare funktioner för att få fram ytterligare information.
Du måste också bestämma hur mycket data du behöver samla in innan du kan göra en korrekt prognos. Hur lång tid tar det innan händelsen blir representativ? Ta följande exempel:
-
Kunderna måste ha varit medlemmar i 60 dagar innan du kan förutse om de kommer att avregistrera sig efter 90 dagar.
-
Kostnaderna för försäkringskrav kommer inte att vara kända förrän efter några månader, så du kan utesluta krav som är mindre än sex månader gamla.
Skilj mellan tidsvariabla och ej tidsvariabla data. Med tidsvariabla data, är de tidsstämplade för att kunna aggregeras på lämpligt sätt?
Kommer dessa data att vara tillgängliga vid tidpunkten för prognosen?
Se till att alla funktioner som du inkluderar i träningsdatauppsättningen kommer att vara tillgängliga även för framtida prognoser. Det är ett vanligt misstag att träna modellen på funktioner som du har tillgång till för historiska data, men som inte kommer att vara tillgängliga när du gör en prognos i framtiden. När algoritmen för maskininlärning gör prognoser på nya data måste den ha värden för alla funktioner som fanns tillgängliga i träningsdatauppsättningen.
Är mer data bättre?
Exempelstorlek
En större mängd data tenderar att ge mer tillförlitliga modeller. Alla ytterligare relevanta datapunkter är till hjälp, oavsett om de är nya eller historiska observationer.
Antal funktioner
Det kan vara frestande att inkludera alla möjliga variabler i modellen, oavsett hur relevanta de är för det eftersträvade resultatet. Enklare är oftast bättre. Det är i allmänhet bättre att använda ett mindre antal funktioner i modellen.
När det finns fler funktioner kan det finnas en större risk för att det verkliga underliggande förhållandet som du vill avslöja kan döljas. Den prediktiva modellen kan använda alla funktioner för att ta fram en serie komplicerade regler som fungerar bra mot de data som används för att träna modellen. Men det förutspådda målet kanske i själva verket bara påverkas av en eller två funktioner. Modellen kanske inte är så bra på att generalisera till data utanför de data som användes vid träningen, vilket skulle leda till dåliga prognoser när den tillämpas på nya data.
Överanpassning
Överanpassning innebär att en modell är alltför komplex och därför inte är tillförlitlig när det gäller att förutsäga nya data. Överanpassning tenderar att inträffa när det finns för många funktioner i förhållande till antalet tillgängliga datapunkter. Det kan till exempel vara så att du bara har 50 datarader och 100 funktionskolumner i datauppsättningen.
Är dina träningsdata relevanta?
En algoritm för maskininlärning hittar mönster i de data du matar in och använder dessa mönster för att göra prognoser om data i framtiden. När du gör prognoser om nya data antar du att de liknar träningsdata. Därför är det viktigt att träningsdatauppsättningen statistiskt sett liknar de data som du ska göra prognoser på.
Om marknaden eller verksamheten har förändrats avsevärt jämfört med vad som beskrivs i din träningsdatauppsättning använder du förmodligen en föråldrad datauppsättning som kommer att leda till felaktiga prognoser. Du kan behöva skapa en ny träningsdatauppsättning och endast använda data som samlats in efter ändringen.
Tänk på exemplet om försäljningsprognoser i Grunderna för maskininlärning. Låt oss säga att vi matade in data i vår algoritm som representerade reklamutgifter i tv, radio och tidningar samt försäljningsintäkter för historiska kvartal. Uppgifterna samlades dock in på 1980-talet. Nu gör vi inte längre reklam för den produkten i radion, utan nästan uteslutande på nätet. Vår tränade algoritm skulle inte kunna förutsäga försäljningen för det aktuella kvartalet eftersom träningsdata inte är representativa för den aktuella verksamheten.
Utforska data
Använd dina kunskaper om verksamheten för att förstå och validera data. Om data inte stämmer överens med dina antaganden, kan det tyda på problem med data eller kan det tyda på att dina antaganden inte stämmer?
Ta bort opålitliga funktioner
Överväg att utesluta kolumner från datauppsättningen när:
-
Det finns en hög koncentration av ett värde (låg kardinalitet). Till exempel en kolumn med värdena "röd", "grön" och "blå" där 90 procent av värdena är "röd".
-
Värdena är mycket unika (hög kardinalitet).
-
De flesta av värdena är noll.
Åtgärda relaterade funktioner
Ta bort överflödiga funktioner, t.ex. starkt korrelerade funktioner som ger samma eller mycket likartad information. Överväg att välja en enda funktion från grupper som verkar fånga samma beteenden i data. Försök att avgöra om det finns en funktion som driver den andra.
Ersätt nollvärden
Undersök dina data för att ta reda på om det saknas värden i viktiga datapunkter, t.ex. målet eller viktiga funktioner. Om du vill använda värden från en gles kolumn kan du ersätta nollvärden med "annan" eller "okänd". Eller så kanske du behöver omvärdera datainsamlingen.
Målintervall
Titta på fördelningen av data. Om fördelningen av dina måldata är för utspridd i förhållande till urvalets storlek kan det vara svårt att hitta något mönster i dina data.
Vilket är intervallet för datavärden? Det finns vissa svårigheter med att förutsäga datavärden utanför intervallet. Läs mer i Extrapolering och interpolering.
Finns det avvikelser i fördelningen? Snedvridning, svansar och multimodala former i dina data kan kräva ytterligare dataomvandling eller ytterligare funktionsbehandling. Försök att gruppera kategorier med låg volym och avrunda eller ta bort svansar i numeriska funktioner.
Eliminera avvikelser
Överväg att ta bort observationer med avvikande värden i funktionskolumnerna. Avvikande värden kan hindra en algoritm från att urskilja allmänna mönster i data. Det kan vara bättre att titta på en mindre delmängd av data som har en snävare spridning i målkolumnen.
Gruppering av data
Du kan förbättra dina resultat genom att dela upp data i olika datauppsättningar och använda dem för att träna separata modeller. Basera datagrupperingen på en eller flera funktioner.
Dataläckage
Dataläckage innebär att de data som används för att träna en algoritm för maskininlärning innehåller den information som du försöker förutsäga.