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

Практика співбесід з Machine Learning у Python

Lisa Stuart

Data Scientist

Навіщо створювати ознаки?

  • Дістає додаткову інформацію з даних
  • Створює доречні додаткові ознаки
  • Один з найдієвіших способів покращити прогностичні моделі
Практика співбесід з Machine Learning у Python

Переваги створення ознак

  • Вища прогностична сила алгоритму навчання
  • Додає продуктивності вашим моделям машинного навчання!
Практика співбесід з Machine Learning у Python

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

  • Індикаторні змінні
  • Ознаки взаємодії
  • Подання ознак
Практика співбесід з Machine Learning у Python

Індикаторні змінні

  • Пороговий індикатор
    • age: старша школа vs коледж
  • Кілька ознак
    • використовується як прапорець
  • Особливі події
    • Black Friday
    • Різдво
  • Групи класів
    • прапорець платного трафіку на сайті
      • Google AdWords{4}}
      • Facebook Ads
Практика співбесід з Machine Learning у Python

Ознаки взаємодії

  • Сума
  • Різниця
  • Добуток
  • Частка
  • Інші математичні комбінації
Практика співбесід з Machine Learning у Python

Подання ознак

  • Позначки дати й часу
    • День тижня
    • Година доби
  • Об'єднання рідкісних категорій в «Інше»
  • Перетворення категоріальних на даммі-змінні
    • (k - 1) бінарних стовпців
Практика співбесід з Machine Learning у Python

Різні категоріальні рівні

  • Навчальні дані:
    • модель навчено на [red, blue, green]
  • Тестові дані:

    • модель тестується на [red, green, yellow]
    • додатковий колір не був у навчанні
    • одного кольору бракує
  • Robust one-hot encoding

1 https://blog.cambridgespark.com/robust-one-hot-encoding-in-python-3e29bfcec77e
Практика співбесід з Machine Learning у Python

Коефіцієнт боргу до доходу

  • Monthly Debt
  • Annual Income/12
Практика співбесід з Machine Learning у Python

Функції для створення ознак

Function returns
sklearn.linear_model.LogisticRegression логістична регресія
sklearn.model_selection.train_test_split функція розбиття train/test
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)) точність моделі
Практика співбесід з Machine Learning у Python

Відмінний підручник:

Практика співбесід з Machine Learning у Python

Давайте потренуємось!

Практика співбесід з Machine Learning у Python

Preparing Video For Download...