37 #ifndef SHARK_ALGORITHMS_MCSVMADMTRAINER_H 38 #define SHARK_ALGORITHMS_MCSVMADMTRAINER_H 96 template <
class InputType,
class CacheType =
float>
112 : base_type(kernel, C, unconstrained)
117 {
return "McSvmADMTrainer"; }
125 RealMatrix linear(ic, classes-1,1.0);
127 for (
unsigned int r=0, y=0; y<classes; y++)
129 for (
unsigned int p=0, pp=0; p<classes-1; p++, pp++, r++)
137 QpFloatType mood = (
QpFloatType)(-1.0 / (
double)classes);
139 for (
unsigned int r=0, yv=0; yv<classes; yv++)
141 for (
unsigned int pv=0, ppv=0; pv<classes-1; pv++, ppv++)
143 if (ppv == yv) ppv++;
144 for (
unsigned int yw=0; yw<classes; yw++, r++)
149 unsigned int pw = ppv - (ppv > yw ? 1 : 0);
162 RealMatrix alpha(ic,classes-1,0.0);
163 RealVector bias(classes,0.0);
167 PrecomputedMatrixType matrix(&km);
180 alpha = problem.solution();
197 alpha = problem.solution();
203 for (std::size_t i=0; i<ic; i++)
205 unsigned int y = dataset.
element(i).label;
206 for (
unsigned int c=0; c<classes; c++)
209 unsigned int r = (classes-1) * y;
210 for (
unsigned int p=0; p != classes-1; p++, r++)
211 sum += nu(r, c) * alpha(i, p);
225 template <
class InputType>
236 {
return "LinearMcSvmADMTrainer"; }