Package de.bwaldvogel.liblinear
Class SolverMCSVM_CS
java.lang.Object
de.bwaldvogel.liblinear.SolverMCSVM_CS
A coordinate descent algorithm for
multi-class support vector machines by Crammer and Singer
min_{\alpha} 0.5 \sum_m ||w_m(\alpha)||^2 + \sum_i \sum_m e^m_i alpha^m_i
s.t. \alpha^m_i invalid input: '<'= C^m_i \forall m,i , \sum_m \alpha^m_i=0 \forall i
where e^m_i = 0 if y_i = m,
e^m_i = 1 if y_i != m,
C^m_i = C if m = y_i,
C^m_i = 0 if m != y_i,
and w_m(\alpha) = \sum_i \alpha^m_i x_i
Given:
x, y, C
eps is the stopping tolerance
solution will be put in w
See Appendix of LIBLINEAR paper, Fan et al. (2008)
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionSolverMCSVM_CS
(Problem prob, int nr_class, double[] C, double eps, Random random) -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
be_shrunk
(int i, int m, int yi, double alpha_i, double minG) private int
GETI
(int i) void
solve
(double[] w) private void
solve_sub_problem
(double A_i, int yi, double C_yi, int active_i, double[] alpha_new)
-
Field Details
-
B
private final double[] B -
C
private final double[] C -
eps
private final double eps -
G
private final double[] G -
max_iter
private final int max_iter -
w_size
private final int w_size -
l
private final int l -
nr_class
private final int nr_class -
prob
-
random
-
-
Constructor Details
-
SolverMCSVM_CS
-
-
Method Details
-
GETI
private int GETI(int i) -
be_shrunk
private boolean be_shrunk(int i, int m, int yi, double alpha_i, double minG) -
solve
public void solve(double[] w) -
solve_sub_problem
private void solve_sub_problem(double A_i, int yi, double C_yi, int active_i, double[] alpha_new)
-