资源简介
LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决很多问题;并提供了交互检验(Cross Validation)的功能。该软件可以解决C-SVM、ν-SVM、ε-SVR和ν-SVR等问题,包括基于一对一算法的多类模式识别问题。
代码片段和文件信息
#include
#include
#include
#include
#include
#include “svm.h“
int print_null(const char *s...) {return 0;}
static int (*info)(const char *fmt...) = &printf;
struct svm_node *x;
int max_nr_attr = 64;
struct svm_model* model;
int predict_probability=0;
static char *line = NULL;
static int max_line_len;
static char* readline(FILE *input)
{
int len;
if(fgets(linemax_line_leninput) == NULL)
return NULL;
while(strrchr(line‘\n‘) == NULL)
{
max_line_len *= 2;
line = (char *) realloc(linemax_line_len);
len = (int) strlen(line);
if(fgets(line+lenmax_line_len-leninput) == NULL)
break;
}
return line;
}
void exit_input_error(int line_num)
{
fprintf(stderr“Wrong input format at line %d\n“ line_num);
exit(1);
}
void predict(FILE *input FILE *output)
{
int correct = 0;
int total = 0;
double error = 0;
double sump = 0 sumt = 0 sumpp = 0 sumtt = 0 sumpt = 0;
int svm_type=svm_get_svm_type(model);
int nr_class=svm_get_nr_class(model);
double *prob_estimates=NULL;
int j;
if(predict_probability)
{
if (svm_type==NU_SVR || svm_type==EPSILON_SVR)
info(“Prob. model for test data: target value = predicted value + z\nz: Laplace distribution e^(-|z|/sigma)/(2sigma)sigma=%g\n“svm_get_svr_probability(model));
else
{
int *labels=(int *) malloc(nr_class*sizeof(int));
svm_get_labels(modellabels);
prob_estimates = (double *) malloc(nr_class*sizeof(double));
fprintf(output“labels“);
for(j=0;j fprintf(output“ %d“labels[j]);
fprintf(output“\n“);
free(labels);
}
}
max_line_len = 1024;
line = (char *)malloc(max_line_len*sizeof(char));
while(readline(input) != NULL)
{
int i = 0;
double target_label predict_label;
char *idx *val *label *endptr;
int inst_max_index = -1; // strtol gives 0 if wrong format and precomputed kernel has start from 0
label = strtok(line“ \t\n“);
if(label == NULL) // empty line
exit_input_error(total+1);
target_label = strtod(label&endptr);
if(endptr == label || *endptr != ‘\0‘)
exit_input_error(total+1);
while(1)
{
if(i>=max_nr_attr-1) // need one more for index = -1
{
max_nr_attr *= 2;
x = (struct svm_node *) realloc(xmax_nr_attr*sizeof(struct svm_node));
}
idx = strtok(NULL“:“);
val = strtok(NULL“ \t“);
if(val == NULL)
break;
errno = 0;
x[i].index = (int) strtol(idx&endptr10);
if(endptr == idx || errno != 0 || *endptr != ‘\0‘ || x[i].index <= inst_max_index)
exit_input_error(total+1);
else
inst_max_index = x[i].index;
errno = 0;
x[i].value = strtod(val&endptr);
if(endptr == val || errno != 0 || (*endptr != ‘\0‘ && !isspace(*endptr)))
exit_input_error(total+1);
++i;
}
x[i].index = -1;
if (predict_probability && (svm_type==C_SVC || svm_type==NU_SVC))
{
predict_label = svm_predict_probability(modelxprob_estimates);
fprintf(output“%g“predict_label);
for(j
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-15 14:16 libsvm-3.23\
文件 477 2018-07-15 14:16 libsvm-3.23\svm.def
文件 65036 2018-07-15 14:16 libsvm-3.23\svm.cpp
目录 0 2018-07-15 14:16 libsvm-3.23\tools\
文件 3196 2018-07-15 14:16 libsvm-3.23\tools\subset.py
文件 2474 2018-07-15 14:16 libsvm-3.23\tools\checkdata.py
文件 7031 2018-07-15 14:16 libsvm-3.23\tools\README
文件 15258 2018-07-15 14:16 libsvm-3.23\tools\grid.py
文件 2696 2018-07-15 14:16 libsvm-3.23\tools\easy.py
文件 5537 2018-07-15 14:16 libsvm-3.23\svm-predict.c
文件 83238 2018-07-15 14:16 libsvm-3.23\FAQ.html
文件 28756 2018-07-15 14:16 libsvm-3.23\README
文件 27670 2018-07-15 14:16 libsvm-3.23\heart_scale
目录 0 2018-07-15 14:16 libsvm-3.23\matlab\
文件 888 2018-07-15 14:16 libsvm-3.23\matlab\make.m
文件 9815 2018-07-15 14:16 libsvm-3.23\matlab\README
文件 1240 2018-07-15 14:16 libsvm-3.23\matlab\Makefile
文件 11817 2018-07-15 14:16 libsvm-3.23\matlab\svmtrain.c
文件 2326 2018-07-15 14:16 libsvm-3.23\matlab\libsvmwrite.c
文件 201 2018-07-15 14:16 libsvm-3.23\matlab\svm_model_matlab.h
文件 9818 2018-07-15 14:16 libsvm-3.23\matlab\svmpredict.c
文件 4060 2018-07-15 14:16 libsvm-3.23\matlab\libsvmread.c
文件 8196 2018-07-15 14:16 libsvm-3.23\matlab\svm_model_matlab.c
文件 732 2018-07-15 14:16 libsvm-3.23\Makefile
目录 0 2018-07-15 14:16 libsvm-3.23\python\
文件 15822 2018-07-15 14:16 libsvm-3.23\python\README
文件 9395 2018-07-15 14:16 libsvm-3.23\python\svmutil.py
文件 13631 2018-07-15 14:16 libsvm-3.23\python\svm.py
文件 32 2018-07-15 14:16 libsvm-3.23\python\Makefile
文件 5121 2018-07-15 14:16 libsvm-3.23\python\commonutil.py
文件 3381 2018-07-15 14:16 libsvm-3.23\svm.h
............此处省略36个文件信息
相关资源
- 论文研究-基于优化支持向量机的人脸
- opencv自带SVM分类器使用程序
- 遗传算法优化支持向量机算法
- 支持向量机回归算法的研究与应用
- SVM-支持向量机基本原理及应用
- 支持向量机导论PDF 作者:Nello
- 《《数据挖掘中的新方法-支持向量机
- 数据挖掘中的新方法:支持向量机.
- 支持向量机导论英文版
- 浙江大学SVM(支持向量机)经典课件
- 支持向量机导论+中文版-英文版
- 最小二乘支持向量机工具箱使用指南
- 支持向量机导论中文版PDF
- 支持向量机核函数方面外文文献
- 支持向量机 邓乃扬
- 支持向量机导论(中文).pdf
- 支持向量机导论中文版-国外经典教材
- 官方权威最小二乘支持向量机(LS-S
- 小波特征提取与支持向量机识别
- 支持向量机在金融领域的应用
- 支持向量机故障诊断及控制技术 mat
- SVM 支持向量机相关学习资料合集
- 支持向量机 - 理论、算法与拓展中文
- SNM支持向量机预测回归分析数据预测
- 支持向量机:理论、算法与拓展
- 支持向量机:理论、算法与拓展邓乃
- SVM和SMO的文档和代码
- 数据挖掘中的新方法:支持向量机高
- SVM支持向量机代码解释
- 支持向量机的分类-乳腺癌
评论
共有 条评论