Содержание:

· Дискретизация:
· Почему дискретизация?
· Виды дискретизации:-
· Бинаризация:-

Кодирование числовых функций относится к процессу представления числовых данных в формате, подходящем для алгоритмов машинного обучения.

В отличие от категориальных признаков, которые представлены в виде дискретных значений или текстовых меток, числовые признаки являются непрерывными и имеют диапазон возможных значений.

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

Предположим, у вас есть данные и есть столбец с названием «ВОЗРАСТ». Как же преобразовать эти данные в категориальные данные?

например.

Несколько дней назад я работал над небольшой проблемой машинного обучения и у меня был набор данных из Google Play Store. Там был столбец «Количество установок». и у него были разные значения, например 23, 1010244, 9934,56534.

Это числовое представление вам не сильно поможет. если вы построите эту кривую, если вы построите эту кривую, она будет такой

Многие загрузки очень низкие, а некоторые очень высокие. Поэтому я преобразовал числовые данные в категории, создав ячейки.

После этого вся моя проблема стала проще, и результаты также начали улучшаться.

То, что вам, возможно, когда-либо придется преобразовать числовые данные в категориальные данные, зависит от конкретной проблемы.

Два известных метода преобразования числовых значений в категориальные

  1. Дискретизация (также называемая биннингом)
  2. Бинаризация

Дискретность:

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

Каждый интервал представляет категорию или метку, а затем непрерывные значения присваиваются соответствующим ячейкам.

Дискретизация также называется биннингом, где bin — альтернативное название интервала.

Почему дискретизация?

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

Типы дискретизации: -

Биннинг без присмотра:-

Биннинг равной ширины или равной глубины (другое название неконтролируемого группирования) разбивает диапазон значений на заданное количество интервалов без учета целевой переменной. Цель состоит в том, чтобы разделить данные на ячейки примерно одинаковой ширины или глубины, каждая из которых содержит одинаковое количество точек данных.

Методы группирования без присмотра: -

  1. Биннинг равной ширины (равномерное группирование):. С помощью этого метода диапазон значений делится на заранее определенное количество интервалов, каждый из которых имеет одинаковую ширину. Распределение данных внутри каждого бина не учитывается. Если данные не распределены равномерно по диапазону, этот метод может привести к неравномерному распределению точек данных внутри интервалов.

Преимущество: обработка выбросов без изменения разброса.

2. Биннинг по равной частоте (квантильный биннинг):Биннинг по равной частоте разделяет диапазон значений на интервалы с равным количеством точек данных в каждом интервале. Целью этой стратегии является справедливое распределение точек данных внутри каждого интервала.

Преимущество: обработка выбросов и обеспечение равномерного распределения значений.

3. Объединение K-средних:-Биннинг K-средних — это метод дискретизации непрерывных переменных с использованием алгоритма кластеризации k-средних. Похожие точки данных группируются в k кластеров, где k — необходимое количество интервалов. Границы интервалов основаны на центрах кластеров.

Контролируемое группирование:-

Оптимальное объединение, иногда называемое контролируемым объединением, учитывает связь между целевой переменной и переменной, которую вы хотите дискретизировать.

Объединение деревьев решений является типичным методом контролируемой дискретизации.

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

Пользовательское группирование:-

Пользовательское группирование включает в себя определение границ интервала вручную на основе знаний предметной области или конкретных требований.

Как реализовать?

В библиотеке Scikit-Learn есть класс KBinsDiscretizer.

# Import the necessary module
from sklearn.preprocessing import KBinsDiscretizer

# Create an instance of the KBinsDiscretizer class, specifying the desired parameters
discretizer = KBinsDiscretizer(n_bins=5, strategy='uniform', encode='ordinal')

# Fit the discretizer to your data
discretizer.fit(X)

# Transform the data into the discrete bin representation
X_discretized = discretizer.transform(X)

Для лучшего понимания обратитесь к следующему коду и набору данных:-



Бинаризация: -

В процессе «бинаризации» непрерывные переменные преобразуются в двоичные значения (0 или 1) на основе заранее определенного порога. Используя этот метод, вы можете определить, находится ли точка данных выше или ниже порогового значения.

Возьмем, к примеру, столбец годового дохода. Лимит был установлен на уровне 600 000. Любому результату для годового дохода менее 600 000 долларов США будет присвоено значение 0, что означает, что лицо не находится в налогооблагаемой зоне. С другой стороны, любому доходу, превышающему или равному 600 000 долларов США, будет присвоено число 1, что означает, что лицо находится в налогооблагаемой зоне.

Как реализовать?

В Scikit-learn вы можете использовать класс Binarizer для выполнения бинаризации.

# import necessary module
from sklearn.preprocessing import Binarizer

# Create an instance of the Binarizer class, specifying the desired threshold and any other parameters:
binarizer = Binarizer(threshold=6.0, copy=True)
# The copy parameter determines whether to create a copy of the input data

# Transform the data using the transform method:
X_binarized = binarizer.transform(X)

# You can further manipulate the X_binarized array as needed for your analysis.

Для лучшего понимания обратитесь к следующему коду и набору данных:-