Kann mir jemand zeigen, wie man eine SVM-Klassifizierung mit mehreren Klassen in Encog 3.1 verwendet?SVM-Klassifizierung für mehrere Klassen in Encog
Ich habe ihre Neuronalen Netze mit einigem Erfolg verwendet, kann aber nicht herausfinden, wie man eine SVM mit mehreren Klassen aufbaut.
Die docs haben folgende zu sagen:.
„Dies ist ein Netzwerk, das von einem oder mehrere Support Vector Machines (SVM) gesichert ist so konzipiert, ist sehr ähnlich wie ein Encog neuronales Netzwerk funktionieren, und sind weitgehend austauschbar mit einem neuralen Encog-Netzwerk ..... Klassifizierung wird verwendet, wenn die SVM die Eingabedaten in eine oder mehrere Klassen gruppieren soll Support Vector Machines haben typischerweise einen einzigen Ausgang Neuronale Netzwerke können mehrere Ausgabe-Neuronen haben In diesem Fall erstellt diese Klasse mehrere SVMs, wenn mehr als eine Ausgabe angegeben ist. "
. Ich kann jedoch nicht sehen, wie mehrere Ausgaben angegeben werden, in der Tat die Ausgabeeigenschaft gibt einfach 1:
/// <value>For a SVM, the output count is always one.</value>
public int OutputCount
{
get { return 1; }
}
Antworten in Java oder C# sind sehr geschätzt
EDIT noch nicht dieses heraus zu arbeiten. Wirklich genießen mit Encog, aber das Support-Forum ist ziemlich mit nur Jeff Heaton (Autor des Projekts) selbst beantwortet, wenn er eine Chance bekommt, so bin ich den Projektcode verknüpfen und ein Kopfgeld in der Hoffnung, dass jemand sehen kann, was ich offensichtlich vermisse.
Das Projekt: http://heatonresearch.com/
Die SupportVectorMachine Klasse auf Google Code: https://code.google.com/p/encog-cs/source/browse/trunk/encog-core/encog-core-cs/ML/SVM/SupportVectorMachine.cs
Großartig, danke für die Antwort, weiß nicht, warum ich nicht daran gedacht habe, das zu versuchen. Das Finden von Encog ist sehr nützlich. – Steve
Verwenden Sie nicht einfach Regression für die Klassifizierung? http://stackoverflow.com/questions/9160669/why-is-it-not-to-approach-classification-through-regression –
Einverstanden, es ist schlecht, Regression zu verwenden, um Klassifizierung zu tun, aber so ist hier nicht der Fall. In Encog wird eine SVM im Konstruktor entweder als Regression oder als Klassifizierung bezeichnet. Dies sind zwei sehr unterschiedliche Setups für SVMs. Beachten Sie, dass der Konstruktor einen falschen Wert hat, dh es handelt sich um eine Klassifizierung. Daher sind Werte von 1.0, 2.0 usw. Klassennummern. Es verwendet immer eine Gleitkommaeingabe für Konsistenz. – JeffHeaton