📄 cost_alpha_sigma.m
字号:
function [cost_cc,clus_close] = cost_alpha_sigma(x_t,dst,num_classes,n,SIGMA_ONLY,dim,lrn_par)%% Clustering Through Ranking On Manifolds% Version 0.2%% Copyright by Markus Breitenbach and Gregory Z. Grudic% This code is for your personal and research use only.%% http://www.cs.colorado.edu/~grudic/% http://ucsu.colorado.edu/~breitenm/%% This software is provided "as is," without warranty of any kind, express% or implied. In no event shall the authors be held liable% for any direct, indirect, incidental, special or consequential damages% arising out of the use of or inability to use this software.%if SIGMA_ONLY == 1 one_over_2_sigma_sq_t = 1/(2*dim* x_t(1)^2); my_alpha = 0.99;else one_over_2_sigma_sq_t = 1/(2*dim* x_t(1)^2); my_alpha = x_t(2); if my_alpha > 1 my_aphal = 1; elseif my_alpha < 0 my_alpha = 0; end if one_over_2_sigma_sq_t < 0 one_over_2_sigma_sq_t = 0; endend W = exp(-dst.*one_over_2_sigma_sq_t);for i = 1:n W(i,i) = 0;endclear dst;Dt_s = sum(W');if min(Dt_s) < eps cost_cc = 100; return;endDt = Dt_s.^(-1/2);%Dt = sum(W').^(-1/2);S = (W.*Dt(ones(n,1),:)).*((Dt(ones(n,1),:))');iaS = eye(n,n) - (my_alpha * S);iaS_inv = inv(iaS);ind_neg = find(iaS_inv<0);if ~isempty(ind_neg) cost_cc = 100; return;endlen_rows = sum(iaS_inv.^2).^(-0.5);norm_iaS_inv = iaS_inv.*(len_rows(ones(n,1),:));dot_dist = norm_iaS_inv' * norm_iaS_inv;mean_dist = mean(dot_dist);[ind_clust] = Find_Clusters(dot_dist,mean_dist,num_classes,lrn_par.preSet_Centers);F_norm = norm_iaS_inv(:,ind_clust);%F = norm_iaS_inv * Y;%len_col_F = sum(F.^2).^(-0.5);%F_norm = F.*(len_col_F(ones(n,1),:));[cost_cc, clus_close] = Cluster_Cost(F_norm,dot_dist,num_classes,n,lrn_par.Cost_function);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -