Крос-валідація конвеєра моделі тривалості польоту
Крос-валідаційна модель, яку ви щойно побудували, була простою: вона використовувала лише km, щоб передбачити duration.
Ще одним важливим предиктором тривалості польоту є аеропорт вильоту. Зазвичай із завантажених аеропортів літакам довше злітати. Перевірмо, чи покращить модель додавання цього предиктора!
У цій вправі ви додасте поле org до моделі. Однак, оскільки org є категоріальним, перед включенням потрібно виконати додаткові кроки: його слід перетворити на індекс, а потім закодувати у форматі one-hot, після чого об'єднати з km і використати для побудови регресійної моделі. Ми обгорнемо ці операції в конвеєр.
Уже створено такі об'єкти:
params— порожня ґратка параметрівevaluator— засіб оцінювання для регресіїregression— об'єктLinearRegressionізlabelCol='duration'.
Класи StringIndexer, OneHotEncoder, VectorAssembler і CrossValidator вже імпортовано.
Ця вправа є частиною курсу
Machine Learning з PySpark
Інструкції до вправи
- Створіть перетворювач індексування рядків. Укажіть вхідне та вихідне поля як
orgіorg_idx. - Створіть one-hot кодувальник. Назвіть вихідне поле
org_dummy. - Об'єднайте поля
kmіorg_dummyв одне поле з назвоюfeatures. - Створіть конвеєр із таких кроків: індексатор рядків, one-hot кодувальник, збирач ознак і лінійна регресія. Використайте його, щоб створити крос-валідацію.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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=____)