многоклассовая регрессия с несколькими выходами с использованием sci-kit learn

#python #machine-learning #scikit-learn #regression #decision-tree

#python #машинное обучение #scikit-learn #регрессия #дерево решений

Вопрос:

Я пытаюсь использовать sci-kit learn для разработки программы машинного обучения, которая предсказывает 9 выходов из 5 входов, но у меня возникают проблемы.

Я приобрел 20 000 экземпляров 5 входных данных с соответствующими 9 выходами для целей обучения. Входные данные представляют измерения производительности усилителя. Выходные данные представляют размеры компонентов, которые дают эти измерения производительности.

Таким образом, одна строка входных переменных X может быть: [ 8430, 6895, 12735, 208929613, 249]

С соответствующими выходными переменными y: [1000, 400, 1000, 2000, 2500, 1000, 80, 1000, 2000]

После импорта всех соответствующих библиотек и присвоения входных данных X и выходных данных y я пытаюсь создать модель следующим образом:

 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
X_train = X_train.values
X_test = X_test.values
y_train = y_train.values
y_test= y_test.values

model = DecisionTreeRegressor()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
 

Однако после запуска этого кода я получаю следующую ошибку:

 ValueError: multiclass-multioutput is not supported
 

Но при чтении веб-сайта SKlearn говорится, что деревья решений по своей сути являются многоклассовыми? Как мне поступить, чтобы исправить эту ошибку? Или SKlearn не подходит для такого рода проблем? Должен ли я исследовать, используя вместо этого нейронную сеть?

Комментарии:

1. Где именно? Пожалуйста, обновите свой вопрос с полной трассировкой ошибок. Кроме того, пожалуйста, опубликуйте образец вашего y программного обеспечения; регрессия с несколькими выходами действительно поддерживается, см. Регрессию дерева решений с несколькими выходами .

Ответ №1:

Деревья принятия решений являются многоклассовыми, что означает, что они могут иметь дело с данными, в которых разные выборки принадлежат нескольким классам, а не с тем, что каждая выборка принадлежит к разным классам. вы все еще можете реализовать свое собственное дерево решений и адаптировать его к вашей проблеме, выбирая функции при построении вашего дерева относительно среднего прироста информации по различным классам, и это решило бы проблему. Вы также могли бы проще использовать базовое, но разное дерево решений для каждой из разных меток, передавая каждому дереву только 1 метку на образец. Вы также можете адаптировать деревья решений многими другими способами к вашей проблеме или использовать NN, что было бы более естественным, но, вероятно, менее эффективным, если данные хорошо структурированы.