亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cca.m

?? Fei Sha 等人編寫的流形學(xué)習(xí)算法CCA的matlab代碼
?? M
字號(hào):
function [Z, ccaEigen, ccaDetails] = cca(X, Y, EDGES, OPTS)%% Function [Z, CCAEIGEN, CCADETAILS] = CCA(X, Y, EDGES, OPTS) computes a low% dimensional embedding Z in R^d that maximally preserves angles among  input % data X that lives in R^D, with the algorithm Conformal Component Analysis.%% The embedding Z is constrained to be Z = L*Y where Y is a partial basis that % spans the space of R^d. Such Y can be computed from graph Laplacian (such as % the outputs of Laplacian eigenmap and Locally Linear Embedding, ie, LLE). % The parameterization matrix L is found by this function as to maximally% prserve angles between edges coded in the sparse matrix EDGES.%% A basic usage of this function is given below:%% Inputs:%   X: input data stored in matrix  (D x N) where D is the dimensionality%%   Y: partial basis stored in matrix (d x N)%%   EDGES: a sparse matrix of (N x N). In each column i, the row indices j to%   nonzero entrices define data points that are in the nearest neighbors of%   data point i.%%   OPTS:%     OPTS.method: 'CCA' %% Outputs:%   Z: low dimensional embedding (d X N)%   CCAEIGN: eigenspectra of the matrix P = L'*L. If P is low-rank (say d' < d),%   then Z can be cutoff at d' dimension as dimensionality reduced further.%% The CCA() function is fairly versatile. For more details, consult the file% README.%%  by feisha@cs.berkeley.edu Aug 18, 2006%  Feel free to use it for educational and research purpose.% sanity checkif nargin ~= 4    error('Incorrect number of inputs supplied to cca().');endN = size(X,2);if (N~=size(Y,2)) | (N ~= size(EDGES,1)) | (N~=size(EDGES,2))    disp('Unmatched matrix dimensions in cca().');    fprintf('# of data points: %d\n', N);    fprintf('# of data points in Y: %d\n', size(Y,2));    fprintf('Size of the sparse matrix for edges: %d x %d\n', size(EDGES,1), size(EDGES,2));    error('All above 4 numbers should be the same.');end% check necessary programsif exist('mexCCACollectData') ~= 3    error('Missing mexCCACollectData mex file on the path');endif exist('csdp') ~= 2    error('You will need CSDP solver to run cca(). Please make sure csdp.m is in your path');end% check optionsOPTS = check_opt(OPTS);D = size(X,1); d = size(Y,1);% if OPTS.CCA == 1    disp('-------- Running CCA ---------------------------');else    disp('-------- Running MVU ---------------------------');enddisp('Step I.  collect data needed for SDP formulation');t0 = clock;[tnn, vidx] = triangNN(EDGES, OPTS.CCA);[erow, ecol, evalue] = sparse_nn(tnn);irow = int32(erow); icol = int32(ecol);ividx = int32(vidx); ivalue = int32(evalue);[A,B, g] = mexCCACollectData(X,Y, irow, icol, int32(OPTS.relative), ivalue, ividx );clear erow ecol irow icol tnn ividx ivalue evalue vidx;lst = find(g~=0);g = g(lst); B = B(:, lst);if OPTS.CCA == 1    BG = B*spdiags(1./sqrt(g),0, length(g),length(g));    Q = A - BG*BG';    BIAS = OPTS.regularizer*reshape(eye(d), d^2,1);else    Q = A; BIAS = 2*sum(B,2)+OPTS.regularizer*reshape(eye(d), d^2,1);end[V, E] = eig(Q+eye(size(Q))); % adding an identity matrix to Q for numericalE = E-eye(size(Q));           % stabilityE(E<0) = 0;if ~isreal(diag(E))    warning('\tThe quadratic matrix is not positive definite..forced to be positive definite...\n');    E=real(E);    V = real(V);    S = sqrt(E)*V';    %keyboard;else    S = sqrt(E)*V';endfprintf('\tElapsed time: %ds\n', etime(clock,t0));% formulate the SDP problemdisp('Step II.  formulate the SDP problem');t0 = clock;[AA, bb, cc] = formulateSDP(S, d, BIAS, (OPTS.CCA==1));sizeSDP = d^2+1 + d + 2*(OPTS.CCA==1);csdppars.s = sizeSDP;csdpopts.printlevel = 0;fprintf('\tElapsed time: %ds\n', etime(clock,t0));% solve it via csdpdisp('Step III. solve the SDP problem');t0 = clock;[xx, yy, zz, info] = csdp(AA, bb, cc, csdppars,csdpopts);fprintf('\tSDP solver exit flag is %d\n', info);fprintf('\tElapsed time: %ds\n', etime(clock,t0));ccaDetails.sdpflag = info;% the negate of yy is our solutionyy = -yy;idx = 0;P = zeros(d);for col=1:d    for row = col:d        idx=idx+1;        P(row, col) = yy(idx);    endend% convert P to a positive definite matrixP = P+P' - diag(diag(P));% transform the original projection to the new[V, E] = eig(P);E(E<0) = 0; % make sure there is no very small negative eigenvalueL = diag(sqrt(diag(E))) * V';newY = L*Y;% eigenvalue of the new projection, doing PCA using covariance matrix% because the dimension of newY or Y is definitely less than the number of% points[newV, newE] = eig(newY *newY');newE = diag(newE);[dummy, idx] = sort(newE);newE = newE(idx(end:-1:1));newY = newV'*newY;Z = newY(idx(end:-1:1),:);ccaEigen = newE;ccaDetails.cost = P(:)'*Q*P(:) - BIAS'*P(:) + sum(g(:))*(OPTS.MVU==1);if OPTS.CCA == 1    ccaDetails.c = spdiags(1./sqrt(g),0, length(g),length(g))*B'*P(:);else    ccaDetails.c = [];endccaDetails.P = P;ccaDetails.opts = OPTS;return;%%%%%%%%%%%%%%%%%%%% FOLLOWING IS SUPPORTING MATLAB FUNCTIONSfunction [A, b, c]=formulateSDP(S, D, bb, TRACE)[F0, FI, c] = localformulateSDP(S, D, bb, TRACE);[A, b, c] = sdpToSeDuMi(F0, FI, c);returnfunction [F0, FI, c] = localformulateSDP(S, D, b, TRACE)% formulate SDP problem% each FI that corresponds to the LMI for the quadratic cost function has% precisely 2*D^2 nonzero elements. But we need only D^2 storage for% indexing these elements since the FI are symmetrictempFidx = zeros(D^2, 3);dimF = (D^2+1) + D + 2*TRACE;idx= 0;tracearray = ones(TRACE,1);for col=1:D    for row=col:D        idx = idx+1;        lindx1 = sub2ind([D D], row, col);        lindx2 = sub2ind([D D], col, row);        tempFidx(:,1) = [1:D^2]';        tempFidx(:,2) = D^2+1;        if col==row            tempFidx(:,3) = S(:, lindx1) ;            FI{idx} = sparse([tempFidx(:,1); ...  % for cost function                                tempFidx(:,2); ... % symmetric                                row+D^2+1; ... % for P being p.s.d                                tracearray*(D^2+1+D+1); % for trace                                tracearray*(D^2+1+D+2); % for negate trace                            ], ...                            [tempFidx(:,2); ...  % for cost function                                tempFidx(:,1); ... % symmetric                                row+D^2+1; ... % for P being p.s.d                                tracearray*(D^2+1+D+1); % for trace                                tracearray*(D^2+1+D+2); % for negate trace                            ],...                            [tempFidx(:,3); ... % for cost function                                tempFidx(:,3); ... % symmetric                                1;                  % for P being p.s.d                                tracearray*1; % for trace                                tracearray*(-1); % for negate trace                                                           ], dimF, dimF);        else                        tempFidx(:,3) = S(:, lindx1) + S(:, lindx2);            FI{idx} = sparse([tempFidx(:,1); ...  % for cost function                                tempFidx(:,2); ... % symmetric                                row+D^2+1; ... % for P being p.s.d                                col+D^2+1; ... % symmetric                            ], ...                            [tempFidx(:,2); ...  % for cost function                                tempFidx(:,1); ... % symmetric                                col+D^2+1; ... % for P being p.s.d                                row+D^2+1; ... % being symmetric                            ],...                            [tempFidx(:,3); ... % for cost function                                tempFidx(:,3); ... % symmetric                                1;                  % for P being p.s.d                                1;                  % symmetric                            ], dimF, dimF);                    end    endendidx=idx+1;% for the F matrix corresponding to tFI{idx} = sparse(D^2+1, D^2+1, 1, dimF, dimF);% now for F0if TRACE==1    F0 = sparse( [[1:D^2] dimF-1 dimF], [[1:D^2] dimF-1 dimF], [ones(1, D^2) -1 1], dimF, dimF);else    F0 = sparse( [[1:D^2]], [[1:D^2]], [ones(1, D^2)], dimF, dimF);end% now for cb = reshape(-b, D, D);b = b*2 - diag(diag(b)); c = zeros(idx-1,1);kdx=0;%keyboard;for col=1:D    for row=col:D      kdx = kdx+1;      c(kdx) = b(row, col);    endend%keyboard;c = [c; 1]; % remember: we use only half of Preturn;        function [A, b, c] = sdpToSeDuMi(F0, FI, cc)% convert the canonical SDP dual formulation:% (see  Vandenberche and Boyd 1996, SIAM Review)%  max -Tr(F0 Z)% s.t. Tr(Fi Z) = cci and Z is positive definite%% in which cc = (cc1, cc2, cc3,..) and FI = {F1, F2, F3,...}% % to SeDuMi format (formulated as vector decision variables ):% min c'x% s.t. Ax = b and x is positive definite (x is a vector, so SeDuMi% really means that vec2mat(x) is positive definite)%% by feisha@cis.upenn.edu, June, 10, 2004if nargin < 3    error('Cannot convert SDP formulation to SeDuMi formulation in sdpToSeDumi!');end[m, n] = size(F0);if m ~= n    error('F0 matrix must be squared matrix in sdpToSeDumi(F0, FI, b)');endp = length(cc);if p ~= length(FI)    error('FI matrix cellarray must have the same length as b in sdpToSeDumi(F0,FI,b)');end% should check every element in the cell array FI...later..% x = reshape(Z, n*n, 1);  % optimization variables from matrix to vector% converting objective function of the canonical SDPc = reshape(F0', n*n,1);% converting equality constraints of the canonical SDPzz= 0;for idx=1:length(FI)    zz= zz + nnz(FI{idx});endA = spalloc( n*n, p, zz);for idx = 1:p    temp = reshape(FI{idx}, n*n,1);    lst = find(temp~=0);    A(lst, idx) = temp(lst);end% The SeDuMi solver actually expects the transpose of A as in following% dual problem% max b'y% s.t. c - A'y is positive definite% Therefore, we transpose A% A = A';% b doesn't need to be changedb = cc;return;% Check OPTS that is passed intofunction OPTS = check_opt(OPTS)if isfield(OPTS,'method') == 0      OPTS.method = 'cca';    disp('Options does''t have method field, so running CCA');endif strncmpi(OPTS.method, 'MVU',3)==1    OPTS.CCA = 0; OPTS.MVU = 1;else    OPTS.CCA = 1; OPTS.MVU = 0;endif isfield(OPTS, 'relative')==0    OPTS.relative = 0;endif OPTS.CCA==1 && OPTS.relative ==1    disp('Running CCA, so the .relative flag set to 0');    OPTS.relative = 0;endif isfield(OPTS, 'regularizer')==0    OPTS.regularizer = 0;endreturnfunction [tnn vidx]= triangNN(snn, TRI)% function [TNN VIDX]= triangNN(SNN) triangulates a sparse graph coded by spare matrix% SNN. TNN records the original edges in SNN as well as those that are% triangulated. Each edge is associated with a scaling factor that is specific% to a vertex. And VIDX records the id of the vertex.%% by feisha@cs.berkeley.edu  Aug. 15, 2006.N = size(snn,1);%fprintf('The graph has %d vertices\n', N);% figure out maximum degree a vertex hasconnectivs = sum(snn,1);maxDegree =  max(connectivs);tnn = spalloc(N, N, maxDegree*N); % prealloc estimated storage for speedup % triangulationfor idx=1:N    lst = find(snn(:, idx)>0);    for jdx=1:length(lst)        col = min (idx, lst(jdx));        row = max(idx, lst(jdx));        tnn(row, col) = tnn(row, col)+1;        if TRI == 1            for kdx = jdx+1:length(lst)                col = min(lst(jdx), lst(kdx));                row = max(lst(jdx), lst(kdx));                tnn(row, col) = tnn(row, col)+1;            end        end    endendnumEdges = nnz(tnn);%fprintf('Total %d edges\n', numEdges);numVertexIdx = full(sum(tnn(:)));%fprintf('%d vertex entries are needed\n', numVertexIdx);rowIdx = zeros(numVertexIdx,1);colIdx = zeros(numVertexIdx,1);vidx = zeros(numVertexIdx,1);whichEdge = 0;for idx=1:N    lst = find(snn(:, idx)>0);    for jdx=1:length(lst)        col = min(lst(jdx), idx);        row  = max(lst(jdx), idx);        whichEdge = whichEdge+1;        rowIdx(whichEdge) = row;        colIdx(whichEdge) = col;        vidx(whichEdge)  = idx;        if TRI==1            for kdx = jdx+1:length(lst)                col = min(lst(jdx), lst(kdx));                row = max(lst(jdx), lst(kdx));                whichEdge = whichEdge+1;                rowIdx(whichEdge) = row;                colIdx(whichEdge) = col;                vidx(whichEdge)  = idx;            end        end    endendlinearIdx  = sub2ind([N N],rowIdx, colIdx);[sa, sIdx] = sort(linearIdx);vidx = vidx(sIdx);return% turn sparse graph snn into row and col indicesfunction [edgesrow, edgescol, value] = sparse_nn(snn)N = size(snn,1);edgescol = zeros(N+1,1);nnzer = nnz(snn);edgesrow = zeros(nnzer,1);value = zeros(nnzer,1);edgescol(1) = 0;for jdx=1:N    lst = find(snn(:, jdx)>0);    %lst = lst(find(lst>jdx));    edgescol(jdx+1) = edgescol(jdx)+length(lst);    edgesrow(edgescol(jdx)+1:edgescol(jdx+1)) = lst-1;    value(edgescol(jdx)+1:edgescol(jdx+1)) = snn(lst, jdx);endreturn

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av一区二区三区在线播放| 成人污视频在线观看| 欧美极品美女视频| 日韩写真欧美这视频| 国产成人午夜精品影院观看视频 | 中文字幕欧美一区| 制服丝袜中文字幕一区| 99这里只有久久精品视频| 日本不卡123| 亚洲乱码日产精品bd| 久久蜜臀精品av| 欧美高清视频在线高清观看mv色露露十八| 国内精品免费在线观看| 亚洲午夜精品久久久久久久久| 久久蜜桃一区二区| 欧美一级日韩免费不卡| 色拍拍在线精品视频8848| 国产一区二区三区日韩| 同产精品九九九| 一区二区三区四区在线播放| 国产校园另类小说区| 91精品国产高清一区二区三区| 99精品偷自拍| 国产成人一区二区精品非洲| 日韩在线观看一区二区| 亚洲美女在线一区| ...av二区三区久久精品| 久久精品视频在线看| 精品不卡在线视频| 欧美一区二区三区在线观看| 欧美伊人久久久久久午夜久久久久| 成人免费高清在线观看| 国内国产精品久久| 精品一区二区三区在线播放视频 | 成人黄色小视频| 国产精品白丝jk黑袜喷水| 蜜臀av一区二区在线免费观看| 亚洲一区在线观看免费| 亚洲综合色噜噜狠狠| 亚洲图片激情小说| 中文字幕中文字幕一区| 国产精品久久久久一区二区三区 | 91国产成人在线| 色综合亚洲欧洲| 色又黄又爽网站www久久| 色嗨嗨av一区二区三区| 欧美最新大片在线看| 在线观看视频一区| 精品电影一区二区| 精品成人一区二区三区四区| 精品久久国产97色综合| 欧美哺乳videos| 欧美精品一区视频| 久久久午夜精品理论片中文字幕| 欧美成人官网二区| 2019国产精品| 国产欧美精品一区二区色综合朱莉 | 国产精品私人自拍| 最近日韩中文字幕| 亚洲一二三区在线观看| 天堂影院一区二区| 久久99久久久欧美国产| 国产精品一二三四区| voyeur盗摄精品| 欧美亚洲禁片免费| 日韩精品一区二区三区在线| 精品久久久久一区| 欧美激情一区不卡| 亚洲午夜久久久| 日本美女一区二区三区| 国产一区999| 91日韩在线专区| 91精品国产欧美一区二区成人| 久久日韩粉嫩一区二区三区| 国产精品高潮呻吟| 日韩精品一级二级 | 久久精品国产亚洲aⅴ| 国产精品一二三四| 欧美天天综合网| 精品区一区二区| 中文字幕亚洲视频| 日本不卡视频在线观看| 成人国产精品免费观看动漫| 欧美亚洲国产怡红院影院| 日韩欧美在线123| 国产精品久久久久久妇女6080| 亚洲成人tv网| 国产91在线|亚洲| 欧美色偷偷大香| 国产日韩影视精品| 亚洲va欧美va人人爽午夜| 国产寡妇亲子伦一区二区| 欧美午夜精品久久久久久超碰| 欧美成人综合网站| 一区二区三区美女| 国产成人综合亚洲91猫咪| 欧美性色欧美a在线播放| 久久久久久久久久电影| 亚洲丰满少妇videoshd| 成人sese在线| 精品国产伦理网| 亚洲午夜久久久久久久久久久| 丰满岳乱妇一区二区三区| 欧美精品18+| 中文字幕一区二区三区不卡在线 | 欧美三级视频在线播放| 中文字幕乱码久久午夜不卡 | 久久综合视频网| 亚洲一区国产视频| 成人av资源在线| 久久综合色婷婷| 日本不卡123| 欧美色手机在线观看| 亚洲欧美二区三区| 风间由美一区二区av101| 欧美www视频| 日韩av中文在线观看| 欧美亚一区二区| 精品国产一区二区亚洲人成毛片 | 亚洲一区二区精品久久av| 国产精品系列在线观看| 欧美大度的电影原声| 婷婷中文字幕一区三区| 欧美性受xxxx黑人xyx性爽| 亚洲精品一二三| 91色porny蝌蚪| 自拍偷拍国产精品| 成人永久aaa| 国产网红主播福利一区二区| 九九久久精品视频| 日韩精品专区在线| 久久国产三级精品| 日韩精品资源二区在线| 毛片一区二区三区| 日韩欧美在线123| 久久精品久久久精品美女| 欧美一区二区精品在线| 日韩av不卡在线观看| 欧美一区二区福利在线| 另类人妖一区二区av| 日韩欧美一区二区不卡| 麻豆国产一区二区| 26uuu精品一区二区在线观看| 韩国v欧美v亚洲v日本v| 国产日本欧美一区二区| 国产白丝精品91爽爽久久| 欧美国产丝袜视频| 91在线看国产| 夜夜嗨av一区二区三区中文字幕| 精品视频123区在线观看| 视频一区二区中文字幕| 日韩欧美激情四射| 国产精品99久久久久久久vr| 国产日韩亚洲欧美综合| www.亚洲精品| 亚洲在线一区二区三区| 欧美精品久久99| 久久精品国产99久久6| 久久九九久久九九| 97se亚洲国产综合自在线| 亚洲超碰精品一区二区| 欧美一区二区三区啪啪| 久久成人免费网| 国产精品日日摸夜夜摸av| 在线看不卡av| 奇米影视一区二区三区| 国产日韩欧美高清在线| 91久久精品一区二区三区| 日韩黄色免费电影| 国产亚洲一区二区三区四区| 99久久99久久免费精品蜜臀| 午夜免费欧美电影| 久久久久久日产精品| 日本高清不卡一区| 狠狠色丁香九九婷婷综合五月| 中文字幕亚洲欧美在线不卡| 欧美日本一区二区三区| 国产不卡一区视频| 亚洲国产色一区| 欧美精品一区二区三区很污很色的| 97国产精品videossex| 美日韩黄色大片| 亚洲欧洲精品一区二区三区不卡 | 亚洲天堂a在线| 制服丝袜中文字幕亚洲| 成人动漫一区二区三区| 日本成人中文字幕在线视频| 国产精品久久久久久久久动漫 | 亚洲成精国产精品女| 久久久美女毛片| 欧美体内she精高潮| 国产精品乡下勾搭老头1| 亚洲国产综合91精品麻豆| 久久久久久99精品| 91麻豆精品国产综合久久久久久| 成人一区二区三区视频在线观看 | 全国精品久久少妇| 中文字幕佐山爱一区二区免费| 日韩一区二区精品葵司在线 | 欧美精品aⅴ在线视频|