Горячее кодирование – популярный метод, используемый в машинном обучении и предварительной обработке данных для преобразования категориальных переменных в числовое представление. Это особенно полезно при работе с категориальными данными, которые нельзя напрямую использовать в математических моделях. В этой статье блога мы рассмотрим несколько методов выполнения горячего кодирования с использованием мощной библиотеки NumPy на Python. Мы предоставим примеры кода для каждого метода, чтобы помочь вам понять и реализовать их в своих проектах.
Метод 1: использование функции eye
NumPy
import numpy as np
def one_hot_encode(arr):
unique_values = np.unique(arr)
num_classes = len(unique_values)
eye_matrix = np.eye(num_classes)
encoded = eye_matrix[arr]
return encoded
# Example usage
labels = np.array(['apple', 'banana', 'apple', 'orange', 'banana'])
encoded_labels = one_hot_encode(labels)
print(encoded_labels)
Метод 2: использование функции bincount
NumPy
import numpy as np
def one_hot_encode(arr):
unique_values, indices = np.unique(arr, return_inverse=True)
encoded = np.eye(len(unique_values))[indices]
return encoded
# Example usage
labels = np.array(['dog', 'cat', 'cat', 'dog', 'bird'])
encoded_labels = one_hot_encode(labels)
print(encoded_labels)
Метод 3. Применение функций трансляции NumPy
import numpy as np
def one_hot_encode(arr):
unique_values = np.unique(arr)
encoded = (arr[:, None] == unique_values).astype(int)
return encoded
# Example usage
labels = np.array(['red', 'blue', 'green', 'red'])
encoded_labels = one_hot_encode(labels)
print(encoded_labels)
Метод 4. Использование функции digitize
NumPy
import numpy as np
def one_hot_encode(arr):
unique_values = np.unique(arr)
bins = np.arange(len(unique_values) + 1)
encoded = np.eye(len(unique_values))[np.digitize(arr, bins) - 1]
return encoded
# Example usage
labels = np.array(['small', 'large', 'medium', 'small', 'large'])
encoded_labels = one_hot_encode(labels)
print(encoded_labels)
В этой статье мы рассмотрели несколько методов выполнения горячего кодирования с использованием библиотеки NumPy в Python. Используя функциональность NumPy, мы можем эффективно преобразовывать категориальные переменные в числовые представления, подходящие для моделей машинного обучения. Мы обсудили четыре различных метода, каждый из которых имеет собственный пример кода, что позволяет вам выбрать подход, который лучше всего соответствует вашим конкретным требованиям. Горячее кодирование – это важный метод предварительной обработки данных. Благодаря знаниям, полученным из этой статьи, вы можете с уверенностью применять его в своих проектах.