PySpark로 하는 Machine Learning
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|
+------+---+-----------+
모형을 학습할 객체입니다. 파이프라인일 수도 있습니다.
regression = LinearRegression(labelCol='consumption')
모형 성능을 평가할 객체입니다.
evaluator = RegressionEvaluator(labelCol='consumption')
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
하이퍼파라미터 값의 그리드(현재는 비어 있음).
params = ParamGridBuilder().build()
교차 검증 객체입니다.
cv = CrossValidator(estimator=regression,
estimatorParamMaps=params,
evaluator=evaluator,
numFolds=10, seed=13)
훈련 데이터에 교차 검증을 적용합니다.
cv = cv.fit(cars_train)
폴드 전체의 평균 RMSE는 얼마입니까?
cv.avgMetrics
[0.800663722151572]
원래 테스트 데이터로 예측합니다.
evaluator.evaluate(cv.transform(cars_test))
# 테스트 데이터의 RMSE
0.745974203928479
교차 검증 RMSE보다 더 작습니다.
# 교차 검증의 RMSE
0.800663722151572
단순한 학습/테스트 분할만 사용하면 성능이 과대평가될 수 있습니다.
PySpark로 하는 Machine Learning