Я новичок в машинном обучении и пытаюсь выполнить многозначную классификацию . Что-то явно не так с моим кодом.
X равно numpy.ndarray
с shape (117, 17)
. Итак, есть 17 функций и 117 объектов.
Y равно numpy.ndarray
с shape (117, 47),
, поэтому 47 целей (да, это странные данные, но мне не нужно очень хорошее качество)
Я пытаюсь это
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.multioutput import MultiOutputClassifier
classifier = MultiOutputClassifier(DecisionTreeClassifier(random_state=0))
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state = 50)
classifier.fit(X_train, Y_train)
print(classifier.score(X_train, Y_train))
print(classifier.score(X_test, Y_test))
И это дает 0.9506172839506173
и 0.0
Я попытался добавить некоторые max_depth=5
и max_leaf_nodes=25,
счет поезда менялся, но результат теста был 0,0 все время. Что не так?
(также, если вы знаете более эффективные способы решения моей проблемы, пожалуйста)
UPD: я сделал свою собственную точность, и это показывает, что есть хоть какое-то обучение, поэтому Я думаю, что проблема связана с оценкой метода MultiOutputClassifier
UPD2: может быть, это потому, что я пытаюсь использовать многоуровневую классификацию multiclass?