资源简介
自己写的c++程序,svm(支持向量机)smo方法,可用于多分类,可运行,附有数据。

代码片段和文件信息
//The kernel function is RBF(Radial-Basis Function).
#include “smo.h“
void main()
{ // ofstream outClientFile(“data_b_a_result.txt“ ios::out);//如果指定的文件data_result.txt不存在,ofstream就用该文件名建立它。
// ofstream outClientFile2(“test_result.txt“ ios::out);
//设置样本值矩阵
setX();
//设置目标值矩阵
setT();
//有e种目标分法,end_support_i个样本,1个测试样本,分别对每一种情况进行训练。
int ij;
for(int aa=first_test_i;aa {
for(i=0;i {//i=0;
result=0;
for(j=0;j {
target[j]=target1[j][i];
}
smoExample();
for(j=0;j {
if(alph[j]>0)
result+=target[j]*alph[j]*kernel_func(jaa);
}
result=result-b;
if(result>0)
result=1;
else
result=-1;
result_final[aa-first_test_i][i]=result;
/* cout< outClientFile< outClientFile<<“b=“< outClientFile2< for(j=0;j {
outClientFile<<“alph[“< }
*/
}
/* cout< outClientFile2< }
/* outClientFile2< outClientFile< right_rate();
system(“pause“);
//存放训练后的参数
}
void setX()
{
//为了在需要时方便地检索要处理的数据,数据应保存在文件中。
ifstream inClientFile(“data_train.txt“ ios::in);//ifstream用于从指定文件输入
if(!inClientFile)//用!inClientFile条件判断文件是否打开成功
{
cerr<<“File could not be opened!“< exit(1);//exit的作用为终止程序。
}//end if
int i=0j=0;
double a_data;//a_data为每次读到的数据 默认为6位有效数字。
while(inClientFile>>a_data)
{
dense_points[i][j]=a_data;
j++;
if(j==d)
{
j=0;
i++;
}
}
inClientFile.close();//显式关闭不再引用的文件。
}
//set targetT[]
void setT()
{
//为了在需要时方便地检索要处理的数据,数据应保存在文件中。
ifstream inClientFile(“data_labels.txt“ ios::in);//ifstream用于从指定文件输入
//exit program if ifstream could not open file
if(!inClientFile)//用!inClientFile条件判断文件是否打开成功
{
cerr<<“File could not be opened!“< exit(1);//exit的作用为终止程序。
}//end if
//训练样本目标值
int i=0j=0;
int a_data;//a_data为每次读到的数据 默认为6位有效数字。
while(inClientFile>>a_data)
{
target1[i][j]=a_data;
j++;
if(j==e)
{
j=0;
i++;
}
}
inClientFile.close();//显式关闭不再引用的文件。
}
void right_rate()
{
ifstream inClientFile(“test_labels.txt“ ios::out);
if(!inClientFile)//用!inClientFile条件判断文件是否打开成功
{
cerr<<“File could not be opened!“< exit(1);//exit的作用为终止程序。
}//end if
int i=0j=0;
int a_data;//a_data为每次读到的数据 默认为6位有效数字。
while(inClientFile>>a_data)
{
tes
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 801 2012-10-16 20:57 svm_smo\data_labels.txt
文件 18414 2012-10-24 13:04 svm_smo\data_train.txt
文件 14255 2012-11-15 18:13 svm_smo\smo.cpp
文件 1591 2012-11-15 18:09 svm_smo\smo.h
文件 801 2012-10-16 20:57 svm_smo\test_labels.txt
目录 0 2012-11-15 18:15 svm_smo
----------- --------- ---------- ----- ----
35862 6
- 上一篇:基于Gmssl的SM2加解密算法Demo
- 下一篇:音乐跑马灯C语言程序
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论