资源简介
PSO-LS-SVM代码
代码片段和文件信息
//LS-SVM
#include
#include
#include
#include
#include
#include
#include
using namespace std;
//double sigma = 0.28; //核参数 fatboy数据100-50
//double sigma = 0.49; //核参数 housing
//double sigma = 0.50; //dianjia核参数
//double gamma = 100; //惩罚因子
//double sigma = 5.6; //风速数据参数
//double gamma = 900;
int scal_flag=0; //归一化参数
int dim_flag = 8; //输入数据的维数
int dim = 8; //多维数据:数据维数
int MD = 20; //一维数据:嵌入维数MD
double beta; //b
vector alpha; //alpha
vector > train_x; //训练数据
vector train_y;
vector > test_x; //测试数据
vector test_y;
vector pred; //预测数据
vector pred_best; //最优预测数据
void Read_Data(); //读取数据
void Writ_Data();
void Scale(); //数据归一化当scal_flag=0,归一化到[01];=1 归一化到[-11]
double RBF(vector xi vector xj double sigma); //RBF函数
void Kmatrix(vector > &KerlMatrix double sigma double gamma); //构造核矩阵
void Gauss(vector > KerlMatrix); //高斯消元法
void Predict(double sigma); //预测函数
void Result_out(); //输出结果
//PSO参数设定
const int Pnum = 10; //粒子数目
const int Dnum = 50; //迭代总次数1000
const double SigLow = 0.1; //sigma搜索域范围
const double SigHigh = 10;
const double SigVmin = -10; //sigma的速度范围
const double SigVmax = 10;
const double GamLow = 1; //gamma搜索域范围
const double GamHigh = 100;
const double GamVmin = -100; //gamma的速度范围
const double GamVmax = 100;
const double c1 = 2; //学习因子
const double c2 = 2;
const double Wmin=0.4; //最小权值
const double Wmax=0.9; //最大权值
double w = 0.9; //初始权值
int wn = 1;
//PSO
double sigma[Pnum]; //粒子集合
double gamma[Pnum];
double sigma_loc_best[Pnum]; //局部最优
double gamma_loc_best[Pnum];
double sigma_glo_best; //全局最优
double gamma_glo_best;
double sigma_v[Pnum]; //更新速度
double gamma_v[Pnum];
double fit[Pnum]; //粒子当前的适应度
double loc_fit[Pnum]; //局部最优值
double gfit; //全局最优适应值
//PSO优化相关函数
void Initial(); //初始化
double FitNess(double gamma double sigma); //计算适应度
void renew_par(); //更新粒子信息
void renew_w(); //更新权重
void WCJS();
int main()
{
clock_t begin = clock();
Read_Data();
Writ_Data();
Scale();
cout< cout<<“......训练样本数目 = “< cout<<“......测试样本数目 = “<
cout<<“............开始训练............“<
srand((unsigned)time(NULL));
Initial();
int num=0;
while(num {
//if(num%10 == 0)
cout<<“num = “< cout<<“sigma_glo_best = “< cout<<“gamma_glo_best = “<
renew_par();
renew_w();
num++;
}
Result_out();
clock_t end = clock();
cout<<“程序运行时间: “<<(end-begin)/CLOCKS_PER_SEC<<“秒“<
return 0;
}
void Read_Data()
{
d
- 上一篇:Retinex算法,C++,opencv
- 下一篇:C语言 拉丁方阵
相关资源
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C流程图生成器,用C语言代码 生成C语
- 小甲鱼C语言课件 源代码
- 学校超市选址问题(数据结构C语言版
- c语言看发的网络协议 ,源代码
- LU分解法解线性方程组的C语言代码
- 手机话费管理系统(c语言编写)
- C语言实现的DES对称加密算法
- 数据结构,迷宫问题C语言版源代码
- C语言 学生信息管理系统 源代码
- C语言版3D魔方游戏源代码
- 编译原理实验-词法分析(c语言代码)
- C语言中 文件读取和写入的详细操作代
- QT5开发及源代码
- 合泰触摸单片机BS84B08C实际应用代码上
- TFT_ST7789V驱动显示屏代码,可用于es
- 围棋C语言代码
- QML非常经典的代码
- linux 0.11内核代码
- 无人机视频代码
- 基于esp32的摄像头采集图像代码
- ASR6500,ASR6505原厂测试代码
- LCD驱动芯片ST7701SI SPI接口底层驱动配
- stm32库函数代码自动生成器V1.2
- USB CAN Tool 源代码(LabVIEW 2011环境)
- 超声波水表源代码
- 一个模糊PID温度控制算法源代码
- 颜色识别形状识别STM103嵌入式代码
- PE文件操作代码
评论
共有 条评论