Kruisvalidering

Machine Learning met PySpark

Andrew Collier

Data Scientist, Fathom Data

Volledige dataset

Machine Learning met PySpark

Dataset gesplitst in training en test

Machine Learning met PySpark

Trainingsdata gesplitst in meerdere folds

Machine Learning met PySpark

Fold na fold - eerste fold

Eerste fold

Machine Learning met PySpark

Fold na fold - tweede fold

Tweede fold

Machine Learning met PySpark

Fold na fold - overige folds

Resterende folds

Machine Learning met PySpark

Auto’s opnieuw bekeken

cars.select('mass', 'cyl', 'consumption').show(5)
+------+---+-----------+
|  mass|cyl|consumption|
+------+---+-----------+
|1451.0|  6|       9.05|
|1129.0|  4|       6.53|
|1399.0|  4|       7.84|
|1147.0|  4|       7.84|
|1111.0|  4|       9.05|
+------+---+-----------+
Machine Learning met PySpark

Estimator en evaluator

Een object om het model te bouwen. Dit kan een pipeline zijn.

regression = LinearRegression(labelCol='consumption')

Een object om de modelprestatie te evalueren.

evaluator = RegressionEvaluator(labelCol='consumption')
Machine Learning met PySpark

Grid en cross-validator

from pyspark.ml.tuning import CrossValidator, ParamGridBuilder

Een rooster met parameterwaarden (nu leeg).

params = ParamGridBuilder().build()

Het kruisvalideringsobject.

cv = CrossValidator(estimator=regression,
                    estimatorParamMaps=params,
                    evaluator=evaluator,
                    numFolds=10, seed=13)
Machine Learning met PySpark

Cross-validators moeten ook trainen

Pas kruisvalidering toe op de trainingsdata.

cv = cv.fit(cars_train)

Wat is de gemiddelde RMSE over de folds?

cv.avgMetrics
[0.800663722151572]
Machine Learning met PySpark

Cross-validators gedragen zich als modellen

Maak voorspellingen op de originele testdata.

evaluator.evaluate(cv.transform(cars_test))
# RMSE op testdata
0.745974203928479

Veel kleiner dan de kruisgevalideerde RMSE.

# RMSE uit kruisvalidering
0.800663722151572

Een simpele train-test-split zou te optimistisch zijn over de modelprestatie.

Machine Learning met PySpark

Valideer alle modellen kruisgewijs!

Machine Learning met PySpark

Preparing Video For Download...