资源简介

基于半监督的svm的图像分类方法。通过聚类核的方法利用无标记样本局部正则化训练核的表达式。这种方法通过图像直接学习一个自适应的核。程序仿真的文章是:Semi-supervised Remote Sensing Image Classification

资源截图

代码片段和文件信息

% Matlab demo for Bagged Support Vector Machines (BAG SVM)
% http://www.uv.es/gcamps/bagsvm/

% Paper:    “Semi-supervised Remote Sensing Image Classification with Cluster Kernels“
%           Devis Tuia and Gustavo Camps-Valls
%           IEEE Geoscience and Remote Sensing Letters 2008 submitte


% Inputs:   - train = vector (m x p + 1) containing 
%                    p features of the m labeled data (m x p)  
%                    1 label vector (m x 1)
%           - testX = vector (n x p + 1) containing 
%                    p features of the n unlabeled data (n x p)  
%                    1 label vector (n x 1)           
%           - mode = ‘p‘ (product) or ‘s‘ (sum). Default = ‘s‘

% Outputs:  - accSVM = accuracy of the standard SVM
%           - accBAG = accuracy of the BAG SVM

% requires LibSVM (http://gpds.uv.es/~jordi/libsvm/)


% Devis Tuia (devis.tuia@unil.ch) and Gustavo Camps-Valls (gcamps@uv.es) 2008

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [accSVM accBAG] = demo_BAG_SVM(traintestNkmode)

close all
addpath(‘./code_svm‘)



if exist(‘mode‘‘var‘) == 0
    mode = [‘s‘];
    disp(‘No mode selected sum kernel by default.‘)
else
    if (mode ~= [‘s‘])
        if(mode ~= [‘p‘])
            mode = [‘s‘];
            disp(‘No mode selected sum kernel by default.‘)
        end
    end
end



%-----------------------------------------
%data prep (if not used as a function)

% train = textread(‘labeled.txt‘);
% test = textread(‘unlabeled.txt‘);

% %----
% %good results are obtained with:
% k = 5
% N = 50
% mode = [‘s‘]

% k = 2
% N = 50
%mode = [‘p‘]
%----

Xtrain = train(:1:2);
Ytrain = train(:3);
Xtest = test(:1:2);
Ytest = test(:3);
scatter(test(:1)test(:2)30test(:3))
hold on
scatter(train(:1)train(:2)303*train(:3)‘filled‘)
title(‘Initial dataset‘)

[tempidtr]=sortrows(Ytrain);
[tempidts]=sortrows(Ytest);clear temp

%-----------------------------------------
%Standard SVM

disp(‘Full SVM‘)
j=0;
trainings = 10
for ss = logspace(-33trainings)
    Ktrain = kernelmatrix(‘rbf‘Xtrain‘Xtrain‘ss);
    
    for cc = logspace(-33trainings)
        j=j+1;
        model  = svmtrain(YtrainKtrain[‘-t 4 -v 3 -c ‘ num2str(cc)]);
        RES_SVM(j:) = [ss cc model];
    end;
end;

% Select the best model
[kk j] = max(RES_SVM(:3));
sigma = RES_SVM(j1);
C = RES_SVM(j2);
clear trainings j ss cc

% Train with the best model
Ktrain = kernelmatrix(‘rbf‘Xtrain‘Xtrain‘sigma);
Ktest  = kernelmatrix(‘rbf‘Xtrain‘Xtest‘sigma);
model  = svmtrain(YtrainKtrain[‘-t 4 -c ‘ num2str(C)]);

% Predict in test
[YpredaccSVM] = svmpredict(YtestKtest‘model);
figure
scatter(test(:1)test(:2)30Ypred‘filled‘)
hold on
scatter(train(:1)train(:2)303*train(:3)‘filled‘)
title(‘Standard SVM‘)
%ACCURACY_FULL =  assessment(YtestYpred‘class‘);

%-----------------------------------------
%Construct BagSVM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2008-09-01 15:39  demoBagSVM\
     文件        6363  2008-09-01 09:05  demoBagSVM\BagSVM.m
     文件        3436  2008-09-01 15:39  demoBagSVM\README
     文件         704  2008-09-01 15:28  demoBagSVM\demo.m
     文件        1629  2008-07-08 18:26  demoBagSVM\build_Kbag.m
     文件        1191  2008-05-23 12:42  demoBagSVM\kernelmatrix.m
     文件         387  2008-06-02 09:06  demoBagSVM\closerCluster.m
     目录           0  2008-09-01 15:06  demoBagSVM\code_svm\
     文件       68500  2008-05-23 12:42  demoBagSVM\code_svm\svmtrain.mexglx
     文件       28672  2008-05-26 09:14  demoBagSVM\code_svm\svmpredict.dll
     文件       64561  2008-05-23 12:42  demoBagSVM\code_svm\svmpredict.mexglx
     文件       49152  2008-05-26 09:14  demoBagSVM\code_svm\svmtrain.dll
     文件        6148  2008-08-30 18:23  demoBagSVM\code_svm\.DS_Store
     文件        9117  2008-08-30 18:08  demoBagSVM\unlabeled.txt
     文件         549  2008-08-30 18:55  demoBagSVM\labeled.txt
     文件        2067  2007-10-05 15:54  demoBagSVM\L2_distance.m

评论

共有 条评论