Křížová validace

Machine Learning with PySpark

Andrew Collier

Data Scientist, Fathom Data

Úplná datová sada

Machine Learning with PySpark

Datová sada rozdělená na trénovací a testovací sadu

Machine Learning with PySpark

Trénovací data rozdělená do více částí

Machine Learning with PySpark

Část po části – první část

První část

Machine Learning with PySpark

Část po části – druhá část

Druhá část

Machine Learning with PySpark

Část po části – ostatní části

Zbývající části

Machine Learning with PySpark

Automobily znovu

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 with PySpark

Estimátor a evaluátor

Objekt pro sestavení modelu. Může být pipeline.

regression = LinearRegression(labelCol='consumption')

Objekt pro vyhodnocení výkonu modelu.

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

Mřížka a křížový validátor

from pyspark.ml.tuning import CrossValidator, ParamGridBuilder

Mřížka hodnot parametrů (prozatím prázdná).

params = ParamGridBuilder().build()

Objekt křížové validace.

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

Křížové validátory také potřebují trénování

Aplikace křížové validace na trénovací data.

cv = cv.fit(cars_train)

Jaká je průměrná RMSE napříč částmi?

cv.avgMetrics
[0.800663722151572]
Machine Learning with PySpark

Křížové validátory se chovají jako modely

Predikce na původních testovacích datech.

evaluator.evaluate(cv.transform(cars_test))
# RMSE on testing data
0.745974203928479

Výrazně nižší než RMSE z křížové validace.

# RMSE from cross-validation
0.800663722151572

Prosté rozdělení na trénovací a testovací sadu by poskytlo příliš optimistický pohled na výkon modelu.

Machine Learning with PySpark

Křížová validace pro všechny modely!

Machine Learning with PySpark

Preparing Video For Download...