ПочатиПочніть безкоштовно

Крос-валідація конвеєра моделі тривалості польоту

Крос-валідаційна модель, яку ви щойно побудували, була простою: вона використовувала лише 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=____)
Редагувати та запускати код