data_mining:svm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
data_mining:svm [2014/08/16 15:00] – [Mathematische Sicht] phreazerdata_mining:svm [2014/08/17 21:05] – [Parameterwahl] phreazer
Line 24: Line 24:
 Vector Inner Product Vector Inner Product
  
-u^T v+$u^T v$
  
 $||u|| = \sqrt{u_1^2 + u_2^2}$ $||u|| = \sqrt{u_1^2 + u_2^2}$
Line 31: Line 31:
  
 $u^Tv = p * ||u|| = u_1 v_1 + u_2 v_2$ $u^Tv = p * ||u|| = u_1 v_1 + u_2 v_2$
 +
 +$\theta^T x^{(i)} = p^{(i)} ||\theta||$ mit $p^{(i)}$ als Projektion von $x^{(i)}$ auf Vektor $\theta$.
  
 $p \in R$ positive oder negativ (abhängig von Winkel) $p \in R$ positive oder negativ (abhängig von Winkel)
Line 36: Line 38:
  
 $\min_\theta 1/2 \sum_{j=1}^n \theta_j^2 = 1/2 ||\theta||^2$ $\min_\theta 1/2 \sum_{j=1}^n \theta_j^2 = 1/2 ||\theta||^2$
 +
 +Bei größeren $p^{(i)}$ können kleinere $||\theta||$ gewählt werden. $p^{(i)}$ Abstände Large Margin Classifier.
 +
 +===== Kernel =====
 +
 +Nicht-lineare Decision Boundary
 +
 +Gegeben x, berechne neue Features abhängig von der Nähe zu Landmarks $l^{(1)}, l^{(2)}, l^{(3)}$.
 +
 +Gegeben x: 
 +$$f_1 = \text{similarity}(x,l^{(1)}) = \exp(-\frac{||x-l^{(1)}||^2}{2 \sigma^2}) \\
 +f_2 = \text{similarity}(x,l^{(2)}) = \exp(-\frac{||x-l^{(2)}||^2}{2 \sigma^2}) \\ 
 +$$
 +
 +Ähnlichkeitsfunktionen = Kernel $k(x,l^{(i)})$
 +
 +Hier Gaussian Kernel.
 +
 +
 +Wenn $x \approx l^{(1)}$: $f_1 \approx 1$
 +
 +Wenn $x$ weit entfernt von $l^{(1)}$: $f_1 \approx 0$
 +
 +
 +Anpassen von $\sigma$
 +
 +===== Landmarks =====
 +
 +Sage $y=1$ vorher wenn $\theta_0 + \theta_1 f_1 + \theta_2 f_2 + \theta_3 f_3 \geq 0$
 +
 +Wie $l^{(1)}, l^{(2)}, l^{(3)}, ...$ wählen?
 +
 +$l^{(1)} = x^{(1)}$ usw.
 +
 +==== Feature Vector f ====
 +
 +$f_1 = \text{similarity}(x,l^{(1)})$ usw.
 +
 +Für $x^{(i)}$ muss entsprechend berechnet werden:
 +
 +$$
 +f_1^{(i)} = \text{sim}(x^{(i)}, l^{(1)}) \\
 +f_2^{(i)} = \text{sim}(x^{(i)}, l^{(2)}) \\
 +\dots \\
 +f_m^{(i)} = \text{sim}(x^{(i)}, l^{(m)})
 +$$
 +
 +Sage y=1 vorher, wenn $\theta^T f \geq 0$
 +
 +Wie bekommt man $\theta$?
 +
 +Durch Minimierung der Kostenfunktion, jetzt mit $\theta^T f^{(i)}$ anstelle von $\theta^T f^{(i)}$.
 +
 +==== Parameterwahl ====
 +
 +$C = \frac{1}{\lambda}$
 +
 +Großes C: Niedriger Bias, hohe Varianz => Overfitting
 +Niedriges C: Hoher Bias, niedrige Varianz => Underfitting
 +
 +$\sigma^2$
 +
 +Groß: Features variieren sanfter
 +=> Hoher Bias, niedrige Varianz
 +Niedrig: Features varrieren abrupter
 +=> Niedriger Bias, hohe Varianz
 +
 +===== Kernelwahl =====
 +
 +  * Kein Kernel (linear Kernel): n groß, m klein
 +  * Gaussian Kernel: n klein, m groß
 +    * Implementierung der Ähnlichkeitsfunktion (bzw. Features $f_i$)
 +    * Feature Scaling vor Verwendung des Gaussian Kernel $||v||^2 = v_1^2 + v_2^2 + \dots + v_n^2$
 +    * Polynomial Kernels: Eher selten benutzt
 +    * Weitere
 +
 +Manche Ähnlichkeitsfunktionen erzeugen keine gültigen Kernel. Diese müssen Mercer's Theorem erfüllen (aufgrund Optimierungen und Konvergenz).
 +
 +===== Algowahl =====
 +
 +  * Wenn n groß gegenüber m: Log Reg oder SVM ohne Kernel
 +  * Wenn n klein (1-1000) und m mittelgroß (10-10000): SVM mit Gaussian Kernel
 +  * Wenn n klein (1-1000) und m groß (50000+): Mehr Features + Log Reg oder SVM ohne Kernel
 +
  • data_mining/svm.txt
  • Last modified: 2014/08/17 21:11
  • by phreazer