资源简介
实现matlab下svm 的参数寻优,包括ga, pso等方法。需要的可以看看。
代码片段和文件信息
#include
#include
#include
#include
#include
#include “svm.h“
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)
printf(“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;j fprintf(output“ %g“prob_estimates[j]);
fprintf(output“\n“);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2478 2010-12-31 13:51 tools\checkdata.py
文件 2696 2010-12-31 13:51 tools\easy.py
文件 11773 2011-02-02 23:55 tools\grid.py
文件 4709 2010-09-12 21:39 tools\README
文件 3004 2010-12-31 13:51 tools\subset.py
文件 140288 2011-03-25 17:35 windows\libsvm.dll
文件 7680 2011-03-25 17:35 windows\libsvmread.mexw32
文件 11264 2011-03-25 17:35 windows\libsvmread.mexw64
文件 7168 2011-03-25 17:35 windows\libsvmwrite.mexw32
文件 10240 2011-03-25 17:35 windows\libsvmwrite.mexw64
文件 107008 2011-03-25 17:35 windows\svm-predict.exe
文件 80384 2011-03-25 17:35 windows\svm-scale.exe
文件 140288 2011-03-25 17:35 windows\svm-toy.exe
文件 135680 2011-03-25 17:35 windows\svm-train.exe
文件 19968 2011-03-25 17:35 windows\svmpredict.mexw32
文件 25088 2011-03-25 17:35 windows\svmpredict.mexw64
文件 48640 2011-03-25 17:35 windows\svmtrain.mexw32
文件 62976 2011-03-25 17:35 windows\svmtrain.mexw64
文件 62509 2011-03-08 21:25 svm.cpp.bak
文件 5381 2011-02-05 20:21 svm-predict.c
文件 7042 2009-03-16 23:16 svm-scale.c
文件 8891 2011-02-05 20:21 svm-train.c
文件 3129 2011-03-08 21:25 svm.h
文件 62509 2011-06-08 14:07 svm.cpp
文件 434 2010-09-12 20:11 svm.def
文件 68901 2011-03-26 11:25 FAQ.html
文件 1087 2010-09-12 20:11 Makefile.win
文件 1497 2011-03-26 11:25 COPYRIGHT
文件 27670 2003-07-12 12:07 heart_scale
文件 528 2010-09-12 20:11 Makefile
............此处省略145个文件信息
相关资源
- 数字滤波器的MATLAB与FPGA实现(第二版
- PSO优化模糊控制器进行电动汽车能量
- PCANet MATLAB代码
- 图像中值滤波FPGA和MATLAB的实现
- 数字调制解调技术的MATLAB与FPGA实现—
- 基于matlab的svm回归库
- 数字滤波器的MATLAB与FPGA实现——Alt
- Matlab在FPGA中的应用书+光盘
- Xilinx FPGA开发实用教程光盘资源
- 数字通信同步技术的MATLAB与FPGA实现—
- matlab svm MNIST 手写数字识别
- 数字通信同步技术的MATLAB与FPGA实现—
- [ 数字调制解调技术的MATLAB与FPGA实现
- mnist手写字的knn naive bayessvm实现
- 数字滤波器的MATLAB与FPGA实现第二版—
- 二阶锁相环Matlab程序及其FPGA程序
- 两个经典的多目标优化算法代码:N
- MATLAB实现支持向量机的图像分类:完
- g_snake.rar
- LDPC编码解码FPGA Verilog+MATLAB
- [数字滤波器的MATLAB与FPGA实现——Al
- FIR滤波器的MATLAB及FPGA实现代码
- 数字滤波器的MATLAB与FPGA实现:ALTERA
- 数字通信同步技术的MATLAB与FPGA实现完
- 数字调制解调技术的MATLAB与FPGA实现
- 通过svm cnn knn对高光谱数据集PaviaU进行
- openseesnavigator。2.5.8需要matlab2017a
- matlab常用纹理特征提取方法GLCM,GLD
- 基于SVM的人脸识别代码_matlab
- 数字通信同步技术的matlab与FPGA实现
评论
共有 条评论