#python #machine-learning #jupyter-notebook #classification
#python #машинное обучение #jupyter-ноутбук #классификация
Вопрос:
Я пытался найти ответ на этот вопрос, но не могу получить ответ. Возможно ли иметь несколько возможных выходных данных с использованием алгоритма классификации в python?
Я работал над базой данных сельскохозяйственных культур, где модель будет предсказывать, какая культура будет подходящей для земли, используя такие входные данные, как pH, тип почвы, температура и влажность. в этом случае несколько культур могут иметь одинаковый pH и тип почвы. итак, я хочу, чтобы моя модель возвращала все возможные результаты.
Итак, не могли бы вы сказать мне, возможно ли это? И если да, то как мне получить результат?
Temp Humidity Moisture Stype suitable-crop Ph
0 26 52 38 Sandy Maize Slightly acidic
1 32 62 34 Red Ground Nuts Neutral
2 29 52 45 Loamy Sugarcane Slightly alkaline
3 34 65 62 Black Cotton Moderately acidic
4 26 50 35 Sandy Barley slightly acidic
Приведенные выше примеры данных. Целью здесь является «подходящая обрезка». Как вы можете видеть, и кукуруза, и ячмень имеют почти одинаковые требования к температуре, влажности, типу почвы (Stype) и ph. Я использовал алгоритм случайного леса для прогнозирования результата.
Enter the soil type:sandy
Enter the pH type:slightly acidic
Enter temperature:27
Eneter Humidity:50
Enter moisture:37
result = model.predict([[Stype1, pH1, Temperature, Humidity, Moisture]])
print(result)
['Sugarcane']
Это был результат. Я хочу, чтобы моя модель возвращала все возможные подходящие выходные данные, такие как ячмень и кукуруза.
Комментарии:
1. Можете ли вы поделиться некоторыми примерами данных? Как выглядят ваши целевые данные? Урожайность различных растений, выращенных в заданных условиях? Похоже, вас интересует классификация с несколькими метками, но более подробная информация может помочь найти лучшее решение
Ответ №1:
Да, это возможно. В руководстве пользователя scikit-learn есть хорошее обсуждение (в контексте деревьев решений, но следующая цитата применима в более общем плане):
Проблема с несколькими выходами — это проблема контролируемого обучения с несколькими выходами для прогнозирования, то есть когда Y представляет собой массив 2d размера
[n_samples, n_outputs]
.
Когда между выводами нет корреляции, очень простой способ решить проблему такого рода — построить n независимых моделей, то есть по одной для каждого вывода, а затем использовать эти модели для независимого прогнозирования каждого из n выходов. Однако, поскольку вполне вероятно, что выходные значения, относящиеся к одному и тому же входу, сами коррелируют, часто лучшим способом является создание единой модели, способной предсказывать одновременно все n выходных данных. Во-первых, это требует меньшего времени обучения, поскольку создается только один оценщик. Во-вторых, точность обобщения результирующей оценки часто может быть увеличена.
Выполним ли второй подход, может зависеть от используемого вами алгоритма классификации. Те алгоритмы, которые изначально поддерживают классификацию с несколькими выходами, обычно реализуют ее в scikit-learn. Опять же, руководство пользователя — хорошее место для начала.