Cross-validasi pipeline model durasi penerbangan
Model tervalidasi-silang yang baru saja Anda bangun sederhana, hanya menggunakan km untuk memprediksi duration.
Prediktor penting lainnya untuk durasi penerbangan adalah bandara asal. Penerbangan umumnya membutuhkan waktu lebih lama untuk lepas landas dari bandara yang sibuk. Mari kita lihat apakah menambahkan prediktor ini dapat meningkatkan model!
Dalam latihan ini Anda akan menambahkan field org ke model. Namun, karena org bersifat kategorikal, ada beberapa langkah sebelum dapat disertakan: terlebih dahulu harus diubah menjadi indeks dan kemudian di-one-hot encode sebelum digabungkan dengan km dan digunakan untuk membangun model regresi. Kita akan membungkus operasi ini dalam sebuah pipeline.
Objek-objek berikut telah dibuat:
params— grid parameter kosongevaluator— evaluator regresiregression— objekLinearRegressiondenganlabelCol='duration'.
Kelas StringIndexer, OneHotEncoder, VectorAssembler, dan CrossValidator telah diimpor.
Latihan ini adalah bagian dari kursus
Machine Learning dengan PySpark
Petunjuk latihan
- Buat string indexer. Tentukan field masukan dan keluaran sebagai
orgdanorg_idx. - Buat one-hot encoder. Beri nama field keluarannya
org_dummy. - Gabungkan field
kmdanorg_dummymenjadi satu field bernamafeatures. - Buat pipeline dengan urutan operasi berikut: string indexer, one-hot encoder, assembler, dan linear regression. Gunakan ini untuk membuat cross-validator.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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=____)