IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【预测模型】基于麻雀算法优化最小二乘支持向量机实现数据分类matlab代码 -> 正文阅读

[数据结构与算法]【预测模型】基于麻雀算法优化最小二乘支持向量机实现数据分类matlab代码

1 简介

预测模型参数的选取对其泛化能力和预测准确度,起着至关重要作用.基于径向基核函数的最小二乘支持向量机参数主要涉及惩罚因子和核函数参数,这两个参数的选择将直接影响最小二乘支持向量机的学习和泛化能力.为了提高最小二乘支持向量机的预测结果,文章用麻雀优化算法对其参数寻优,建立数据分类模型.通过实验证明了该模型,对数据分类表现出很好的效果.

图片

图片

2 部分代码

%_________________________________________________________________________%

% 麻雀优化算法? ? ? ? ? ? ?%

%_________________________________________________________________________%

function [Best_pos,Best_score,curve]=SSA(pop,Max_iter,lb,ub,dim,fobj)

ST = 0.6;%预警值

PD = 0.7;%发现者的比列,剩下的是加入者

SD = 0.1;%意识到有危险麻雀的比重

PDNumber = round(pop*PD); %发现者数量

SDNumber = round(pop*SD);%意识到有危险麻雀数量

if(max(size(ub)) == 1)

? ?ub = ub.*ones(1,dim);

? ?lb = lb.*ones(1,dim);??

end

%种群初始化

X0=initialization(pop,dim,ub,lb);

X = X0;

%计算初始适应度值

fitness = zeros(1,pop);

for i = 1:pop

? ?fitness(i) =? fobj(X(i,:));

end

?[fitness, index]= sort(fitness);%排序

BestF = fitness(1);

WorstF = fitness(end);

GBestF = fitness(1);%全局最优适应度值

for i = 1:pop

? ? X(i,:) = X0(index(i),:);

end

curve=zeros(1,Max_iter);

GBestX = X(1,:);%全局最优位置

X_new = X;

for i = 1: Max_iter

? ??

? ? BestF = fitness(1);

? ? WorstF = fitness(end);

? ??

? ? R2 = rand(1);

? ?for j = 1:PDNumber

? ? ? if(R2<ST)

? ? ? ? ? X_new(j,:) = X(j,:).*exp(-j/(rand(1)*Max_iter));

? ? ? else

? ? ? ? ? X_new(j,:) = X(j,:) + randn()*ones(1,dim);

? ? ? end? ? ?

? ?end

? ?for j = PDNumber+1:pop

%? ? ? ? if(j>(pop/2))

? ? ? ? if(j>(pop - PDNumber)/2 + PDNumber)

? ? ? ? ? X_new(j,:)= randn().*exp((X(end,:) - X(j,:))/j^2);

? ? ? ?else

? ? ? ? ? %产生-1,1的随机数

? ? ? ? ? A = ones(1,dim);

? ? ? ? ? for a = 1:dim

? ? ? ? ? ? if(rand()>0.5)

? ? ? ? ? ? ? ? A(a) = -1;

? ? ? ? ? ? end

? ? ? ? ? end?

? ? ? ? ? AA = A'*inv(A*A');? ? ?

? ? ? ? ? X_new(j,:)= X(1,:) + abs(X(j,:) - X(1,:)).*AA';

? ? ? ?end

? ?end

? ?Temp = randperm(pop);

? ?SDchooseIndex = Temp(1:SDNumber);?

? ?for j = 1:SDNumber

? ? ? ?if(fitness(SDchooseIndex(j))>BestF)

? ? ? ? ? ?X_new(SDchooseIndex(j),:) = X(1,:) + randn().*abs(X(SDchooseIndex(j),:) - X(1,:));

? ? ? ?elseif(fitness(SDchooseIndex(j))== BestF)

? ? ? ? ? ?K = 2*rand() -1;

? ? ? ? ? ?X_new(SDchooseIndex(j),:) = X(SDchooseIndex(j),:) + K.*(abs( X(SDchooseIndex(j),:) - X(end,:))./(fitness(SDchooseIndex(j)) - fitness(end) + 10^-8));

? ? ? ?end

? ?end

? ?%边界控制

? ?for j = 1:pop

? ? ? ?for a = 1: dim

? ? ? ? ? ?if(X_new(j,a)>ub(a))

? ? ? ? ? ? ? ?X_new(j,a) =ub(a);

? ? ? ? ? ?end

? ? ? ? ? ?if(X_new(j,a)<lb(a))

? ? ? ? ? ? ? ?X_new(j,a) =lb(a);

? ? ? ? ? ?end

? ? ? ?end

? ?end?

? ?%更新位置

? ?for j=1:pop

? ? fitness_new(j) = fobj(X_new(j,:));

? ?end

? ?for j = 1:pop

? ? if(fitness_new(j) < GBestF)

? ? ? ?GBestF = fitness_new(j);

? ? ? ? GBestX = X_new(j,:);? ?

? ? end

? ?end

? ?X = X_new;

? ?fitness = fitness_new;

? ? %排序更新

? ?[fitness, index]= sort(fitness);%排序

? ?BestF = fitness(1);

? ?WorstF = fitness(end);

? ?for j = 1:pop

? ? ? X(j,:) = X(index(j),:);

? ?end

? ?curve(i) = GBestF;

end

Best_pos =GBestX;

Best_score = curve(end);

end

3 仿真结果

4 参考文献

[1]陈鑫等. "基于改进麻雀搜索算法与支持向量机的光纤陀螺故障诊断." 空军工程大学学报:自然科学版 22.3(2021):8.

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:41:41  更:2021-12-04 13:42:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 14:52:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码