67 using namespace shogun;
116 if (strcmp(name,
"LIBSVM_ONECLASS")==0)
120 SG_INFO(
"created SVMlibsvm object for oneclass\n")
122 else if (strcmp(name,
"LIBSVM_MULTICLASS")==0)
126 SG_INFO(
"created SVMlibsvm object for multiclass\n")
128 else if (strcmp(name,
"LIBSVM_NUMULTICLASS")==0)
132 SG_INFO(
"created SVMlibsvm object for multiclass\n")
135 else if (strcmp(name,
"SCATTERSVM_NO_BIAS_SVMLIGHT")==0)
139 SG_INFO(
"created ScatterSVM NO BIAS SVMLIGHT object\n")
141 #endif //USE_SVMLIGHT
142 else if (strcmp(name,
"SCATTERSVM_NO_BIAS_LIBSVM")==0)
146 SG_INFO(
"created ScatterSVM NO BIAS LIBSVM object\n")
148 else if (strcmp(name,
"SCATTERSVM_TESTRULE1")==0)
152 SG_INFO(
"created ScatterSVM TESTRULE1 object\n")
154 else if (strcmp(name,
"SCATTERSVM_TESTRULE2")==0)
158 SG_INFO(
"created ScatterSVM TESTRULE2 object\n")
160 else if (strcmp(name,
"LIBSVM_NU")==0)
164 SG_INFO(
"created SVMlibsvm object\n")
166 else if (strcmp(name,
"LIBSVM")==0)
170 SG_INFO(
"created SVMlibsvm object\n")
172 else if (strcmp(name,
"LARANK")==0)
176 SG_INFO(
"created LaRank object\n")
179 else if ((strcmp(name,
"LIGHT")==0) || (strcmp(name,
"SVMLIGHT")==0))
183 SG_INFO(
"created SVMLight object\n")
185 else if (strcmp(name,
"SVMLIGHT_ONECLASS")==0)
189 SG_INFO(
"created SVMLightOneClass object\n")
191 else if (strcmp(name,
"SVRLIGHT")==0)
195 SG_INFO(
"created SVRLight object\n")
197 #endif //USE_SVMLIGHT
198 else if (strcmp(name,
"GPBTSVM")==0)
202 SG_INFO(
"created GPBT-SVM object\n")
204 else if (strcmp(name,
"MPDSVM")==0)
208 SG_INFO(
"created MPD-SVM object\n")
210 else if (strcmp(name,
"GNPPSVM")==0)
214 SG_INFO(
"created GNPP-SVM object\n")
216 else if (strcmp(name,
"GMNPSVM")==0)
220 SG_INFO(
"created GMNP-SVM object\n")
222 else if (strcmp(name,
"LIBSVR")==0)
226 SG_INFO(
"created SVRlibsvm object\n")
229 else if (strcmp(name,
"KERNELRIDGEREGRESSION")==0)
233 ui->ui_labels->get_train_labels());
237 else if (strcmp(name,
"PERCEPTRON")==0)
241 SG_INFO(
"created Perceptron object\n")
244 else if (strncmp(name,
"LIBLINEAR",9)==0)
248 if (strcmp(name,
"LIBLINEAR_L2R_LR")==0)
251 SG_INFO(
"created LibLinear l2 regularized logistic regression object\n")
253 else if (strcmp(name,
"LIBLINEAR_L2R_L2LOSS_SVC_DUAL")==0)
256 SG_INFO(
"created LibLinear l2 regularized l2 loss SVM dual object\n")
258 else if (strcmp(name,
"LIBLINEAR_L2R_L2LOSS_SVC")==0)
261 SG_INFO(
"created LibLinear l2 regularized l2 loss SVM primal object\n")
263 else if (strcmp(name,
"LIBLINEAR_L1R_L2LOSS_SVC")==0)
266 SG_INFO(
"created LibLinear l1 regularized l2 loss SVM primal object\n")
268 else if (strcmp(name,
"LIBLINEAR_L2R_L1LOSS_SVC_DUAL")==0)
271 SG_INFO(
"created LibLinear l2 regularized l1 loss dual SVM object\n")
274 SG_ERROR(
"unknown liblinear type\n")
282 else if (strcmp(name,
"LDA")==0)
286 SG_INFO(
"created LDA object\n")
290 else if (strcmp(name,
"LPM")==0)
298 SG_INFO(
"created LPM object\n")
300 else if (strcmp(name,
"LPBOOST")==0)
308 SG_INFO(
"created LPBoost object\n")
311 else if (strncmp(name,
"KNN", strlen(
"KNN"))==0)
315 SG_INFO(
"created KNN object\n")
317 else if (strncmp(name,
"KMEANS", strlen(
"KMEANS"))==0)
321 SG_INFO(
"created KMeans object\n")
323 else if (strncmp(name,
"HIERARCHICAL", strlen(
"HIERARCHICAL"))==0)
327 SG_INFO(
"created Hierarchical clustering object\n")
329 else if (strcmp(name,
"SVMLIN")==0)
336 SG_INFO(
"created SVMLin object\n")
338 else if (strncmp(name,
"WDSVMOCAS", strlen(
"WDSVMOCAS"))==0)
348 SG_INFO(
"created Weighted Degree Kernel SVM Ocas(OCAS) object of order %d (from order:%d)\n", d, from_d)
350 else if (strcmp(name,
"SVMOCAS")==0)
359 SG_INFO(
"created SVM Ocas(OCAS) object\n")
361 else if (strcmp(name,
"SVMSGD")==0)
366 SG_INFO(
"created SVM SGD object\n")
368 else if (strcmp(name,
"SVMBMRM")==0 || (strcmp(name,
"SVMPERF")==0))
377 SG_INFO(
"created SVM Ocas(BMRM/PERF) object\n")
379 else if (strcmp(name,
"MKL_CLASSIFICATION")==0)
384 else if (strcmp(name,
"MKL_ONECLASS")==0)
389 else if (strcmp(name,
"MKL_MULTICLASS")==0)
394 else if (strcmp(name,
"MKL_REGRESSION")==0)
401 SG_ERROR(
"Unknown classifier %s.\n", name)
415 CLabels* trainlabels=
ui->ui_labels->get_train_labels();
417 SG_ERROR(
"No trainlabels available.\n")
419 CKernel* kernel=
ui->ui_kernel->get_kernel();
423 bool success=
ui->ui_kernel->init_kernel(
"TRAIN");
425 if (!success || !
ui->ui_kernel->is_initialized() || !kernel->
has_features())
426 SG_ERROR(
"Kernel not initialized / no train features available.\n")
430 SG_ERROR(
"Number of train labels (%d) and training vectors (%d) differs!\n", trainlabels->
get_num_labels(), num_vec)
464 trainlabels=
ui->ui_labels->get_train_labels();
466 SG_INFO(
"Training one class mkl.\n")
467 if (!trainlabels && !oneclass)
468 SG_ERROR(
"No trainlabels available.\n")
470 CKernel* kernel=
ui->ui_kernel->get_kernel();
474 bool success=
ui->ui_kernel->init_kernel(
"TRAIN");
475 if (!success || !
ui->ui_kernel->is_initialized() || !kernel->
has_features())
476 SG_ERROR(
"Kernel not initialized.\n")
480 SG_ERROR(
"Number of train labels (%d) and training vectors (%d) differs!\n", trainlabels->
get_num_labels(), num_vec)
519 bool result=mkl->
train();
534 trainlabels=
ui->ui_labels->get_train_labels();
536 SG_INFO(
"Training one class svm.\n")
537 if (!trainlabels && !oneclass)
538 SG_ERROR(
"No trainlabels available.\n")
540 CKernel* kernel=
ui->ui_kernel->get_kernel();
544 bool success=
ui->ui_kernel->init_kernel(
"TRAIN");
546 if (!success || !
ui->ui_kernel->is_initialized() || !kernel->
has_features())
547 SG_ERROR(
"Kernel not initialized / no train features available.\n")
551 SG_ERROR(
"Number of train labels (%d) and training vectors (%d) differs!\n", trainlabels->
get_num_labels(), num_vec)
628 if (!
ui->ui_distance->init_distance(
"TRAIN"))
629 SG_ERROR(
"Initializing distance with train features failed.\n")
639 ((
CKMeans*) classifier)->set_max_iter(max_iter);
640 result=((
CKMeans*) classifier)->train();
650 SG_ERROR(
"Unknown clustering type %d\n", type)
658 CLabels* trainlabels=
ui->ui_labels->get_train_labels();
667 if (!
ui->ui_distance->init_distance(
"TRAIN"))
668 SG_ERROR(
"Initializing distance with train features failed.\n")
675 SG_ERROR(
"No distance available.\n")
691 trainlabels=
ui->ui_labels->get_train_labels();
693 SG_ERROR(
"No trainlabels available.\n")
695 CKernel* kernel=
ui->ui_kernel->get_kernel();
699 bool success=
ui->ui_kernel->init_kernel(
"TRAIN");
701 if (!success || !
ui->ui_kernel->is_initialized() || !kernel->
has_features())
702 SG_ERROR(
"Kernel not initialized / no train features available.\n")
706 SG_ERROR(
"Number of train labels (%d) and training vectors (%d) differs!\n", trainlabels->
get_num_labels(), num_vec)
713 bool result=krr->
train();
724 CFeatures* trainfeatures=
ui->ui_features->get_train_features();
725 CLabels* trainlabels=
ui->ui_labels->get_train_labels();
729 SG_ERROR(
"No trainfeatures available.\n")
732 SG_ERROR(
"Trainfeatures not based on DotFeatures.\n")
748 SG_ERROR(
"LDA requires train features of class SIMPLE type REAL.\n")
767 SG_ERROR(
"LPM and LPBOOST require trainfeatures of class SPARSE type REAL.\n")
779 CFeatures* trainfeatures=
ui->ui_features->get_train_features();
780 CLabels* trainlabels=
ui->ui_labels->get_train_labels();
785 SG_ERROR(
"No trainfeatures available.\n")
789 SG_ERROR(
"Trainfeatures are not of class STRING type BYTE.\n")
807 FILE* model_file=fopen(filename,
"r");
814 SG_DEBUG(
"file successfully read.\n")
818 SG_ERROR(
"SVM/Classifier creation/loading failed on file %s.\n", filename)
823 SG_ERROR(
"Opening file %s failed.\n", filename)
828 SG_ERROR(
"Type %s of SVM/Classifier unknown.\n", type)
840 FILE* file=fopen(param,
"w");
844 printf(
"writing to file %s failed!\n", param);
847 printf(
"successfully written classifier into \"%s\" !\n", param);
855 SG_ERROR(
"create classifier first\n")
896 SG_INFO(
"Disabling max_train_time.\n")
904 SG_ERROR(
"No regression method allocated\n")
910 SG_ERROR(
"Underlying method not capable of SV-regression\n")
937 if (weight_epsilon<0)
957 if (lambda<0 || lambda>1)
967 SG_ERROR(
"1 <= mkl_block_norm <= inf\n")
1028 SG_INFO(
"Enabling shrinking optimization.\n")
1030 SG_INFO(
"Disabling shrinking optimization.\n")
1039 SG_INFO(
"Enabling batch computation.\n")
1041 SG_INFO(
"Disabling batch computation.\n")
1050 SG_INFO(
"Enabling LINADD optimization.\n")
1052 SG_INFO(
"Disabling LINADD optimization.\n")
1061 SG_INFO(
"Enabling svm bias.\n")
1063 SG_INFO(
"Disabling svm bias.\n")
1072 SG_INFO(
"Enabling mkl interleaved optimization.\n")
1074 SG_INFO(
"Disabling mkl interleaved optimization.\n")
1084 SG_INFO(
"Enabling AUC maximization.\n")
1086 SG_INFO(
"Disabling AUC maximization.\n")
1133 SG_ERROR(
"unknown classifier type\n")
1142 CFeatures* trainfeatures=
ui->ui_features->get_train_features();
1143 CFeatures* testfeatures=
ui->ui_features->get_test_features();
1146 SG_ERROR(
"No kernelmachine available.\n")
1150 REQUIRE(
ui->ui_kernel->get_kernel(),
"No kernel set");
1151 if (
ui->ui_kernel->get_kernel()->get_kernel_type()!=
K_CUSTOM)
1153 if (
ui->ui_kernel->get_kernel()->get_kernel_type()==
K_COMBINED
1154 && ( !trainfeatures || !testfeatures ))
1156 SG_DEBUG(
"skipping initialisation of combined kernel "
1157 "as train/test features are unavailable\n")
1162 SG_ERROR(
"No training features available.\n")
1164 SG_ERROR(
"No test features available.\n")
1166 success=
ui->ui_kernel->init_kernel(
"TEST");
1170 if (!success || !
ui->ui_kernel->is_initialized())
1171 SG_ERROR(
"Kernel not initialized.\n")
1187 SG_INFO(
"Starting kernel machine testing.\n")
1193 int32_t& brows, int32_t& bcols,
1218 return get_svm(weights, rows, cols, bias, brows, bcols, idx);
1229 return get_linear(weights, rows, cols, bias, brows, bcols);
1239 SG_ERROR(
"unknown classifier type\n")
1254 int32_t& brows, int32_t& bcols, int32_t idx)
1270 weights=SG_MALLOC(
float64_t, rows*cols);
1272 for (int32_t i=0; i<rows; i++)
1286 int32_t& brows, int32_t& bcols)
1307 centers=SG_MALLOC(
float64_t, rows*cols);
1326 centers=SG_MALLOC(
float64_t, rows*cols);
1327 for (int32_t i=0; i<rows*cols; i++)
1334 SG_ERROR(
"internal error - unknown clustering type\n")
1342 int32_t& brows, int32_t& bcols)
1366 CFeatures* trainfeatures=
ui->ui_features->get_train_features();
1367 CFeatures* testfeatures=
ui->ui_features->get_test_features();
1371 SG_ERROR(
"no kernelmachine available\n")
1376 SG_ERROR(
"no training features available\n")
1382 SG_ERROR(
"no test features available\n")
1386 bool success=
ui->ui_distance->init_distance(
"TEST");
1388 if (!success || !
ui->ui_distance->is_initialized())
1390 SG_ERROR(
"distance not initialized\n")
1395 ui->ui_distance->get_distance());
1396 SG_INFO(
"starting distance machine testing\n")
1403 CFeatures* testfeatures=
ui->ui_features->get_test_features();
1407 SG_ERROR(
"no classifier available\n")
1412 SG_ERROR(
"no test features available\n")
1417 SG_ERROR(
"testfeatures not based on DotFeatures\n")
1422 SG_INFO(
"starting linear classifier testing\n")
1428 CFeatures* testfeatures=
ui->ui_features->get_test_features();
1437 SG_ERROR(
"no test features available\n")
1443 SG_ERROR(
"testfeatures not of class STRING type BYTE\n")
1448 SG_INFO(
"starting linear classifier testing\n")
1454 CFeatures* trainfeatures=
ui->ui_features->get_train_features();
1455 CFeatures* testfeatures=
ui->ui_features->get_test_features();
1463 if (!
ui->ui_kernel->is_initialized())
1465 SG_ERROR(
"kernel not initialized\n")
1469 if (!
ui->ui_kernel->get_kernel() ||
1470 ui->ui_kernel->get_kernel()->get_kernel_type()!=
K_CUSTOM)
1474 SG_ERROR(
"no training features available\n")
1480 SG_ERROR(
"no test features available\n")
1486 ui->ui_kernel->get_kernel());
1510 if (strncmp(solver,
"NEWTON", 6)==0)
1512 SG_INFO(
"Using NEWTON solver.\n")
1515 else if (strncmp(solver,
"DIRECT", 6)==0)
1517 SG_INFO(
"Using DIRECT solver\n")
1520 else if (strncmp(solver,
"BLOCK_NORM", 9)==0)
1522 SG_INFO(
"Using BLOCK_NORM solver\n")
1525 else if (strncmp(solver,
"ELASTICNET", 10)==0)
1527 SG_INFO(
"Using ELASTICNET solver\n")
1530 else if (strncmp(solver,
"AUTO", 4)==0)
1532 SG_INFO(
"Automagically determining solver.\n")
1536 else if (strncmp(solver,
"CPLEX", 5)==0)
1538 SG_INFO(
"USING CPLEX METHOD selected\n")
1543 else if (strncmp(solver,
"GLPK", 4)==0)
1545 SG_INFO(
"Using GLPK solver\n")
1550 SG_ERROR(
"Unknown solver type, %s (not compiled in?)\n", solver)
1559 if (strcmp(name,
"LIBSVM_ONECLASS")==0)
1563 SG_INFO(
"created SVMlibsvm object for oneclass\n")
1565 else if (strcmp(name,
"LIBSVM_NU")==0)
1569 SG_INFO(
"created SVMlibsvm object\n")
1571 else if (strcmp(name,
"LIBSVM")==0)
1575 SG_INFO(
"created SVMlibsvm object\n")
1578 else if ((strcmp(name,
"LIGHT")==0) || (strcmp(name,
"SVMLIGHT")==0))
1582 SG_INFO(
"created SVMLight object\n")
1584 else if (strcmp(name,
"SVMLIGHT_ONECLASS")==0)
1588 SG_INFO(
"created SVMLightOneClass object\n")
1590 else if (strcmp(name,
"SVRLIGHT")==0)
1594 SG_INFO(
"created SVRLight object\n")
1596 #endif //USE_SVMLIGHT
1597 else if (strcmp(name,
"GPBTSVM")==0)
1601 SG_INFO(
"created GPBT-SVM object\n")
1603 else if (strcmp(name,
"MPDSVM")==0)
1607 SG_INFO(
"created MPD-SVM object\n")
1609 else if (strcmp(name,
"GNPPSVM")==0)
1613 SG_INFO(
"created GNPP-SVM object\n")
1615 else if (strcmp(name,
"LIBSVR")==0)
1619 SG_INFO(
"created SVRlibsvm object\n")
1623 SG_ERROR(
"Unknown SV-classifier %s.\n", name)