0

Ich habe SVM Ausbildung und Klassifizierung auf Meeresbildern. Ich extrahierte Features über HoG und trainierte Features. Nachdem ich Features wie 1 und 0 gekennzeichnet hatte, habe ich meine Bilder getestet. Ich habe immer 50% als Ergebnis. Ich dachte, dass meine Bilder vielleicht schlecht sind, also habe ich jedes Bild einzeln getestet und schlechte Bilder losgeworden. Wenn ich ein Bild teste, ist die Genauigkeit 100%. Wenn ich dann ein weiteres Bild in den Ordner mit den Testbildern einfüge (was ebenfalls eine Genauigkeit von 100% hat), habe ich 54% davon erhalten. Und insgesamt habe ich in zwei Testbildern zwei falsch beschriftete Featues. Ich habe nicht verstanden, warum ich eine geringe Genauigkeit habe. Dies ist die Formel, die ich für die Berechnung verwende;Finden von Genauigkeit in SVM (Matlab)

acc = numel(find(Predict_label==test_label))/length(test_label); 
disp(['Accuracy ', num2str(acc)]) 

Vielen Dank.

+0

bieten ein wenig mehr Code. Welche Dimensionen haben 'Predict_label' und' test_label'? Z.B. Was ist das Ergebnis von 'size (Predict_label)'? Der Teil des Codes, den Sie angezeigt haben, sieht korrekt aus. Ich verstehe auch nicht, wie Sie 54% erhalten, wenn Sie nur 2 Bilder haben .. Es ist entweder 0, 50 oder 100 .. –

+0

Es könnte viele Gründe geben. Es könnte ein Problem mit den HOG-Features sein - vielleicht zu klein für ein Fenster, nicht genug Präzision in den Winkel-Bins, vielleicht ist die Normalisierung falsch usw. Es könnte Ihr Kernel sein, den Sie gewählt haben. Es könnten auch die Bilder sein, die Sie gewählt haben. Es ist nicht genug hier, um dir zu sagen, was mit deiner Klassifizierung passiert. Sie müssen uns mehr darüber erzählen, wie Sie Ihre SVM trainieren. Bitte teilen Sie etwas Code oder etwas, das uns Einblick gibt, was Sie tatsächlich tun, um Ihr Modell zu trainieren. Übrigens ist "numel + find" sehr schlecht. Verwenden Sie einfach "nnz". Einige Bilder wären auch nett. – rayryeng

+0

Ich extrahiere HoG-Funktionen von gültigen Punkten. Ich erklärte falsch, was ich trainiere. Ich trainiere Features um gültige Punkte. Also habe ich 50 zufällige Orte auf der Horizontlinie und 50 zufällige Orte auf dem Hintergrund. Jedes Bild hat Grundwahrheitsdaten. Abmessungen sind 198x1 für beide. Ich habe verschiedene Kernel ausprobiert und wie gesagt, wenn ich Bilder einzeln überprüfe, ist die Genauigkeit hundertprozentig. Das Problem beginnt, wenn ich ein zweites Bild hinzufüge. Was ist NNZ? Und welchen Teil soll ich meinem Code hinzufügen (Training, Testen)? – cinemaniac

Antwort

0

Danke für die Antworten, ich habe mein Problem gelöst. Es war aufgrund der Wiederholung der Tests. Ich habe gerade den zweiten Test in meinem Code gelöscht.

Verwandte Themen