Machine Learning với PySpark
Andrew Collier
Data Scientist, Fathom Data
Chỉ dùng cho dữ liệu huấn luyện.
Dùng cho dữ liệu kiểm tra và huấn luyện.


Một pipeline gồm chuỗi thao tác.
Bạn có thể áp dụng từng thao tác riêng lẻ... hoặc áp dụng cả pipeline!
indexer = StringIndexer(inputCol='type', outputCol='type_idx')onehot = OneHotEncoder(inputCols=['type_idx'], outputCols=['type_dummy'])assemble = VectorAssembler( inputCols=['mass', 'cyl', 'type_dummy'], outputCol='features' )regression = LinearRegression(labelCol='consumption')
indexer = indexer.fit(cars_train)
cars_train = indexer.transform(cars_train)
onehot = onehot.fit(cars_train)
cars_train = onehot.transform(cars_train)
cars_train = assemble.transform(cars_train)
# Huấn luyện mô hình trên dữ liệu huấn luyện
regression = regression.fit(cars_train)
cars_test = indexer.transform(cars_test)
cars_test = onehot.transform(cars_test)
cars_test = assemble.transform(cars_test)
# Dự báo trên dữ liệu kiểm tra
predictions = regression.transform(cars_test)
Kết hợp các bước vào một pipeline.
from pyspark.ml import Pipeline
pipeline = Pipeline(stages=[indexer, onehot, assemble, regression])
Dữ liệu huấn luyện
pipeline = pipeline.fit(cars_train)
Dữ liệu kiểm tra
predictions = pipeline.transform(cars_test)
Truy cập từng giai đoạn qua thuộc tính .stages.
# Đối tượng LinearRegression (giai đoạn 4 -> chỉ số 3) pipeline.stages[3]print(pipeline.stages[3].intercept)
4.19433571782916
print(pipeline.stages[3].coefficients)
DenseVector([0.0028, 0.2705, -1.1813, -1.3696, -1.1751, -1.1553, -1.8894])
Machine Learning với PySpark