资源简介
SVM的两个例子(详细,有实验报告),这是之前找资料的时候花了很多积分下载的,我觉得还是蛮有用的,至少比网上很多人的没有用的错的代码强的多,这是SVM的分类,有对文本的分类,还有SVM最基础的例子。
代码片段和文件信息
#include “svm.h“
#include
#include
#include
#include
#include
#include
using namespace std;
svm_parameter param;
svm_problem prob;
svm_model *svmModel;
list xList;
list yList ;
const int MAX=10;
const int nTstTimes=10;
vector predictvalue;
vector realvalue;
int trainNum=0;
//设置参数
void setParam() //
{
param.svm_type = C_SVC; //SVM类型
param.kernel_type = RBF; //核函数类型
param.degree = 3; //迭代参数
param.gamma = 0.5; /* for poly/rbf/sigmoid */
param.coef0 = 0; /* for poly/sigmoid */
param.nu = 0.5; /* for NU_SVC ONE_CLASS and NU_SVR */
param.cache_size = 40; //MB制定训练所需要的内存
param.C = 500; /* for C_SVC EPSILON_SVR and NU_SVR ,惩罚因子*/
param.eps = 1e-3; /* stopping criteria */
param.p = 0.1; /* for EPSILON_SVR */
param.shrinking = 1; //指明训练过程是否使用启发
// param.probability = 0; //指明是否要做概率估计
param.nr_weight = 0; /* for C_SVC 权重的数目*/
param.weight = NULL; /* for C_SVC */
param.weight_label =NULL; /* for C_SVC 权重,元素个数由nr_weight 决定*/
}
//SVM训练
void train(char *filePath)
{
FILE *fp;
int k;
int line=0;
int temp;
if((fp=fopen(filePath“rt“))==NULL)
return ;
while(1)
{
svm_node* features = new svm_node[85+1];
//TICDATA2000.txt表中第86个属性是我们的目标变量
//目标是将数据源的86列分为0/1类,我们首先需要对TICDATA2000.txt进行训练,生成model,再根据model进行预测。
for(k=0;k<85;k++)
{
fscanf(fp“%d“&temp);
features[k].index = k + 1;
features[k].value = temp/(MAX*1.0) ;
}
features[85].index = -1;
fscanf(fp“%d“&temp);
xList.push_back(features); //将features放到Xlist里
yList.push_back(temp); //将temp放到yLITS里面
line++;
trainNum=line;
if(feof(fp))
break;
}
setParam();
/*
struct svm_problem //存储本次参加运算的所有样本(数据集),及其所属类别。
{
int l; //记录样本总数
double *y; //指向样本所属类别的数组
};
struct svm_node //用来存储输入空间中的单个特征
{
int index; //输入空间序号,假设输入空间数为m
double value; //该输入空间的值
};
prob.l=line; //训练序号
prob.x=new svm_node *[prob.l]; //对应的特征向量
prob.y = new double[prob.l]; //放的是值
int index=0;
while(!xList.empty())
{
prob.x[index]=xList.front();
prob.y[index]=yList.front();
xList.pop_front();
yList.pop_front();
index++;
}
//std::cout<
//*******核心函数svm_train******
svmModel = svm_train(&prob ¶m);
/*prop是数据的结构体(有两层),param是参数的设置*/
/*函数的返回值是一个一个struct svm_model *SVM模型的指针,可以使用函数svm_save_model把这个模型保存*/
//std::cout<<“\n“<<“over\n“;
//保存model
svm_save_model(“model.txt“svmModel);
//释放空间
delete prob.y;
delete [] prob.x;
svm_free_and_destroy_model(&svmModel);
}
void predict(char *filePath)
{
svm_model *svmModel = svm_load_model(“model.txt“);
//把保存的模型文件载入进来
FILE *fp;
int line=0;
int temp;
if((fp=fopen(filePath“rt“))==NULL)
return ;
while(1)
{
svm_node* input = new svm_node[85+1];
for(int k=0;k<85;k++)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 0 2011-12-07 20:22 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\filePath
文件 598995 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\main.obj
文件 0 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\main.sbr
文件 184501 2019-07-08 10:43 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\svm.obj
文件 0 2019-07-08 10:43 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\svm.sbr
文件 642872 2015-12-05 17:54 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\Test.obj
文件 0 2015-12-05 17:54 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\Test.sbr
文件 560128 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\vc120.idb
文件 454656 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\vc120.pdb
文件 2100224 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.bsc
文件 1219 2015-12-05 17:53 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.Build.CppClean.log
文件 1221632 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.exe
文件 2885736 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.ilk
文件 4745 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.log
文件 6328320 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.pdb
文件 746 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\BscMake.command.1.tlog
文件 552 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\bscmake.read.1.tlog
文件 394 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\bscmake.write.1.tlog
文件 3438 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\cl.command.1.tlog
文件 7988 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\CL.read.1.tlog
文件 1910 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\CL.write.1.tlog
文件 2310 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\li
文件 2616 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\li
文件 662 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\li
文件 206 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\Debug\wenben.tlog\wenben.lastbuildstate
文件 8006 2019-07-06 10:42 SVM\SVM分类算法\SVM分类算法\SVM实验报告\filePath
文件 5937 2019-07-08 10:45 SVM\SVM分类算法\SVM分类算法\SVM实验报告\main.cpp
文件 0 2019-07-22 11:08 SVM\SVM分类算法\SVM分类算法\SVM实验报告\model.txt
文件 4811 2011-12-06 19:19 SVM\SVM分类算法\SVM分类算法\SVM实验报告\preditdata.txt
文件 12009 2011-12-07 11:18 SVM\SVM分类算法\SVM分类算法\SVM实验报告\result.txt
............此处省略92个文件信息
- 上一篇:VTK图形图像开发进阶源码
- 下一篇:opencv3 神经网络字母识别源码.zip
相关资源
- 基于FPGA的SVM决策函数实现
- 集中监控平台软件,兼容雄迈,大华
- opencv+svm实现图像分类代码+训练图片
- SVM训练样本,车牌识别
- Qt Linux zinnia 手写中文识别 svm
- opencv2+vs2013实现表情识别 ,SVM+BP神经
- SVM.rar
- SVM+LBP 人脸检测
- LEAST SQUARES SUPPORT VECTOR MACHINES
- 基于OpenCV的车牌识别一整套
- 灰狼算法优化svm以及求解多目标规划
- 基于CNN和SVM的猫狗识别
- 逻辑回归贝叶斯SVM实现情感分析
- GLCM-SVM-master.zip
- 68人脸特征点Hog+SVM人脸表情识别
- Opencv_SVM训练_识别几何体
- Haar人脸检测+SVM+PCA人脸识别
- SVM实现手写数字识别
- 基于SVM的情感分析系统
- SVM支持向量机代码解释
- 行人数据库正样本
- 手写体数字识别系统实现
- minst数据集机器学习练习
- R语言预测实战(高清扫描版本)
- 基于KICA-SVM的矿用主要通风机故障诊断
- 基于SVM的产品评论属性特征的情感倾
- chapter14_基于SVM的数据分类预测——意
- 论文研究-基于word2vec扩展情感词典和
- SVM原理讲解
- svm breast cancer
评论
共有 条评论