1. Learn
  2. /
  3. Курси
  4. /
  5. Опрацювання ознак у PySpark

Connected

Вправа

Коригування часових ознак

Протягом цього курсу ми неодноразово згадували про ризики витоку інформації до моделі під час навчання. Витік даних призводить до занадто оптимістичних метрик точності, але на реальних даних результати часто розчаровують.

У цій вправі ми переконаємося, що DAYSONMARKET відображає лише ту інформацію, яку ми маємо на момент передбачення значення. Тобто, якщо будинок ще на ринку, ми не знаємо, скільки днів він там пробуде. Нам потрібно скоригувати test_df, щоб він відображав дані станом на 2017-12-10.

ПРИМІТКА: У цьому прикладі використано функцію lit(). Вона дозволяє підставляти поодинокі значення там, де у виклику функції зазвичай очікується весь стовпець.

Інструкції

100 XP
  • Імпортуйте з pyspark.sql.functions такі функції для подальшого використання: datediff(), to_date(), lit().
  • Перетворіть рядок дати '2017-12-10' на дату pyspark: спершу викличте до нього літеральну функцію lit(), а потім застосуйте to_date().
  • Створіть test_df, відфільтрувавши рядки з OFFMKTDATE більшим або рівним split_date та LISTDATE меншим або рівним split_date за допомогою where().
  • Замініть DAYSONMARKET, обчисливши новий стовпець DAYSONMARKET. Новий стовпець має бути різницею між split_date і LISTDATE; використайте datediff() для обчислення дат. Перегляньте новий і початковий стовпці за наданим кодом.