Cross-validate pipeline mô hình thời lượng chuyến bay
Mô hình cross-validated mà bạn vừa xây dựng khá đơn giản, chỉ dùng km để dự đoán duration.
Một biến dự báo quan trọng khác cho thời lượng chuyến bay là sân bay xuất phát. Các chuyến bay thường mất nhiều thời gian hơn để cất cánh từ các sân bay đông đúc. Hãy xem việc thêm biến này có cải thiện mô hình không!
Trong bài này, bạn sẽ thêm trường org vào mô hình. Tuy nhiên, vì org là biến phân loại, cần xử lý thêm trước khi đưa vào: trước hết phải chuyển thành chỉ số (index), sau đó one-hot encode, rồi mới kết hợp với km và dùng để xây dựng mô hình hồi quy. Chúng ta sẽ gói các thao tác này trong một pipeline.
Các đối tượng sau đã được tạo sẵn:
params— một lưới tham số rỗngevaluator— một bộ đánh giá hồi quyregression— một đối tượngLinearRegressionvớilabelCol='duration'.
Các lớp StringIndexer, OneHotEncoder, VectorAssembler và CrossValidator đã được import.
Bài tập này là một phần của khóa học
Machine Learning với PySpark
Hướng dẫn bài tập
- Tạo một string indexer. Chỉ định trường đầu vào và đầu ra là
orgvàorg_idx. - Tạo một one-hot encoder. Đặt tên trường đầu ra là
org_dummy. - Ghép các trường
kmvàorg_dummyvào một trường duy nhất tênfeatures. - Tạo một pipeline với các bước sau: string indexer, one-hot encoder, assembler và linear regression. Dùng pipeline này để tạo một cross-validator.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Create an indexer for the org field
indexer = ____(____, ____)
# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)
# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)
# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
estimatorParamMaps=____,
evaluator=____)