Wie zu verwenden trainierten Neuronalen Netzes in Matlab für die Einstufung in ein reales system
Habe ich trainiert Feed Forward NN mit Matlab Neural Network Toolbox, die auf einen Datensatz mit Sprache-Funktionen und Beschleunigungsmesser-Messungen. Targetset enthält zwei target-Klassen für das dataset: 0 und 1. Die Ausbildung, Validierung und performance sind alle in Ordnung und ich habe den generierten code für das Netzwerk.
Nun muss ich verwenden dieses neuronale Netzwerk in Echtzeit Muster zu erkennen, wenn Sie auftreten, und generiert 0 oder 1, wenn ich zum testen einen neuen Datensatz gegen trainierte NN. Aber wenn ich einen Befehl:
c = sim(net, j)
Wobei "j" ist ein neues dataset[24x11]; statt 0 oder 1 bekomme ich diese als Ausgang (ich nehme an, ich bekomme Prozent der korrekten Klassifizierung, aber es ist keine Einstufung führen selbst):
c =
Columns 1 through 9
0.6274 0.6248 0.9993 0.9991 0.9994 0.9999 0.9998 0.9934 0.9996
Columns 10 through 11
0.9966 0.9963
So gibt es einen Befehl oder eine Möglichkeit, dass ich sehen kann, Klassifikation, Ergebnisse? Jede Hilfe sehr geschätzt! Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin kein matlab-user, aber aus logischer Sicht, Sie fehlt ein wichtiger Punkt:
Den input für ein Neuronales Netz ist ein Vektor, übergeben Sie eine matrix. Damit matlab denkt, dass Sie wollen, Sie zu klassifizieren eine Reihe von Vektoren (11) in Ihrem Fall). Also der Vektor, die Sie bekommen, ist die output-Aktivierung für jede dieser 11-Vektoren.
Die output-Aktivierung ist ein Wert zwischen 0 und 1 (ich vermute, Sie sind mit Hilfe der sigmoid), so ist dies vollkommen normal. Ihre Aufgabe ist es, eine Schwelle, die passt Ihre Daten am besten. Kann man diese Schwelle mit Kreuz-Validierung auf Ihre Trainings - /Testdaten oder nur durch die Wahl eines (0.5?) und sehen, ob die Ergebnisse "gut" und ändern Sie, wenn nötig.
sim
Methode? Sind Sie sicher, dass Sie nur einen einzigen Vektor?even if I try with single vector I get the same output
.NNs der Regel konvertieren Sie Ihre Ausgabe auf einen Wert im Bereich von (0,1) mit der logistischen Funktion. Es ist nicht ein Anteil oder Wahrscheinlichkeit, nur ein relatives Maß an Sicherheit. In jedem Fall bedeutet dies, dass Sie manuell zu benutzen, einen Schwellenwert (z.B. 0.5) zu unterscheiden, die zwei Klassen. Die Schwelle am besten ist, ist schwer zu finden, weil Sie müssen wählen Sie den optimalen trade-off zwischen precision und recall.