Decision Tree (CART) Classification

HardPython
10:00
Лучше работает на десктопе
MLDecision TreeCARTfrom scratchGini

Реализуйте Decision Tree для бинарной классификации (упрощённый CART).

Дерево строится рекурсивно по Gini impurity:
gini(y) = 1 - p₀² - p₁²

Сигнатура

def decision_tree_predict(X_train: list[list[float]], y_train: list[int],
                          X_test: list[list[float]], max_depth: int) -> list[int]:

Примеры

X_train = [[0,0],[1,0],[0,1],[1,1],[2,1],[2,2]]
y_train = [0,0,0,1,1,1]
X_test = [[0.5,0.5],[1.5,1.5]]
decision_tree_predict(X_train, y_train, X_test, 2) → [0, 1]

Примеры

Пример 1

Вход:
X_train = [[0,0],[1,0],[0,1],[1,1],[2,1],[2,2]]
y_train = [0,0,0,1,1,1]
X_test = [[0.5,0.5],[1.5,1.5]]
max_depth = 2
Выход:[0,1]

Пример 2

Вход:
X_train = [[1],[2],[3],[4]]
y_train = [0,0,1,1]
X_test = [[1],[2],[3],[4]]
max_depth = 1
Выход:[0,0,1,1]

Пример 3

Вход:
X_train = [[1],[2],[3],[4],[5],[6]]
y_train = [0,0,0,1,1,1]
X_test = [[2],[5]]
max_depth = 3
Выход:[0,1]
Консоль
Нажмите Run или Ctrl+Enter для запуска