Träna och validera en modell

Slutförd

Processen för att träna och validera en maskininlärningsmodell med spark-ML är ganska enkel. Stegen är följande:

  1. Dela data.
  2. Att träna upp en modell.
  3. Verifiera en modell.

Dela data

Det första steget handlar om att dela data mellan tränings- och valideringsdatauppsättningar. På så sätt kan en dataexpert träna en modell med en representativ del av data, samtidigt som en viss procentandel behålls som en väntande datamängd. Den här hold-out-datamängden kan vara användbar för att avgöra om träningsmodellen överanpassas det vill säga att spärra till träningsdatamängdens egenskaper i stället för att hitta allmänt tillämpliga relationer mellan variabler.

DataFrames stöder en randomSplit() metod, vilket gör den här processen med att dela upp data enkel.

Träna en modell

Träning av en modell bygger på tre viktiga abstraktioner: en transformer, en beräkningsmodell och en pipeline.

En transformering tar en DataFrame som indata och returnerar en ny DataFrame som utdata. Transformers är användbara för att utföra funktionsutveckling och funktionsval, eftersom resultatet av en transformering är en annan DataFrame. Ett exempel på detta kan vara att läsa i en textkolumn, mappa textkolumnen till en uppsättning funktionsvektorer och mata ut en DataFrame med den nyligen mappade kolumnen. Transformers implementerar en .transform() -metod.

En beräknare tar en DataFrame som indata och returnerar en modell. Den tar en DataFrame som indata och returnerar en modell, som själv är en transformering. Ett exempel på en beräknare är LinearRegression maskininlärningsalgoritmen. Den accepterar en DataFrame och skapar en Model . Beräknare implementerar en .fit() metod.

Pipelines kombinerar beräknare och transformerar och implementerar en .fit() metod. Genom att dela upp träningsprocessen i en serie faser är det enklare att kombinera flera algoritmer.

Verifiera en modell

När en modell har tränats blir det möjligt att verifiera dess resultat. Spark ML innehåller inbyggd sammanfattningsstatistik för modeller baserat på valfri algoritm. Med linjär regression innehåller modellen till exempel ett -objekt, som innehåller poäng som summary RMSE (Root Mean Square Error), MEAN Absolute Error (MAE) och bestämningskoefficienten (R2, uttalas R-kvadrat). Det här är sammanfattningsmåtten baserat på träningsdata.

Därifrån, med en valideringsdatauppsättning, är det möjligt att beräkna sammanfattande statistik på en datauppsättning som aldrig har setts förut och köra modellens funktion mot transform() valideringsdatauppsättningen. Därifrån kan du använda utvärderare som för att beräkna mått som RegressionEvaluator RMSE, MAE och R2.