Работа с пропущенными данными

Практика вопросов интервью по машинному обучению на Python

Lisa Stuart

Data Scientist

Предварительные требования

Практика вопросов интервью по машинному обучению на Python

План курса

  • Глава 1: Предобработка и визуализация
    • Пропущенные данные, выбросы, нормализация
  • Глава 2: Обучение с учителем
    • Отбор признаков, регуляризация, инженерия признаков
  • Глава 3: Обучение без учителя
    • Выбор алгоритма кластеризации, извлечение признаков, снижение размерности
  • Глава 4: Выбор и оценка модели
    • Обобщение и оценка модели, выбор модели
Практика вопросов интервью по машинному обучению на Python

Пайплайн машинного обучения

Обзор пайплайна

Практика вопросов интервью по машинному обучению на Python

Наш пайплайн МО

Пайплайн

Практика вопросов интервью по машинному обучению на Python

Пропущенные данные

  • Влияние различных техник
  • Обнаружение пропущенных значений
  • Стратегии обработки
Практика вопросов интервью по машинному обучению на Python

Методы

  1. Удаление
    • Удаление строк --> .dropna(axis=0)
    • Удаление столбцов --> .dropna(axis=1)
  2. Импутация
    • Заполнение нулём --> SimpleImputer(strategy='constant', fill_value=0)
    • Среднее значение -> SimpleImputer(strategy='mean')
    • Медиана --> SimpleImputer(strategy='median')
    • Мода --> SimpleImputer(strategy='most_frequent')
    • Итеративная импутация --> IterativeImputer()
Практика вопросов интервью по машинному обучению на Python

Зачем это нужно?

  • Снижает вероятность внесения смещения
  • Большинство алгоритмов МО требуют полных данных
Практика вопросов интервью по машинному обучению на Python

Эффекты импутации

  • Зависит от:
    • Доли пропущенных значений
    • Исходной дисперсии
    • Наличия выбросов
    • Величины и направления асимметрии
  • Удаление --> Может убрать слишком много данных
  • Ноль --> Смещает результаты вниз
  • Среднее --> Сильнее подвержено влиянию выбросов
  • Медиана --> Лучше при наличии выбросов
  • Мода и итеративная импутация --> Стоит попробовать
Практика вопросов интервью по машинному обучению на Python
Функция возвращает
df.isna().sum() количество пропущенных
df['feature'].mean() среднее по признаку
.shape размерность: строки, столбцы
df.columns имена столбцов
.fillna(0) заполняет пропуски нулём
select_dtypes(include = [np.number] ) числовые столбцы
select_dtypes(include = ['object'] ) строковые столбцы
.fit_transform(numeric_cols) обучает и преобразует
Практика вопросов интервью по машинному обучению на Python

Влияние пропущенных значений

Какое влияние оказывают пропущенные значения в задачах машинного обучения (МО)? Выберите верное утверждение:

  • Пропущенные значения не являются проблемой, поскольку большинство алгоритмов sklearn умеют с ними работать.
  • Удаление наблюдений или признаков с пропущенными значениями — как правило, хорошее решение.
  • Пропущенные данные вносят смещение и приводят к искажённым результатам, поэтому их нельзя игнорировать.
  • Заполнение пропущенных значений нулём смещает результаты вверх.
Практика вопросов интервью по машинному обучению на Python

Влияние пропущенных значений: ответ

Какое влияние оказывают пропущенные значения в задачах машинного обучения (МО)? Правильный ответ:

  • Пропущенные данные вносят смещение и приводят к искажённым результатам, поэтому их нельзя игнорировать. (Оптимальный подход — проверить, какой метод заполнения минимально влияет на дисперсию набора данных.)
Практика вопросов интервью по машинному обучению на Python

Влияние пропущенных значений: неверные ответы

Какое влияние оказывают пропущенные значения в задачах машинного обучения (МО)?

  • Пропущенные значения не являются проблемой... (Большинство алгоритмов sklearn не умеют работать с пропущенными значениями и вернут ошибку.)
  • Удаление наблюдений или признаков с пропущенными значениями... (Если набор данных невелик или доля пропусков значительна, удаление строк или столбцов чрезмерно уменьшит объём данных и снизит их ценность для МО.)
  • Заполнение пропущенных значений нулём смещает результаты вверх. (Всё наоборот: заполнение нулём смещает результаты вниз.)
Практика вопросов интервью по машинному обучению на Python

Давайте потренируемся!

Практика вопросов интервью по машинному обучению на Python

Preparing Video For Download...