• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签: 代码  

资源简介

给出基于量子粒子群的支持向量机的matlab代码,可以用傅里叶变化、小波变化等多种数据,留一法检测分类正确率

资源截图

代码片段和文件信息

function [erra] = fit_sqpso_pca_m_svm(xnpc)
%% 2012.9.17编写程序,该程序特征值选用的是原始曲线的最大值,使用PCA进行降维,,使用svm进行分类,使用粒子群算法进行参数的寻优。

%% 需要寻优的参数
%x(1):[0 2];RBF kernel的参数
%x(2):[0 1000000];svm 惩罚因子
x=abs(x);
load wound_data_max
%% 归一化
Y=mapminmax(wound_data_max‘01);            %要进行一次转置,这样的归一化是对列(也就是每个传感器响应曲线)的归一化,也有的是对每一次采样得到的数据进行归一化。                        
%% 使用PCA进行数据降维
[COEFFSCORElatenttsquare] = princomp(Y‘);
input=SCORE(:1:npc);                        %根据npc确定降维后特征矩阵维数      
%% svm进行模式识别——“留一法”
obj=[1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;
        2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;
        3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;
        4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4];
    %% 交叉验证
       K=80;                                 %折成的份数
       indices = crossvalind(‘Kfold‘80K);  % K=25102040    
           cp= classperf(obj);            %要写成1234的形式
 for j = 1:K                        
           test = (indices == j);            %交叉验证的

评论

共有 条评论