📄 svm.h
字号:
#ifndef _LIBSVM_H#define _LIBSVM_H#ifdef __cplusplusextern "C" {#endifstruct svm_node{ int index; double value;};
/*struct svm_node 用来存储单一向量中的单个特征,例如:
向量x1={ 0.002, 0.345, 4, 5.677};
那么用struct svm_node 来存储时就使用一个包含5 个svm_node 的数组来存储此4 维向量,
内存映象如下:
1 2 3 4 -1
0.002 0.345 4.000 5.677 空
(类型转换不再说明)*/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, PRECOMPUTED }; /* kernel_type */struct svm_parameter{ int svm_type; int kernel_type; int 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 */ int probability; /* do probability estimates */};//最主要的驱动函数,训练数据struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param);
void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target);//保存数据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);int svm_get_svm_type(const struct svm_model *model);int svm_get_nr_class(const struct svm_model *model);void svm_get_labels(const struct svm_model *model, int *label);double svm_get_svr_probability(const struct svm_model *model);void svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values);//预测
double svm_predict(const struct svm_model *model, const struct svm_node *x);double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates);//销毁数据,释放申请的内存void svm_destroy_model(struct svm_model *model);void svm_destroy_param(struct svm_parameter *param);//检查数据const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param);int svm_check_probability_model(const struct svm_model *model);#ifdef __cplusplus}#endif#endif /* _LIBSVM_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -