Может ли кто-нибудь показать мне, как использовать классификацию SVM с несколькими классами в Encog 3.1?Многоклассовая классификация SVM в Encog
Я использовал свои нейронные сети с некоторым успехом, но не могу решить, как настроить многоклассовый SVM.
Документах есть это, чтобы сказать:.
«Это сеть, которая опирается на один или несколько опорных векторов (SVM) Он предназначен для работы очень похоже на нейронной сети Encog, и в значительной степени взаимозаменяемые с нейронной сетью Encog ..... Классификация используется, когда вы хотите, чтобы SVM группировал входные данные в один или несколько классов. Поддержка Vector Machines обычно имеет один вывод. Нейронные сети могут иметь несколько выходных нейронов. эта проблема, этот класс создаст несколько SVM, если указано более одного выхода "
Но я не вижу, как указать более одного вывода, ведь свойство вывода просто возвращает 1:
/// <value>For a SVM, the output count is always one.</value>
public int OutputCount
{
get { return 1; }
}
Ответы на Java или C# очень ценятся
EDIT еще не в состоянии решить эту проблему. На самом деле, пользуюсь Encog, но форум поддержки вполне подходит, и только сам Джефф Хитон (автор проекта) сам отвечает, когда у него появляется шанс, поэтому я связываю код проекта и добавляю щедрость в надежде, что кто-то увидит, чего явно не хватает.
Проект: http://heatonresearch.com/
SupportVectorMachine класс на Google Code: https://code.google.com/p/encog-cs/source/browse/trunk/encog-core/encog-core-cs/ML/SVM/SupportVectorMachine.cs
Отлично, спасибо, что ответили, не знаю, почему я не думал об этом. Найти Encog очень полезно. – Steve
Разве вы не используете регрессию для классификации? http://stackoverflow.com/questions/9160669/why-is-it-not-to-approach-classification-through-regression –
Согласен, плохо использовать регрессию для классификации, но это не так. В Encog SVM обозначается как регрессия или классификация в конструкторе. Это две очень разные настройки для SVM. Обратите внимание, что конструктор имеет ложное значение, это означает, что он является классификацией. Поэтому значения 1.0, 2.0 и т.д. - это номера классов. Он всегда использует ввод с плавающей запятой для согласованности. – JeffHeaton