Machine Learning với PySpark
Andrew Collier
Data Scientist, Fathom Data






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|
+------+---+-----------+
Đối tượng để xây dựng mô hình. Có thể là pipeline.
regression = LinearRegression(labelCol='consumption')
Đối tượng đánh giá hiệu năng mô hình.
evaluator = RegressionEvaluator(labelCol='consumption')
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
Lưới giá trị tham số (tạm để trống).
params = ParamGridBuilder().build()
Đối tượng xác thực chéo.
cv = CrossValidator(estimator=regression,
estimatorParamMaps=params,
evaluator=evaluator,
numFolds=10, seed=13)
Áp dụng xác thực chéo lên dữ liệu huấn luyện.
cv = cv.fit(cars_train)
RMSE trung bình qua các fold là bao nhiêu?
cv.avgMetrics
[0.800663722151572]
Dự đoán trên tập kiểm thử gốc.
evaluator.evaluate(cv.transform(cars_test))
# RMSE trên dữ liệu kiểm thử
0.745974203928479
Nhỏ hơn nhiều so với RMSE xác thực chéo.
# RMSE từ xác thực chéo
0.800663722151572
Chia train-test đơn giản sẽ cho đánh giá quá lạc quan về hiệu năng mô hình.
Machine Learning với PySpark