К задачам

One-Hot Encoding с нуля

СредняяАлгоритмы
Лучше работает на десктопе
Подготовка признаковencodingone-hot

Реализуйте One-Hot Encoding без использования sklearn.

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

Задача основана на вопросах с собеседований в Avito.

Сигнатура

def one_hot_encode(values: list[str], categories: list[str] | None = None) -> dict:

Верните dict с ключами:
- categories: список категорий (отсортированный)
- matrix: бинарная матрица (list[list[int]])

Если categories не задан (None) — использовать отсортированные уникальные значения.

Примеры

Пример 1

Вход:
values = ["red","blue","green","red","blue"]
Выход:{"categories":["blue","green","red"],"matrix":[[0,0,1],[1,0,0],[0,1,0],[0,0,1],[1,0,0]]}

Пример 2

Вход:
values = ["cat","dog","cat","cat","dog","bird"]
Выход:{"categories":["bird","cat","dog"],"matrix":[[0,1,0],[0,0,1],[0,1,0],[0,1,0],[0,0,1],[1,0,0]]}

Пример 3

Вход:
values = ["A","B","A"]
categories = ["A","B"]
Выход:{"categories":["A","B"],"matrix":[[1,0],[0,1],[1,0]]}
Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
05:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
One-Hot Encoding from scratch — ML-задачи задача — ML Mentor