首页 > 行业资讯 > 【SVM分类】基于风驱动算法优化支持向量机实现数据分类附matlab代码

【SVM分类】基于风驱动算法优化支持向量机实现数据分类附matlab代码

时间:2023-01-15 来源: 浏览:

【SVM分类】基于风驱动算法优化支持向量机实现数据分类附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #神经网络预测matlab源码 438个

1 简介

支持向量机是利用已知数据类别的样本为训练样本,寻找同类数据的空间聚集特征,从而对测试样本进行分类验证,通过验证可将分类错误的数据进行更正。本文以体检数据为数据背景,首先通过利用因子分析将高维数据进行降维,由此将所有指标整合成几个综合性指标;为降低指标之间的衡量标准所引起的误差,本文利用 MATLAB软件将数据进行归一化处理,结合聚类分析将数据分类;最后本文利用最小二乘支持向量机分类算法进行分类验证,从而计算出数据分类的准确率,并验证了数据分类的准确性和合理性。

2 部分代码

%-------------------------------------------------------------- tic; clear; close all; clc; format long g; delete ( ’WDOoutput.txt’ ); delete ( ’WDOpressure.txt’ ); delete ( ’WDOposition.txt’ ); fid=fopen( ’WDOoutput.txt’ , ’a’ ); %-------------------------------------------------------------- % User defined WDO parameters: param.popsize = 20 ; % population size. param.npar = 5 ; % Dimension of the problem. param.maxit = 500 ; % Maximum number of iterations. param.RT = 3 ; % RT coefficient. param.g = 0 . 2 ; % gravitational constant. param.alp = 0 . 4 ; % constants in the update eq. param.c = 0 . 4 ; % coriolis effect. maxV = 0 . 3 ; % maximum allowed speed. dimMin = - 5 ; % Lower dimension boundary. dimMax= 5 ; % Upper dimension boundary. %--------------------------------------------------------------- % Initialize WDO population, position and velocity: % Randomize population in the range of [- 1 , 1 ]: pos = 2 *( rand (param.popsize,param.npar)- 0 . 5 ); % Randomize velocity: vel = maxV * 2 * ( rand (param.popsize,param.npar)- 0 . 5 ); %--------------------------------------------------------------- % Evaluate initial population: (Sphere Function) for K= 1 :param.popsize, x = (dimMax - dimMin) * (( pos (K,:)+ 1 )./ 2 ) + dimMin; pres(K,:) = sum (x.^ 2 ); end %---------------------------------------------------------------- % Finding best air parcel in the initial population : [globalpres,indx] = min(pres); globalpos = pos (indx,:); minpres( 1 ) = min(pres); % minimum pressure %----------------------------------------------------------------- % Rank the air parcels: [sorted_pres rank_ind] = sort (pres); % Sort the air parcels: pos = pos (rank_ind,:); keepglob( 1 ) = globalpres; %----------------------------------------------------------------- % Start iterations : iter = 1 ; % iteration counter for ij = 2 :param.maxit, % Update the velocity: for i= 1 :param.popsize % choose random dimensions: a = randperm(param.npar); % choose velocity based on random dimension: velot(i,:) = vel(i,a); vel(i,:) = ( 1 -param.alp)*vel(i,:)-(param.g* pos (i,:))+ ... abs ( 1 - 1 /i)*((globalpos- pos (i,:)).*param.RT)+ ... (param.c*velot(i,:)/i); end % Check velocity: vel = min(vel, maxV); vel = max(vel, -maxV); % Update air parcel positions: pos = pos + vel; pos = min( pos , 1.0 ); pos = max( pos , - 1.0 ); % Evaluate population: (Pressure) for K= 1 :param.popsize, x = (dimMax - dimMin) * (( pos (K,:)+ 1 )./ 2 ) + dimMin; pres(K,:) = sum (x.^ 2 ); end %---------------------------------------------------- % Finding best particle in population [minpres,indx] = min(pres); minpos = pos (indx,:); % min location for this iteration %---------------------------------------------------- % Rank the air parcels: [sorted_pres rank_ind] = sort (pres); % Sort the air parcels position, velocity and pressure: pos = pos (rank_ind,:); vel = vel(rank_ind,:); pres = sorted_pres; % Updating the global best: better = minpres < globalpres; if better globalpres = minpres % initialize global minimum globalpos = minpos; end % Keep a record of the progress: keepglob(ij) = globalpres; save WDOposition.txt pos -ascii -tabs; end %Save values to the final file. pressure = transpose(keepglob); save WDOpressure.txt pressure -ascii -tabs; %END %-----------------------------------------------------

3 运行结果

4 参考文献

[1]张烨, 黄伟. 基于天牛群算法优化SVM的磨煤机故障诊断. 

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐