svm.h
上传用户:xgw_05
上传日期:2014-12-08
资源大小:2726k
文件大小:1k
- #ifndef _LIBSVM_H
- #define _LIBSVM_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- struct svm_node
- {
- int index;
- double value;
- };
- struct svm_problem
- {
- int l;
- double *y;
- struct svm_node **x;
- };
- enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */
- enum { LINEAR, POLY, RBF, SIGMOID }; /* kernel_type */
- struct svm_parameter
- {
- int svm_type;
- int kernel_type;
- double degree; // for poly
- double gamma; // for poly/rbf/sigmoid
- double coef0; // for poly/sigmoid
- // these are for training only
- double cache_size; // in MB
- double eps; // stopping criteria
- double C; // for C_SVC, EPSILON_SVR and NU_SVR
- int nr_weight; // for C_SVC
- int *weight_label; // for C_SVC
- double* weight; // for C_SVC
- double nu; // for NU_SVC, ONE_CLASS, and NU_SVR
- double p; // for EPSILON_SVR
- int shrinking; // use the shrinking heuristics
- };
- struct svm_model *svm_train(const struct svm_problem *prob,
- const struct svm_parameter *param);
- int svm_save_model(const char *model_file_name, const struct svm_model *model);
- struct svm_model *svm_load_model(const char *model_file_name);
- double svm_predict(const struct svm_model *model, const struct svm_node *x);
- void svm_destroy_model(struct svm_model *model);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _LIBSVM_H */