Oplær en model til maskinel indlæring
Oplæring af en model til maskinel indlæring omfatter tilpasning af en maskinel indlæringsalgoritme til dine oplæringsdata for at bestemme en acceptabel nøjagtig funktion, der kan anvendes på dens funktioner og beregne de tilsvarende mærkater. Dette kan synes som en konceptuelt enkel idé; men den faktiske proces med oplæring af en model, der giver nøjagtige forudsigelser for nye data, ikke kun de data, den blev oplært med, kan være udfordrende og omfatter en iterativ tilgang til gentagne oplæring og evaluering af modeller ved hjælp af flere algoritmer og parametre.
Oplærings- og valideringsdata
En almindelig tilgang til oplæring af en model til maskinel indlæring er tilfældigt at opdele dataene i undersæt til oplæring og validering. Du kan derefter bruge træningsdatasættet til at passe til en algoritme og oplære en model og derefter teste, hvor godt modellen klarer sig med de valideringsdata, du har holdt tilbage. Dette hjælper med at sikre, at modellen generaliseres godt – det vil sige, at den genererer nøjagtige forudsigelser for oplæring, som den ikke blev oplært på.
Seddel
Modeller, der forudsiger godt for de data, de blev oplært i, men som ikke fungerer godt sammen med nye data, beskrives som overlejret i træningsdataene.
Du skal typisk oplære modellen med omkring 70% af dataene og holde omkring 30% tilbage til validering.
Algoritmer til maskinel indlæring
Der er mange algoritmer til maskinel indlæring, der er grupperet i forskellige algoritmetyper baseret på den type machine learning-problem, du skal løse. De fleste strukturer til maskinel indlæring omfatter flere algoritmer til regression og klassificering samt algoritmer til uovervågede problemer med maskinel indlæring, f.eks. klyngedannelse.
Når du har identificeret den type problem, du vil oprette en model til at løse, kan du vælge mellem flere algoritmer af denne type. Inden for hver type kan der være flere algoritmer at vælge imellem, ofte baseret på forskellige former for matematisk handling. Inden for sættet af algoritmer til klassificering er der f.eks. algoritmer af følgende type:
- Logistiske regressionsalgoritmer , der iterativt anvender logistiske funktioner til at beregne en værdi mellem 0 og 1, der repræsenterer sandsynligheden for hver mulige klasse, og optimere funktionens koefficienter baseret på forskellene mellem den forudsagte klasse og den faktiske kendte etiketværdi.
- Træbaserede funktioner, der definerer et beslutningstræ, hvor en individuel funktion tages i betragtning. og baseret på dens værdi, overvejes en anden funktion osv., indtil der er bestemt en passende klassebeskrivelse.
- Ensemblealgoritmer , der kombinerer flere teknikker for at finde den optimale overordnede forudsigende funktion.
Den "bedste" algoritme afhænger af dine data og kræver normalt en iterativ prøveversion og fejl for at bestemme.
Hyperparametre
Parametrene for en algoritme til maskinel indlæring er de datafunktioner (og mærkater), som den er oplært på. Derudover indeholder de fleste algoritmer til maskinel indlæring hyperparametre , som du kan bruge til at påvirke den måde, algoritmen fungerer på. Hyperparametre giver dig mulighed for at styre ting som det vilkårlighedsniveau, du vil tillade i modellen (så det generaliserer godt, men stadig giver acceptabelt nøjagtige forudsigelser), antallet af gentagelser udført for at finde en optimal model (så du kan undgå overtilpasning og optimere oplæringstiden), antallet af forgreninger, der overvejes i en træmodel, og andre algoritmespecifikke faktorer.
Montering af en model
Hvis du vil oplære en model, skal du tilpasse algoritmen til dataene. De specifikke syntaks- og dataformater, der bruges til at gøre dette, kan variere på tværs af rammer for maskinel indlæring, men princippet er altid det samme. I forbindelse med overvåget maskinel indlæring kan du tilpasse algoritmen til funktionerne baseret på de kendte mærkater. I forbindelse med ikke-overvåget maskinel indlæring angiver du funktionerne, og algoritmen forsøger at adskille dem i diskrete klynger.
I følgende eksempel vises den kode, der bruges til at starte oplæringen af en logistisk regressionsmodel ved hjælp af Spark MLlib-strukturen. Oplæringsdataene leveres som en dataramme, hvor mærkaterne er i en kolonne med heltalsværdier, og de tilsvarende funktioner repræsenteres som en enkelt vektor (matrix) af værdier. I dette eksempel er der også angivet to hyperparametre (maxIter og regParam).
from pyspark.ml.classification import LogisticRegression
lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)