资源简介

我班牛人用产生式算法(GDA)原理编写的Matlab代码,最后生成把地物分成200类后的图片,并且上色,很直观。

资源截图

代码片段和文件信息

close all;clear;clc;
load IndianaPines.mat;
tic
[vardataAmount]=size(pixels);
TotalLabel = length(unique(Label));
labels=[];
%divide Train and Test set
while (length(labels)~=TotalLabel)
    choose = logical(round(rand(1dataAmount)));
    trainSet   = pixels(:choose);
    trainLabel = Label(choose);
    testSet = pixels(:~choose);
    testLabel = Label(~choose);
    labels = unique(trainLabel);
end
%calcuate paramter
phi = zeros(1TotalLabel);
miu = zeros(varTotalLabel);
trainAmount = length(trainLabel);
testAmount = length(testLabel);
for i=1:TotalLabel
    c = (trainLabel==labels(i));
    phi(i)=sum(c)/trainAmount;
    miu(:i)=mean(trainSet(:c)2);
end
delta = trainSet - miu(:trainLabel+1);
siginv = inv(delta*delta‘/trainAmount);
%recognize
p = zeros(1TotalLabel);
recogLabel = testLabel;
logPhi = log(phi);
for i=1:testAmount
    x = testSet(:i)*ones(1TotalLabel)-miu;
    p = logPhi - 0.5*sum(x.*(siginv*x));
    [maxPmaxI] = max(p);
    recogLabel(i) = uint8(maxI-1);
end    
%show answer
recogAmount = sum(recogLabel==testLabel);
mistakes = zeros(TotalLabelTotalLabel);
for i=1:testAmount
    if recogLabel(i)~=testLabel(i)
        mistakes(testLabel(i)+1recogLabel(i)+1)=1;
    end
end
fprintf(‘Being classificated wrong\n‘);
for i=1:TotalLabel
    fprintf(‘the class %d was wrongly classified to‘i-1);
    fprintf(‘%3d‘labels(logical(mistakes(i:))));
    fprintf(‘\n‘);
end
fprintf(‘\n‘);
fprintf(‘\n‘);
fprintf(‘the correct recognizition rate: %d/%d=%f%%\n‘recogAmounttestAmountrecogAmount/testAmount*100);
toc;
colorMap = rand(TotalLabel3);
colorMap(1:)=0;
img = zeros(145145);
img(:) = Label;
subplot 121;
imshow(imgcolorMap);
title(‘original image‘);
img(~choose)= recogLabel;
subplot 122;
imshow(imgcolorMap);
title(‘recognized image‘);
%free memory
clear c choose dataAmount delta i labels logPhi maxP miu;
clear p phi siginv recogAmount var x TotalLabel maxI testAmount trainAmount;


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2004  2012-06-30 00:00  GDA产生式算法matlab代码(带高光谱文件)\GDA.m

     文件    6940656  2012-05-15 23:53  GDA产生式算法matlab代码(带高光谱文件)\IndianaPines.mat

     目录          0  2012-09-06 09:04  GDA产生式算法matlab代码(带高光谱文件)

----------- ---------  ---------- -----  ----

              6942660                    3


评论

共有 条评论