• 大小: 77KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: Composite  kernel  

资源简介

Composite kernel 用于高光谱影像分类,其可以很好的用于空间特征与光谱特征相结合,提高高光谱影像分类精度。

资源截图

代码片段和文件信息

function [test_bc nb_kernel_selected nb_group_selected] =                 ...
    call_gkl( x_train y_train x_test y_test                             ...
    GKLoptions SVMoptions KERoptions all_C trial)

%%%
% _________________________________________________________________________
%
%   call_gkl.m
%   ----------
%
%   applies gkl for differents hyperparameters
% _________________________________________________________________________


disp([‘trial ‘ num2str(trial)]);
tolerance = 1e-5;

% create the kernel according to the option defined and x_train
% -------------------------------------------------------------
mean_x_train = mean(x_train);
std_x_train = std(x_train 1);
ind_zeros = find(abs(std_x_train) < tolerance);

if ~isempty(ind_zeros)
    std_x_train(ind_zeros) = 1;
end;

n_train = length(y_train);

x_train = x_train - repmat(mean_x_train n_train 1);
x_train = x_train ./ repmat(std_x_train n_train 1);
   
n_test = length(y_test);

x_test = x_test - repmat(mean_x_train n_test 1);
x_test = x_test ./ repmat(std_x_train n_test 1);

% build the kernel
disp(‘create the kernel (might be long)‘)
[K] = mklbuildkernel(x_train KERoptions.type_kernel                           ...
    KERoptions.param_kernel [] [] KERoptions);
[weightinfo_kernel] = UnitTraceNormalization(x_train                          ...
    KERoptions.type_kernel KERoptions.param_kernel                            ...
    KERoptions.variablecell);
disp(‘kernel created‘);

nb_kernel = size(K 3);

for k=1:nb_kernel
    K(::k) =  K(::k) * weight(k);
end;

nb_param = length(all_C);
test_bc = zeros(1 nb_param);
nb_kernel_selected = zeros(1 nb_param);
nb_group_selected =  zeros(1 nb_param);

% compute the solution for different hyperparameters
% --------------------------------------------------
for i=1:nb_param
    disp([‘trial ‘ num2str(trial) ‘ param ‘ num2str(i)]);
    [learning_sigma w b posw] = gkl_svm(K y_train all_C(i) GKLoptions SVMoptions);

    % should not be used
    if GKLoptions.numerical_precision
        learning_sigma.weight(learning_sigma.weight < GKLoptions.numerical_precision) = 0;
    end

    ind = find(learning_sigma.weight > 0);
    Kt = zeros(n_test length(posw));

    for k=1:length(ind)
        var = info_kernel(ind(k)).variable;
        Kaux = svmkernel(x_test(: var) info_kernel(ind(k)).kernel                ...
            info_kernel(ind(k)).kerneloption x_train(posw var));
        Kt = Kt + Kaux * weight(ind(k)) * learning_sigma.weight(ind(k));
    end;

    ypred = Kt*w+b;
    test_bc(i) = mean(sign(ypred) == y_test)    
    nb_kernel_selected(i) = length(ind)
    
    nb_group = max(GKLoptions.sigma_init.group);                    
        
    for k=1:nb_group
        ind_group = find(GKLoptions.sigma_init.group == k);
        
        if ~isempty(intersect(ind_group ind))
            nb_group_selected(i) = nb_group_selected(i) + 1;
        end
    end
    
    nb_group_selected
end


clear K;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2009-01-30 13:58  ckl-toolbox\
     文件         925  2009-01-16 06:00  ckl-toolbox\compute_cost_svm.m
     文件        1636  2009-01-16 05:57  ckl-toolbox\compute_golden_search.m
     文件        1289  2009-01-16 05:48  ckl-toolbox\compute_grad_svm_class.m
     文件        1956  2009-01-16 05:58  ckl-toolbox\compute_normalized_sigma.m
     文件        3213  2009-01-16 05:58  ckl-toolbox\compute_normal_vector.m
     文件         765  2009-01-16 05:46  ckl-toolbox\compute_sum_K_sigma.m
     文件         483  2009-01-16 05:42  ckl-toolbox\compute_x_to_K_sigma.m
     文件       16996  2009-01-16 06:14  ckl-toolbox\gkl_svm.m
     文件        7360  2009-01-16 05:45  ckl-toolbox\gkl_svm_update.m
     文件        2996  2009-01-16 06:10  ckl-toolbox\gkl_call.m
     文件       35147  2009-01-16 05:17  ckl-toolbox\licence.txt
     文件        6044  2009-01-30 13:58  ckl-toolbox\test_gkl_ionosphere.m
     文件        2996  2009-01-16 06:04  ckl-toolbox\call_gkl.m
     文件         416  2009-01-16 06:02  ckl-toolbox\howto.txt
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\
     目录           0  2009-01-16 06:01  ckl-toolbox\data\
     文件         877  2008-05-14 19:10  ckl-toolbox\kernel\CreateKernelListWithVariable.m
     文件        1142  2008-05-14 19:10  ckl-toolbox\kernel\mklbuildkernel.m
     文件         948  2008-05-14 19:10  ckl-toolbox\kernel\UnitTraceNormalization.m
     文件        1182  2008-05-14 19:10  ckl-toolbox\kernel\WeightK.m
     文件         747  2008-05-14 19:10  ckl-toolbox\kernel\build_efficientK.m
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\.svn\
     文件         690  2008-09-21 22:25  ckl-toolbox\kernel\.svn\all-wcprops
     文件           2  2008-09-21 22:24  ckl-toolbox\kernel\.svn\format
     文件         903  2008-12-17 08:16  ckl-toolbox\kernel\.svn\entries
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\.svn\tmp\
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\.svn\props\
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\.svn\prop-base\
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\.svn\text-base\
     目录           0  2009-01-15 11:33  ckl-toolbox\kernel\.svn\tmp\props\
............此处省略14个文件信息

评论

共有 条评论