static int KernelParm_init(svms_KernelParmObject *self, PyObject *args, PyObject *kwds) { const char *buff; int bufflen; static char *kwlist[] = {"kernel_type","poly_degree","rbf_gamma", "coef_lin","coef_const","custom",NULL}; LEARN_PARM lp; KERNEL_PARM*k=self->kparm; set_learning_defaults(&lp, k); if (!PyArg_ParseTupleAndKeywords (args, kwds, "|iiddds#", kwlist, &k->kernel_type, &k->poly_degree, &k->rbf_gamma, &k->coef_lin, &k->coef_const, &buff, &bufflen)) return -1; strncpy(k->custom, buff, sizeof(k->custom)-1); k->custom[sizeof(k->custom)-1]='\0'; return 0; }
int read_input_parameters(int argc,char *argv[],char *docfile,char *modelfile, char *restartfile,long *verbosity, LEARN_PARM *learn_parm,KERNEL_PARM *kernel_parm) { long i; char type[100]; /* set default */ set_learning_defaults(learn_parm, kernel_parm); strcpy (modelfile, "svm_model"); strcpy (restartfile, ""); (*verbosity)=1; strcpy(type,"c"); for(i=1;(i<argc) && ((argv[i])[0] == '-');i++) { switch ((argv[i])[1]) { case '?': print_help(); return(-1); case 'z': i++; strcpy(type,argv[i]); break; case 'v': i++; (*verbosity)=atol(argv[i]); break; case 'b': i++; learn_parm->biased_hyperplane=atol(argv[i]); break; case 'i': i++; learn_parm->remove_inconsistent=atol(argv[i]); break; case 'f': i++; learn_parm->skip_final_opt_check=!atol(argv[i]); break; case 'q': i++; learn_parm->svm_maxqpsize=atol(argv[i]); break; case 'n': i++; learn_parm->svm_newvarsinqp=atol(argv[i]); break; case '#': i++; learn_parm->maxiter=atol(argv[i]); break; case 'h': i++; learn_parm->svm_iter_to_shrink=atol(argv[i]); break; case 'm': i++; learn_parm->kernel_cache_size=atol(argv[i]); break; case 'c': i++; learn_parm->svm_c=atof(argv[i]); break; case 'w': i++; learn_parm->eps=atof(argv[i]); break; case 'p': i++; learn_parm->transduction_posratio=atof(argv[i]); break; case 'j': i++; learn_parm->svm_costratio=atof(argv[i]); break; case 'e': i++; learn_parm->epsilon_crit=atof(argv[i]); break; case 'o': i++; learn_parm->rho=atof(argv[i]); break; case 'k': i++; learn_parm->xa_depth=atol(argv[i]); break; case 'x': i++; learn_parm->compute_loo=atol(argv[i]); break; case 't': i++; kernel_parm->kernel_type=atol(argv[i]); break; case 'd': i++; kernel_parm->poly_degree=atol(argv[i]); break; case 'g': i++; kernel_parm->rbf_gamma=atof(argv[i]); break; case 's': i++; kernel_parm->coef_lin=atof(argv[i]); break; case 'r': i++; kernel_parm->coef_const=atof(argv[i]); break; case 'u': i++; strcpy(kernel_parm->custom,argv[i]); break; case 'l': i++; strcpy(learn_parm->predfile,argv[i]); break; case 'a': i++; strcpy(learn_parm->alphafile,argv[i]); break; case 'y': i++; strcpy(restartfile,argv[i]); break; default: //printf("\nUnrecognized option %s!\n\n",argv[i]); //print_help(); return(-1); } } //if(i>=argc) { // printf("\nNot enough input parameters!\n\n"); // wait_any_key(); // print_help(); // exit(0); //} //strcpy (docfile, argv[i]); //if((i+1)<argc) { // strcpy (modelfile, argv[i+1]); //} if(learn_parm->svm_iter_to_shrink == -9999) { if(kernel_parm->kernel_type == LINEAR) learn_parm->svm_iter_to_shrink=2; else learn_parm->svm_iter_to_shrink=100; } if(strcmp(type,"c")==0) { learn_parm->type=CLASSIFICATION; } else if(strcmp(type,"r")==0) { learn_parm->type=REGRESSION; } else if(strcmp(type,"p")==0) { learn_parm->type=RANKING; } else if(strcmp(type,"o")==0) { learn_parm->type=OPTIMIZATION; } else if(strcmp(type,"s")==0) { learn_parm->type=OPTIMIZATION; learn_parm->sharedslack=1; } else { //printf("\nUnknown type '%s': Valid types are 'c' (classification), 'r' regession, and 'p' preference ranking.\n",type); //wait_any_key(); //print_help(); return(-1); } if (!check_learning_parms(learn_parm, kernel_parm)) { //wait_any_key(); //print_help(); return(-1); } return 0; }