Så här väljer du algoritmer för Azure Mašinsko učenje

Om du undrar vilken maskininlärningsalgoritm som ska användas beror svaret främst på två aspekter av ditt datavetenskapsscenario:

  • Vad vill du göra med dina data? Mer specifikt, vilken affärsfråga vill du besvara genom att lära dig av dina tidigare data?

  • Vilka är kraven i ditt datavetenskapsscenario? Vilka är de funktioner, noggrannhet, träningstid, linjäritet och parametrar som din lösning stöder?

Diagram som visar överväganden för att välja maskininlärningsalgoritmer.

Kommentar

Azure Mašinsko učenje-designern stöder två typer av komponenter: klassiska fördefinierade komponenter (v1) och anpassade komponenter (v2). Dessa två typer av komponenter är INTE kompatibla.

Klassiska fördefinierade komponenter är främst för databearbetning och traditionella maskininlärningsuppgifter som regression och klassificering. Den här typen av komponent stöds fortfarande, men inga nya komponenter läggs till.

Med anpassade komponenter kan du omsluta din egen kod som en komponent. De har stöd för delning av komponenter mellan arbetsytor och sömlös redigering i gränssnitten Studio, CLI v2 och SDK v2.

För nya projekt rekommenderar vi starkt att du använder anpassade komponenter som är kompatibla med AzureML V2 och fortsätter att ta emot nya uppdateringar.

Den här artikeln gäller för klassiska fördefinierade komponenter och är inte kompatibel med CLI v2 och SDK v2.

Fuskblad för Azure Mašinsko učenje-algoritm

Azure Mašinsko učenje Algorithm Cheat Sheet hjälper dig med det första övervägandet: Vad vill du göra med dina data? Leta reda på den uppgift du vill göra på fuskbladet och leta sedan upp en Azure Mašinsko učenje designeralgoritm för lösningen för förutsägelseanalys.

Kommentar

Du kan ladda ned Mašinsko učenje-algoritmens fuskark.

Designern tillhandahåller en omfattande portfölj med algoritmer, till exempel Beslutsskog för flera grupper, rekommendationssystem, neural nätverksregression, neuralt nätverk med flera grupper och K-means-klustring. Varje algoritm är utformad för att hantera olika typer av maskininlärningsproblem. Se algoritm- och komponentreferensen för en fullständig lista tillsammans med dokumentation om hur varje algoritm fungerar och hur du justerar parametrar för att optimera algoritmen.

Tillsammans med den här vägledningen bör du ha andra krav i åtanke när du väljer en maskininlärningsalgoritm. Följande är ytterligare faktorer att tänka på, till exempel noggrannhet, träningstid, linjäritet, antal parametrar och antal funktioner.

Jämförelse av maskininlärningsalgoritmer

Vissa algoritmer gör särskilda antaganden om datastrukturen eller önskade resultat. Om du hittar en som passar dina behov kan det ge dig mer användbara resultat, mer exakta förutsägelser eller snabbare träningstider.

I följande tabell sammanfattas några av de viktigaste egenskaperna för algoritmer från klassificerings-, regressions- och klustringsfamiljerna:

Algoritm Noggrannhet Träningstid Linearitet Parameters Anteckningar
Klassificeringsfamilj
Logistisk regression i två klasser Bra Snabbt Ja 4
Beslutsskog med två klasser Utmärkt Måttlig Nej 5 Visar långsammare bedömningstider. Vi rekommenderar att du inte arbetar med en-mot-alla-multiklass på grund av långsammare bedömningstider som orsakas av trådlåsning i ackumulerande trädförutsägelser
Tvåklasssförstärkning av beslutsträd Utmärkt Måttlig Nej 6 Stort minnesfotavtryck
Neuralt nätverk med två klasser Bra Måttlig Nej 8
Genomsnittlig perceptron med två klasser Bra Måttlig Ja 4
Stödvektordator med två klasser Bra Snabbt Ja 5 Bra för stora funktionsuppsättningar
Logistisk regression för flera grupper Bra Snabbt Ja 4
Beslutsskog för flera grupper Utmärkt Måttlig Nej 5 Visar långsammare bedömningstider
Flerklasssförstärkning av beslutsträd Utmärkt Måttlig Nej 6 Tenderar att förbättra noggrannheten med viss liten risk för mindre täckning
Neuralt nätverk med flera grupper Bra Måttlig Nej 8
En-mot-alla-multiklass - - - - Se egenskaperna för den valda tvåklassmetoden
Regressionsfamilj
Linjär regression Bra Snabbt Ja 4
Beslutsskogsregression Utmärkt Måttlig Nej 5
Förbättrad regression av beslutsträd Utmärkt Måttlig Nej 6 Stort minnesfotavtryck
Neural nätverksregression Bra Måttlig Nej 8
Klustringsfamilj
K-means-klustring Utmärkt Måttlig Ja 8 En klustringsalgoritm

Krav för datavetenskapsscenario

När du vet vad du vill göra med dina data måste du fastställa andra krav för ditt datavetenskapsscenario.

Gör val och eventuellt kompromisser för följande krav:

  • Noggrannhet
  • Träningstid
  • Linearitet
  • Antal parametrar
  • Antal funktioner

Noggrannhet

Noggrannhet i maskininlärning mäter effektiviteten hos en modell som andelen sanna resultat till totala fall. I designern beräknar komponenten Evaluate Model en uppsättning utvärderingsmått av branschstandard. Du kan använda den här komponenten för att mäta noggrannheten för en tränad modell.

Det är inte alltid nödvändigt att få det bästa möjliga svaret. Ibland är en uppskattning tillräcklig, beroende på vad du vill använda den till. Om så är fallet kanske du kan minska bearbetningstiden dramatiskt genom att hålla dig till mer ungefärliga metoder. Ungefärliga metoder tenderar också naturligt att undvika överanpassning.

Det finns tre sätt att använda komponenten Utvärdera modell:

  • Generera poäng över dina träningsdata för att utvärdera modellen.
  • Generera poäng på modellen, men jämför dessa poäng med poäng på en reserverad testuppsättning.
  • Jämför poäng för två olika men relaterade modeller med samma uppsättning data.

En fullständig lista över mått och metoder som du kan använda för att utvärdera noggrannheten för maskininlärningsmodeller finns i Utvärdera modellkomponent.

Träningstid

I övervakad inlärning innebär träning att använda historiska data för att skapa en maskininlärningsmodell som minimerar fel. Antalet minuter eller timmar som krävs för att träna en modell varierar mycket mellan algoritmerna. Träningstiden är ofta nära knuten till noggrannhet; den ena följer vanligtvis med den andra.

Dessutom är vissa algoritmer mer känsliga för antalet datapunkter än andra. Du kan välja en specifik algoritm eftersom du har en tidsbegränsning, särskilt när datamängden är stor.

I designern är det vanligtvis en trestegsprocess att skapa och använda en maskininlärningsmodell:

  1. Konfigurera en modell genom att välja en viss typ av algoritm och sedan definiera dess parametrar eller hyperparametrar.

  2. Ange en datauppsättning som är märkt och har data som är kompatibla med algoritmen. Anslut både data och modellen till komponenten Träna modell.

  3. När träningen har slutförts använder du den tränade modellen med en av bedömningskomponenterna för att göra förutsägelser om nya data.

Linearitet

Linjäritet i statistik och maskininlärning innebär att det finns en linjär relation mellan en variabel och en konstant i datamängden. Till exempel förutsätter linjära klassificeringsalgoritmer att klasser kan avgränsas med en rät linje (eller dess högre dimensionella analog).

Många maskininlärningsalgoritmer använder linjäritet. I Azure Mašinsko učenje designer innehåller de:

Linjära regressionsalgoritmer förutsätter att datatrender följer en rak linje. Det här antagandet är inte dåligt för vissa problem, men för andra minskar det noggrannheten. Trots nackdelarna är linjära algoritmer populära som en första strategi. De tenderar att vara algoritmiskt enkla och snabba att träna.

Diagram som visar en icke-linjär klassgräns.

Icke-linjär klassgräns: Att förlita sig på en linjär klassificeringsalgoritm skulle resultera i låg noggrannhet.

Diagram som visar data med en icke-linjär trend.

Data med en icke-linjär trend: Om du använder en linjär regressionsmetod genereras mycket större fel än nödvändigt.

Antal parametrar

Parametrar är de rattar som en dataexpert får vända när du konfigurerar en algoritm. Det är tal som påverkar algoritmens beteende, till exempel feltolerans eller antal iterationer, eller alternativ mellan varianter av hur algoritmen beter sig. Algoritmens träningstid och noggrannhet kan ibland vara känslig för att få precis rätt inställningar. Vanligtvis kräver algoritmer med ett stort antal parametrar mest utvärdering och fel för att hitta en bra kombination.

Alternativt finns komponenten Tune Model Hyperparameters i designern. Målet med den här komponenten är att fastställa optimala hyperparametrar för en maskininlärningsmodell. Komponenten bygger och testar flera modeller med hjälp av olika kombinationer av inställningar. Den jämför mått över alla modeller för att få kombinationerna av inställningar.

Även om det här är ett bra sätt att se till att du sträckte dig över parameterutrymmet ökar den tid som krävs för att träna en modell exponentiellt med antalet parametrar. Fördelen är att många parametrar vanligtvis indikerar att en algoritm har större flexibilitet. Det kan ofta uppnå mycket god noggrannhet, förutsatt att du kan hitta rätt kombination av parameterinställningar.

Antal funktioner

I maskininlärning är en funktion en kvantifierbar variabel för fenomenet som du försöker analysera. För vissa typer av data kan antalet funktioner vara mycket stort jämfört med antalet datapunkter. Detta är ofta fallet med genetik eller textdata.

Ett stort antal funktioner kan bogsera vissa inlärningsalgoritmer, vilket gör träningstiden ogenomförbar lång. Stödvektordatorer passar bra för scenarier med ett stort antal funktioner. Därför har de använts i många program från informationshämtning till text- och bildklassificering. Stödvektordatorer kan användas för både klassificerings- och regressionsaktiviteter.

Funktionsval avser processen för att tillämpa statistiska tester på indata, givet ett angivet utdata. Målet är att avgöra vilka kolumner som är mer förutsägande för utdata. Komponenten Filterbaserad funktionsval i designern innehåller flera algoritmer för funktionsval att välja mellan. Komponenten innehåller korrelationsmetoder som Pearson-korrelation och chi-kvadratvärden.

Du kan också använda komponenten Funktionsbetydelse för permutation för att beräkna en uppsättning funktionsviktspoäng för din datamängd. Du kan sedan använda dessa poäng för att avgöra vilka funktioner som är bäst att använda i en modell.