2017-05-08 2 views
0

Hier poste ich zwei Zahlen sowie einige Fragen mit ihnen, kann mir jemand helfen, sie zu lösen, weil ich wirklich darin stecken bleibe?using libsvm SVM Fragen zu verstehen

1. Training a simple linear SVM: 
% svm-train -t 0 -c 100 data0 data0.model 
% python drawBoundary.py data0 
where: 
-t 0 -- use a linear kernel 
-c 100 -- set "C" = 100, which means "overfit a lot" 

Dann hier kommt die resultierende Parzelle: enter image description here

Dies ist ein leicht trennbarer Datensatz, der von der kleinen Anzahl von Stützvektoren reflektiert wird. In der Darstellung sind die SV groß gezeichnet (und sind am Rand, die gestrichelte Linie eine Einheit von der Entscheidungsgrenze entfernt, die durchgezogene Linie).

hier kommt dann die erste Frage:

Q1: You should have found that it takes 3 support vectors. Could you have fewer (eg., 2) support vectors here? And why? 

Meine Antwort ist nein, 3 die kleinste Zahl ist. Aber das ist nur meine Intuition. Ich weiß nicht warum. Kann mir jemand den Grund erklären?

2. 
% svm-train -t 2 -c 100 -g 100 data0 data0.model 
% python drawBoundary.py data0 
where: 
-t 2 means RBF and -g100 means gamma=100 
A gamma of 100 means that you have to be really close to a point to have a kernel value that's non-zero. 

Hier ist die resultierende Handlung: enter image description here

Dann ist hier die zweite Frage:

Q2: Warum bekommt man diese kleinen Flecken? Wie hoch müssen Sie Gamma nach oben drehen, um eine kleine Entscheidungsgrenze um jedes Beispiel zu erhalten (d. H. Jede Entscheidungsgrenze umgibt genau ein Beispiel)?

Für diese Frage bin ich völlig verloren.

Antwort

0

Erste Frage sollte 3 Punkte sein, weil Sie zwei Punkte auf der gleichen Seite benötigen, um eine Linie zu zeichnen, dann einen Punkt auf der anderen Seite, der dazu dient, die zweite Linie (die parallel zu der ersten ist) zu zeichnen. Diese 3 Punkte werden so gewählt, dass sie den maximalen Spielraum haben (d. H., So dass die parallele Linie die maximale Trennung/Entfernung aufweist). Wenn Sie nicht 3 Punkte verwenden, gibt es immer eine Möglichkeit, diesen Abstand zwischen den beiden parallelen Linien zu erhöhen, sodass es nicht die Lösung ist, nach der wir suchen.

Für die zweite Frage, ich denke, müssen mehrere Gamma-Werte versuchen, zu beantworten. Gamma wird normalerweise in einer Menge von Werten mit einer Stärke von 10 verwendet (nicht sicher, ob das richtige Englisch ist), z. {1 10 100} = {10^0 10^1 10^2}. Und das wählen wir durch Kreuzvalidierung aus, um unsere Daten anzupassen. Auf diese Weise können wir eine effiziente SVM erstellen, die weder überfüllt noch untergeordnet ist.

Hoffe, das hilft.

+0

Vielen Dank! Aber zu Frage2, warum bekommst du diese kleinen Blobs? Bedeutet das, dass das die Margin-Linie ist? Ich bin ziemlich verwirrt. – JennyShen