Привет, ребята, я суровый Джайн. В этом блоге я собираюсь обсудить все необходимые шаги (наиболее распространенные) для комплексной разработки функций в машинном обучении. Инжиниринг признаков — это важный этап в конвейере машинного обучения, однако этот этап редко рассматривается сам по себе. Здесь вы узнаете как теоретическую, так и практическую реализацию этапов разработки функций.

"Возможно, я не расскажу обо всех методах, но эти методы помогут вам понять, что такое проектирование функций, и вы сможете начать с ним работать".

Что такое разработка функций?

Предположим, у нас есть некоторые данные, и мы обучили модель, но мы не получили ожидаемых результатов. Для улучшения результатов мы делаем следующее:

  1. Добавьте больше данных.
  2. Улучшите модель с помощью настройки гиперпараметров.

Оба способа хороши для получения лучших результатов, но помимо них есть еще один способ: "поэкспериментировать с функциями", т. е.Изменение функций может помочь модели понять характер данных.Этот процесс называется разработкой функций.

Проще говоря, Feature Engineering — это процесс преобразования необработанных данных в чистые для дальнейшей передачи их в модели машинного обучения для получения лучших результатов.

Шаги в рамках разработки функций:

  1. Работа с отсутствующими данными
  2. Обработка категориальных данных
  3. Работа с выбросами
  4. Преобразование функции
  5. Выбор функции

Работа с отсутствующими данными ✅

Что такое пропущенные значения?

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

Типы отсутствующих данных:

Существует три типа отсутствующих данных, и существуют разные способы их обработки. Они есть:

  1. Случайно пропавшие без вести (MCAR)
  2. Случайно пропавший без вести (март)
  3. Пропавшие без вести не случайно (MNAR)

✔ Отсутствует полностью случайным образом (MCAR):

  1. MCAR возникает, когда вероятность отсутствия значений в переменной одинакова для всех выборок.
  2. Например, когда проводится опрос, и значения были случайно пропущены при вводе в компьютер или респондент решил не отвечать на вопрос.

✔ Отсутствует случайным образом (MAR):

  1. Вероятность MAR в признаке зависит только от доступной информации в других предикторах.
  2. MAR обрабатываются с использованием информации из других предикторов для построения модели и вменения значения для отсутствующей записи.

✔ Отсутствует не случайно (MNAR):

  1. Вероятность пропущенных значений, а не случайных, зависит от информации, которая не была записана.
  2. Например, в опросе мошенники с меньшей вероятностью ответят на вопрос, обманывали ли они когда-либо.
  3. С MNAR практически невозможно справиться.
  4. К счастью, MNAR не должен влиять на выводы, сделанные моделью, обученной на таких данных.

Методы обработки отсутствующих данных:

  1. Вменение среднего/медианы. Этот метод заменяет отсутствующие значения средним значением или медианой этого конкретного столбца.

2. Вменение случайной выборки. Этот метод заменяет отсутствующие данные случайными наблюдениями из пула доступных значений.

3. Захват NaN с помощью новой функции.Этот метод захватывает значения NaN и заменяет их новой функцией, которую мы вычисляем на основе нужных столбцов.

4.Конец распределения: этот метод заменяет отсутствующие данные экстремальными значениями (среднее +/- 3*SD), если данные нормально распределены, а если данные искажены, он заменяет отсутствующие значения на основе IQR-правило.

5. Произвольное вменение:произвольное вменение заменяет отсутствующие значения произвольным значением. Произвольное значение должно отличаться от среднего, медианы. Значения произвольного могут быть 0, 99, 999 (другие комбинации девяток) или 1 (если распределение положительное).

6. Вменение подсчета частоты (режим): этот метод заменяет отсутствующие значения подсчетом частоты (режимом) этого конкретного столбца. Этот метод подходит как для числовых, так и для категориальных переменных, но на практике мы используем этот метод с категориальными переменными.

7. Вменение регрессии. Этот метод заменяет отсутствующие данные значениями, предсказанными нашей моделью регрессии.

8. Вменение KNN:Вменение KNN заменяет отсутствующие значения значением ближайшего соседа. Для выполнения этой задачи используется функция KNNImputer sklearn.

Обработка категориальных признаков✅

Что такое категориальное кодирование?

Категориальное кодирование — это процесс преобразования категориальных признаков в числа.

Например, рассмотрите пол объекта — {Мужской, Женский}. После кодирования это выглядит как Пол — {0, 1}.

Методы обработки категориальных признаков:

  1. Порядковое/меточное кодирование. С помощью этого метода мы заменяем категории объекта числовыми значениями (от 0 до # категорий-1). Этот метод применяется, когда данные порядковые (данные имеют некоторый порядок).

2. Одно горячее кодирование. С помощью этой техники каждая категория сопоставляется с двоичной переменной, содержащей либо 0, либо 1. Здесь 0 представляет отсутствие, а 1 представляет наличие этой категории.

3. Кодирование количества/частоты. Этот метод заменяет значения количеством признаков или процентом признаков в наборе данных.

4. Кодирование целевого/среднего значения. Этот метод заменяет категориальные переменные средним значением целевой переменной.

Работа с выбросами ✅

Что такое выбросы?

Выбросы — это необычные точки данных, которые сильно отличаются/далеки от остальных точек данных.

Выбросы бывают двух типов — 1. UNIVARIATE ANALYSIS 2.MULTI-VARIATE

Алгоритмы, чувствительные к выбросам:

1. Linear Regression 2. Logistic Regression 3. K-Means Clustering

4. Hierarchical Clustering 5. PCA 6. Neural Networks.

Алгоритмы НЕ чувствительны к выбросам:

1. Naive Bayes 2. SVM 3. Decision Trees, Random Forest

4. XGBoost, GBM 5. K-NN

Методы обработки выбросов?

Интернет-квалификация:

Межквартильный диапазон — это разница между 1-м и 3-м квартилями.

Z-оценка:

Это одно из важнейших понятий в статистике. Он сообщает нам, на сколько стандартных отклонений точка данных отличается от среднего значения.

Спасибо за чтение. В следующей части я расскажу об оставшихся шагах, т. е. Преобразовании и выборе функций.

Это мой первый блог. Пожалуйста, поделитесь своими ценными предложениями. Я ценю ваш честный отзыв!