
谁研究过多核极限学习机,有没有matlab代码可以参考下
1个回答
展开全部
close all
if ~exist('aaa')||(aaa~=1)
clc
clear
%加入gabor工具箱
addpath gaborpca;
path_pos='.\pos\';
path_nes='.\nes\';
pos_dir=dir(path_pos);
nes_dir=dir(path_nes);
%构建一个gabor滤波器组
filter_bank = construct_Gabor_filters(8, 5, [128 128]);
%提取正样本得gabor特征
feature_pos_train=[];
for i=3:158
im=imread([path_pos pos_dir(i).name]);
im=rgb2gray(im);
im = imresize(im,[128 128],'bilinear'); %采用'bilinear':采用双线性插值算法扩展为128*128
raw_feature = filter_image_with_Gabor_bank(im,filter_bank,32);%%提取小波特征
feature_pos_train=[feature_pos_train,raw_feature];
end
%提取负样本得gabor特征
feature_nes_train=[];
for i=3:174
im=imread([path_nes nes_dir(i).name]);
im=rgb2gray(im);
im = imresize(im,[128 128],'bilinear'); %采用'bilinear':采用双线性插值算法扩展为128*128
feature_nes_train=[feature_nes_train,raw_feature];
end
p_train=[feature_pos_train,feature_nes_train];
t_train=[ones(156,1);2*ones(172,1)];
%对提取得gabor特征进行压缩降维处理
[mappedX, mapping]=pca(p_train,111);
p_train=mapping.M;
p_train=mapminmax(p_train',0,1)';
%载入极限学习机工具箱
addpath kernelelm %%添加极限学习机算法包
%训练极限学习机
[model_elm]=kernel_elm_muti_train(p_train',t_train', 'gaussian',3.5,10);%%根据训练中的目标得出模型
[TT,TrainingAccuracy] = kernel_elm_muti_predict(p_train',t_train',model_elm);
end
%测试视频
aaa=1;
raw_feature2=[];
for i=1:1200
X=imread(strcat('picture\',num2str(i),'.jpg'));
im=rgb2gray( X);
im = imresize(im,[128 128],'bilinear'); %采用'bilinear':采用双线性插值算法扩展为128*128
feature222 = filter_image_with_Gabor_bank(im,filter_bank,32);%%提取小波特征
raw_feature2=[raw_feature2,feature222];
disp(sprintf('%i ',i));
end
raw_feature2=mapminmax(raw_feature2',0,1);
p_test=raw_feature2*mappedX;
p_test=mapminmax(p_test',0,1)';
[TT,TrainingAccuracy] = kernel_elm_muti_predict(p_test',ones(1200,1)',model_elm);
clc
%输出每帧图得计算结果
for i=1:1200
if(TT(i)==2)
disp(sprintf('第%i帧图正常',i));
else
disp(sprintf('第%i帧图报警',i));
end
end
if ~exist('aaa')||(aaa~=1)
clc
clear
%加入gabor工具箱
addpath gaborpca;
path_pos='.\pos\';
path_nes='.\nes\';
pos_dir=dir(path_pos);
nes_dir=dir(path_nes);
%构建一个gabor滤波器组
filter_bank = construct_Gabor_filters(8, 5, [128 128]);
%提取正样本得gabor特征
feature_pos_train=[];
for i=3:158
im=imread([path_pos pos_dir(i).name]);
im=rgb2gray(im);
im = imresize(im,[128 128],'bilinear'); %采用'bilinear':采用双线性插值算法扩展为128*128
raw_feature = filter_image_with_Gabor_bank(im,filter_bank,32);%%提取小波特征
feature_pos_train=[feature_pos_train,raw_feature];
end
%提取负样本得gabor特征
feature_nes_train=[];
for i=3:174
im=imread([path_nes nes_dir(i).name]);
im=rgb2gray(im);
im = imresize(im,[128 128],'bilinear'); %采用'bilinear':采用双线性插值算法扩展为128*128
feature_nes_train=[feature_nes_train,raw_feature];
end
p_train=[feature_pos_train,feature_nes_train];
t_train=[ones(156,1);2*ones(172,1)];
%对提取得gabor特征进行压缩降维处理
[mappedX, mapping]=pca(p_train,111);
p_train=mapping.M;
p_train=mapminmax(p_train',0,1)';
%载入极限学习机工具箱
addpath kernelelm %%添加极限学习机算法包
%训练极限学习机
[model_elm]=kernel_elm_muti_train(p_train',t_train', 'gaussian',3.5,10);%%根据训练中的目标得出模型
[TT,TrainingAccuracy] = kernel_elm_muti_predict(p_train',t_train',model_elm);
end
%测试视频
aaa=1;
raw_feature2=[];
for i=1:1200
X=imread(strcat('picture\',num2str(i),'.jpg'));
im=rgb2gray( X);
im = imresize(im,[128 128],'bilinear'); %采用'bilinear':采用双线性插值算法扩展为128*128
feature222 = filter_image_with_Gabor_bank(im,filter_bank,32);%%提取小波特征
raw_feature2=[raw_feature2,feature222];
disp(sprintf('%i ',i));
end
raw_feature2=mapminmax(raw_feature2',0,1);
p_test=raw_feature2*mappedX;
p_test=mapminmax(p_test',0,1)';
[TT,TrainingAccuracy] = kernel_elm_muti_predict(p_test',ones(1200,1)',model_elm);
clc
%输出每帧图得计算结果
for i=1:1200
if(TT(i)==2)
disp(sprintf('第%i帧图正常',i));
else
disp(sprintf('第%i帧图报警',i));
end
end

2025-04-08 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询