Реализуйте 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) — использовать отсортированные уникальные значения.
one_hot_encode(["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]]}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]]}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]]}values = ["A","B","A"]categories = ["A","B"]{"categories":["A","B"],"matrix":[[1,0],[0,1],[1,0]]}