Классификация: конструирование признаков

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

Lisa Stuart

Data Scientist

Конструирование признаков: зачем?

  • Извлекает дополнительную информацию из данных
  • Создаёт новые информативные признаки
  • Один из наиболее эффективных способов улучшить предсказательные модели
Практика вопросов интервью по машинному обучению на Python

Преимущества конструирования признаков

  • Повышает предсказательную силу алгоритма обучения
  • Улучшает качество моделей машинного обучения!
Практика вопросов интервью по машинному обучению на Python

Типы конструирования признаков

  • Индикаторные переменные
  • Признаки взаимодействия
  • Представление признаков
Практика вопросов интервью по машинному обучению на Python

Индикаторные переменные

  • Пороговый индикатор
    • возраст: школа или университет
  • Несколько признаков
    • используются как флаг
  • Особые события
    • чёрная пятница
    • Рождество
  • Группы классов
    • флаг платного трафика сайта
      • Google adwords{4}}
      • Facebook ads
Практика вопросов интервью по машинному обучению на Python

Признаки взаимодействия

  • Сумма
  • Разность
  • Произведение
  • Частное
  • Другие математические комбинации
Практика вопросов интервью по машинному обучению на Python

Представление признаков

  • Метки даты и времени
    • День недели
    • Час дня
  • Группировка категориальных уровней в «Другое»
  • Преобразование категорий в фиктивные переменные
    • (k - 1) бинарных столбцов
Практика вопросов интервью по машинному обучению на Python

Различные категориальные уровни

  • Обучающие данные:
    • модель обучена на [red, blue, green]
  • Тестовые данные:

    • модель тестируется на [red, green, yellow]
    • новый цвет, не встречавшийся при обучении
    • один цвет отсутствует
  • Устойчивое унитарное кодирование

1 https://blog.cambridgespark.com/robust-one-hot-encoding-in-python-3e29bfcec77e
Практика вопросов интервью по машинному обучению на Python

Соотношение долга к доходу

  • Monthly Debt
  • Annual Income/12
Практика вопросов интервью по машинному обучению на Python

Функции конструирования признаков

Функция возвращает
sklearn.linear_model.LogisticRegression логистическую регрессию
sklearn.model_selection.train_test_split функцию разбивки на обучающую/тестовую выборку
sns.countplot(x='Loan Status', data=data) столбчатую диаграмму
df.drop(['Feature 1', 'Feature 2'], axis=1) удаляет список признаков
df["Loan Status"].replace({'Paid': 0, 'Not Paid': 1}) Loan Status как целые числа
pd.get_dummies() k - 1 бинарных признаков
sklearn.metrics.accuracy_score(y_test, predict(X_test)) точность модели
Практика вопросов интервью по машинному обучению на Python

Полезный учебник:

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

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

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

Preparing Video For Download...