Övervakad inlärning förklarade

0
8

Maskininlärning är en gren av artificiell intelligens som innehåller algoritmer för att automatiskt skapa modeller från data. På en hög nivå, det finns fyra typer av lärande: övervakad inlärning, oövervakad inlärning, inlärning, och aktivt lärande. Eftersom inlärning och aktivt lärande är relativt nya, de är ibland utelämnas från listor av detta slag. Du kan också lägga till semi-övervakad inlärning i listan, och inte vara fel.

[ Vettigt av maskininlärning: AI, maskininlärning, och djupt lärande: Allt du behöver veta. | Djup inlärning förklaras. | Maskininlärning förklaras. | Maskinlärande algoritmer förklaras. | Maskin att lära sig färdigheter för programvara ingenjörer. | Gå djupt in i analyser och big data med InfoWorld Big Data-och Analytics-Rapporten nyhetsbrev. ]Vad är övervakad inlärning?

Övervakad inlärning börjar med utbildning data som är märkta med korrekt svar (riktvärden). Efter den lärande processen, du hamnar med en modell med en inställd set av vikter, som kan förutsäga svar för liknande uppgifter som inte redan har märkt.

Du vill träna en modell som har hög noggrannhet utan overfitting eller underfitting. Hög noggrannhet innebär att du har optimerat förlust funktion. I samband med klassificering problem, noggrannhet är den del av exempel där modellen producerar rätt utgång.

Overfitting innebär att modellen är så nära knuten till de data man har sett att det inte generalisera till uppgifter som den inte har sett. Underfitting innebär att modellen inte är tillräckligt komplex för att fånga den underliggande trender i data.

Förlust funktion är valda för att spegla det “ondska” av modell, du minimera förlust för att hitta den bästa modellen. För numeriska (regression) problem, förlust funktion är ofta mean squared error (MSE), också formuleras som root mean squared error (RMSE), eller root mean squared avvikelse (RMSD). Detta motsvarar den Euklidiska avståndet mellan datapunkter och den modell kurva. För klassificering (icke-numeriska) problem, förlust funktion kan vara baserad på en av en handfull åtgärder, inklusive ytan under ROC-kurvan (AUC), genomsnittlig noggrannhet, precision-recall, och log-förlust. (Mer om AUC och ROC-kurvan nedan.)

För att undvika overfitting du ofta dela märkta uppgifterna i två uppsättningar, de flesta för utbildning och minoritet för kontroll eller provning. Den validering som förlust är oftast högre än den utbildning som förlust, men det är det enda du bryr dig om, eftersom man inte uppvisar inriktning mot modellen.

För små datamängder, med fast holdout apparater för test validering kan resultera i lågt statistik. Ett sätt runt detta är att använda en cross-validation system, där olika veck (data undergrupper) turas om att vara den holdout som för olika utbildning epoker.

Jag nämnde att AUC är arean under ROC-kurvan. ROC är receiver operating characteristic curve; termen kommer från radio signal analys, men i huvudsak ROC-kurvan visar känsligheten i klassificerare av plottning andelen sant positiva till graden av falsklarm. Hög arean under ROC-kurvan är bra, så när du använder det som grund för en förlust funktion som du verkligen vill maximera AUC.

Data rengöring för maskininlärning

Det finns ingen sådan sak som rena data i det vilda. För att vara användbar för maskininlärning, data måste vara aggressivt filtreras. Till exempel, du vill:

  • Titta på data och utesluta alla kolumner som har en hel del uppgifter som saknas.
  • Titta på data igen och välja de kolumner som du vill använda (feature selection) för din prognos. Har urval är något du kanske vill variera när du upprepa.
  • Att utesluta alla rader som fortfarande har uppgifter som saknas i övriga kolumner.
  • Rätt uppenbara stavfel och sammanfoga motsvarande svar. Till exempel, USA, USA, USA, och Usa bör slås samman till en enda kategori.
  • Utesluter rader som har data som är utanför intervallet. Till exempel, om du analyserar taxi resor inom New York City, du kommer att vilja filtrera bort rader med pickup eller drop-off latitud och longitud som är utanför bounding box huvudstadsregionen.
  • Det finns mycket mer du kan göra, men det kommer att bero på de data som samlas in. Detta kan vara jobbigt, men om man sätter upp en data-rengöring steg i din maskin lärande pipeline som du kan ändra på och upprepa det som du vill.

    Data kodning och normalisering för maskininlärning

    Att använda kategoriska data för maskinen klassificering, du behöver för att koda text som etiketter i en annan form. Det finns två vanliga kodningar.

    En label-kodning, vilket innebär att varje text etikett värde ersätts med ett nummer. Den andra är en-hot-kodning, vilket innebär att varje text etikett värde förvandlas till en kolumn med ett binärt värde (1 eller 0). De flesta maskininlärning ramar har funktioner som gör konvertering för dig. I allmänhet, en-hot-kodning är att föredra, eftersom etiketten kodning kan ibland förvirra maskininlärning-algoritmen till att tro att den kodade kolumn är beställt.

    Att använda numeriska data för maskinen regression, brukar du behöver för att normalisera data. Annars nummer med större intervall kan ha en tendens att dominera den Euklidiska avståndet mellan funktion vektorer, deras effekter kan förstoras på bekostnad av andra områden, och descentmetoder optimering kan ha svårigheter med att konvergera. Det finns ett antal sätt att normalisera och standardisera data för maskinen lärande, även min-max normalisering, menar normalisering, standardisering, och uppskalning till enheten för längd. Denna process är ofta kallas funktionen skalning.

    Har teknik för lärande

    En feature är en enskild mätbar egenskap eller egenskap hos ett fenomen som observeras. Begreppet “funktion” är relaterat till en förklarande variabel, som används i statistiska metoder som linjär regression. Har vektorer kombinera alla funktioner för en enda rad i en numerisk vektor.

    En del av konsten att välja funktioner är att välja ett minimum av oberoende variabler som förklarar problemet. Om två variabler är starkt korrelerade, antingen de behöver för att kombineras till en enda funktion, eller bör tas bort. Ibland människor utför principal component analysis för att konvertera korrelerade variabler i en uppsättning av linjärt okorrelerade variabler.

    Några av de förändringar som människor använder för att konstruera nya funktioner eller minska dimensionerna av funktionen vektorer är enkla. Till exempel, subtrahera År för födelseår, dödsår och du konstruerar Ålder vid Döden, som är en bästa oberoende variabeln för livslängd och dödlighet analys. I andra fall har byggandet får inte vara så uppenbart.

    Gemensamma maskinlärande algoritmer

    Det finns massor av maskinlärande algoritmer, som varierar i komplexitet från linjär regression och logistisk regression till en djup neurala nätverk och ensembler (kombinationer av andra modeller). Men, några av de mest vanliga algoritmer är:

    • Linjär regression, aka least squares regression (för numeriska data)
    • Logistisk regression (för binära klassificering)
    • Linjär diskriminantanalys (för multi-kategori klassificering)
    • Beslut träd (både för klassificering och regression)
    • Naiva Bayes (för både klassificering och regression)
    • K-närmsta grannar, aka KNN (för både klassificering och regression)
    • Lärande vektor kvantisering, aka LVQ (för både klassificering och regression)
    • Support vector machines, aka SVM (för binära klassificering)
    • Slumpmässiga skogar, en typ av “uppsamlare” (bootstrap sammanläggning) ensemble algoritm (för både klassificering och regression)
    • Öka metoder, inklusive AdaBoost och XGBoost, är ensemble algoritmer för att skapa en serie av modeller där varje inkrementell modell försöker att rätta fel från föregående modell (för både klassificering och regression)
    • Neurala nätverk (för både klassificering och regression)

    Hyperparameter tuning

    Hyperparameters är gratis andra variabler än de vikter som är stämda i en lärande modell. Den hyperparameters variera från algoritm algoritm, men ofta innehåller de lärande räntesats som används för att styra storleken på den korrigering som tillämpas efter det att ett fel har beräknats för ett parti.

    Flera produktionen maskinen lärande plattformar nu erbjuder automatisk hyperparameter tuning. I huvudsak kan du tala om för systemet vad hyperparameters du vill variera och eventuellt det värde som du vill optimera, och systemet sveper de hyperparameters över så många går som du tillåter. (Google Cloud Machine Learning Engine ‘ s hyperparameter tuning utdrag lämpliga mått från TensorFlow modell, så du behöver inte ange det.)

    Det finns tre stora sökalgoritmer för svepande hyperparameters: Bayesiansk optimering, grid sök och slumpmässig sökning. Bayesiansk optimering tenderar att vara de mest effektiva. Du kan enkelt genomföra din egen hyperparameter sveper i koden, även om det inte är automatiserat genom att den plattform du använder.

    För att sammanfatta, övervakas lärande visar märkt utbildning data i en trimmad prediktiv modell. Längs vägen, du behöver för att rengöra och normalisera data, ingenjör en uppsättning av linjärt okorrelerade funktioner, och att prova olika algoritmer för att hitta den bästa modellen.

    Denna berättelse, “Supervised learning förklarade” var ursprungligen publicerad av