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

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

?? lda.m

?? 《機(jī)器學(xué)習(xí)》課上的作業(yè)
?? M
字號:
function [eigvector, eigvalue] = LDA(X,gnd,options) 
% LDA: Linear Discriminant Analysis  
% 
%       [eigvector, eigvalue] = LDA(X, gnd, options) 
%  
%             Input: 
%               X       - Data matrix. Each row vector of fea is a data point. 
%               gnd   - Colunm vector of the label information for each 
%                       data point.  
%               options - Struct value in Matlab. The fields in options 
%                         that can be set: 
% 
%                            Regu  -  1: regularized solution,  
%                                        a* = argmax (a'X'WXa)/(a'X'DXa+alpha*I)  
%                                     0: solve the sinularity problem by SVD  
%                                     Default: 1  
% 
%                            alpha -  The regularization parameter. Valid 
%                                     when Regu==1. Default value is 0.1.  
% 
%                            ReguType  -  'Ridge': Tikhonov regularization 
%                                         'Custom': User provided 
%                                                   regularization matrix 
%                                          Default: 'Ridge'  
%                        regularizerR  -   (nFea x nFea) regularization 
%                                          matrix which should be provided 
%                                          if ReguType is 'Custom'. nFea is 
%                                          the feature number of data 
%                                          matrix 
%                        Fisherface     -  1: Fisherface approach 
%                                             PCARatio = nSmp - nClass 
%                                          Default: 0 
% 
%                            PCARatio     -  The percentage of principal 
%                                            component kept in the PCA 
%                                            step. The percentage is 
%                                            calculated based on the 
%                                            eigenvalue. Default is 1 
%                                            (100%, all the non-zero 
%                                            eigenvalues will be kept. 
%                                            If PCARatio > 1, the PCA step 
%                                            will keep exactly PCARatio principle 
%                                            components (does not exceed the 
%                                            exact number of non-zero components).   
%                            
% 
%             Output: 
%               eigvector - Each column is an embedding function, for a new 
%                           data point (row vector) x,  y = x*eigvector 
%                           will be the embedding result of x. 
%               eigvalue  - The sorted eigvalue of LDA eigen-problem.  
%  
% 
% 
%    Examples: 
%        
%       fea = rand(50,70); 
%       gnd = [ones(10,1);ones(15,1)*2;ones(10,1)*3;ones(15,1)*4]; 
%       options = []; 
%       options.Fisherface = 1; 
%       [eigvector, eigvalue] = LDA(fea, gnd, options); 
%       Y = fea*eigvector; 
%  
% 
% See also LPP, constructW, LGE 
% 
% 
% 
%Reference: 
% 
%   P. N. Belhumeur, J. P. Hespanha, and D. J. Kriegman, 揈igenfaces 
%   vs. fisherfaces: recognition using class specific linear 
%   projection,?IEEE Transactions on Pattern Analysis and Machine 
%   Intelligence, vol. 19, no. 7, pp. 711-720, July 1997.   
% 
%   Deng Cai, Xiaofei He, Yuxiao Hu, Jiawei Han, and Thomas Huang,  
%   "Learning a Spatially Smooth Subspace for Face Recognition", CVPR'2007 
% 
% 
%    Written by Deng Cai (dengcai2 AT cs.uiuc.edu), April/2004, Feb/2006, 
%                                                   May/2007 
 
 
if (~exist('options','var')) 
   options = []; 
end 
 
if ~isfield(options,'Regu') | ~options.Regu 
    bPCA = 1; 
    if ~isfield(options,'PCARatio') 
        options.PCARatio = 1; 
    end 
else 
    bPCA = 0; 
    if ~isfield(options,'ReguType') 
        options.ReguType = 'Ridge'; 
    end 
    if ~isfield(options,'alpha') 
        options.alpha = 0.1; 
    end 
end 
 
 
% ====== Initialization 
[nSmp,nFea] = size(X); 
if length(gnd) ~= nSmp 
    error('gnd and X mismatch!'); 
end 
 
classLabel = unique(gnd); 
nClass = length(classLabel); 
Dim = nClass - 1; 
 
if isfield(options,'Fisherface') & options.Fisherface 
    bPCA = 1; 
    options.PCARatio = nSmp - nClass; 
end 
 
 
if issparse(X) 
    X = full(X); 
end 
sampleMean = mean(X,1); 
X = (X - repmat(sampleMean,nSmp,1)); 
 
 
 
bChol = 0; 
if bPCA & (nSmp > nFea+1) & (options.PCARatio >= 1) 
    DPrime = X'*X; 
    DPrime = max(DPrime,DPrime'); 
    [R,p] = chol(DPrime); 
     
    if p == 0 
        bPCA = 0; 
        bChol = 1; 
    end 
end 
 
 
if bPCA     
    if nSmp > nFea 
        ddata = X'*X; 
        if issparse(ddata) 
            ddata = full(ddata); 
        end 
        ddata = max(ddata,ddata'); 
 
        [eigvector_PCA, eigvalue_PCA] = eig(ddata); 
        eigvalue_PCA = diag(eigvalue_PCA); 
        clear ddata; 
 
        maxEigValue = max(abs(eigvalue_PCA)); 
        eigIdx = find(eigvalue_PCA/maxEigValue < 1e-12); 
        eigvalue_PCA(eigIdx) = []; 
        eigvector_PCA(:,eigIdx) = []; 
 
        [junk, index] = sort(-eigvalue_PCA); 
        eigvalue_PCA = eigvalue_PCA(index); 
        eigvector_PCA = eigvector_PCA(:, index); 
         
        %======================================= 
        if options.PCARatio > 1 
            idx = options.PCARatio; 
            if idx < length(eigvalue_PCA) 
                eigvalue_PCA = eigvalue_PCA(1:idx); 
                eigvector_PCA = eigvector_PCA(:,1:idx); 
            end 
        elseif options.PCARatio < 1 
            sumEig = sum(eigvalue_PCA); 
            sumEig = sumEig*options.PCARatio; 
            sumNow = 0; 
            for idx = 1:length(eigvalue_PCA) 
                sumNow = sumNow + eigvalue_PCA(idx); 
                if sumNow >= sumEig 
                    break; 
                end 
            end 
            eigvalue_PCA = eigvalue_PCA(1:idx); 
            eigvector_PCA = eigvector_PCA(:,1:idx); 
        end 
        %======================================= 
         
        eigvalue_PCA = eigvalue_PCA.^-.5; 
        X = (X*eigvector_PCA).*repmat(eigvalue_PCA',nSmp,1); 
    else 
        ddata = X*X'; 
        if issparse(ddata) 
            ddata = full(ddata); 
        end 
        ddata = max(ddata,ddata'); 
 
        [eigvector, eigvalue_PCA] = eig(ddata); 
        eigvalue_PCA = diag(eigvalue_PCA); 
        clear ddata; 
 
        maxEigValue = max(eigvalue_PCA); 
        eigIdx = find(eigvalue_PCA/maxEigValue < 1e-12); 
        eigvalue_PCA(eigIdx) = []; 
        eigvector(:,eigIdx) = []; 
 
        [junk, index] = sort(-eigvalue_PCA); 
        eigvalue_PCA = eigvalue_PCA(index); 
        eigvector = eigvector(:, index); 
         
        %======================================= 
        if options.PCARatio > 1 
            idx = options.PCARatio; 
            if idx < length(eigvalue_PCA) 
                eigvalue_PCA = eigvalue_PCA(1:idx); 
                eigvector = eigvector(:,1:idx); 
            end 
        elseif options.PCARatio < 1 
            sumEig = sum(eigvalue_PCA); 
            sumEig = sumEig*options.PCARatio; 
            sumNow = 0; 
            for idx = 1:length(eigvalue_PCA) 
                sumNow = sumNow + eigvalue_PCA(idx); 
                if sumNow >= sumEig 
                    break; 
                end 
            end 
            eigvalue_PCA = eigvalue_PCA(1:idx); 
            eigvector = eigvector(:,1:idx); 
        end 
        %======================================= 
         
 
        eigvalue_PCA = eigvalue_PCA.^-.5; 
        eigvector_PCA = (X'*eigvector).*repmat(eigvalue_PCA',nFea,1); 
 
        X = eigvector; 
        clear eigvector; 
    end 
else 
    if ~bChol 
        DPrime = X'*X; 
 
        switch lower(options.ReguType) 
            case {lower('Ridge')} 
                for i=1:size(DPrime,1) 
                    DPrime(i,i) = DPrime(i,i) + options.alpha; 
                end 
            otherwise 
                DPrime = DPrime + options.alpha*options.regularizerR; 
        end 
 
        DPrime = max(DPrime,DPrime'); 
    end 
end 
 
 
[nSmp,nFea] = size(X); 
 
Hb = zeros(nClass,nFea); 
for i = 1:nClass, 
    index = find(gnd==classLabel(i)); 
    classMean = mean(X(index,:),1); 
    Hb (i,:) = sqrt(length(index))*classMean; 
end 
 
if bPCA 
    [dumpVec,eigvalue,eigvector] = svd(Hb,'econ'); 
     
    eigvalue = diag(eigvalue); 
    eigIdx = find(eigvalue < 1e-3); 
    eigvalue(eigIdx) = []; 
    eigvector(:,eigIdx) = []; 
 
    eigvalue = eigvalue.^2; 
    eigvector = eigvector_PCA*(repmat(eigvalue_PCA,1,length(eigvalue)).*eigvector); 
else 
    WPrime = Hb'*Hb; 
    WPrime = max(WPrime,WPrime'); 
 
    dimMatrix = size(WPrime,2); 
    if Dim > dimMatrix 
        Dim = dimMatrix; 
    end 
     
    if (dimMatrix > 500 & Dim < dimMatrix/5) 
        %disp('use eigs to speed up!'); 
        option = struct('disp',0); 
        if bChol 
            option.cholB = 1; 
            [eigvector, eigvalue] = eigs(WPrime,R,Dim,'la',option); 
        else 
            [eigvector, eigvalue] = eigs(WPrime,DPrime,Dim,'la',option); 
        end 
        eigvalue = diag(eigvalue); 
    else 
        [eigvector, eigvalue] = eig(WPrime,DPrime); 
        eigvalue = diag(eigvalue); 
 
        [junk, index] = sort(-eigvalue); 
        eigvalue = eigvalue(index); 
        eigvector = eigvector(:,index); 
 
        if Dim < size(eigvector,2) 
            eigvector = eigvector(:, 1:Dim); 
            eigvalue = eigvalue(1:Dim); 
        end 
    end 
end 
 
for i = 1:size(eigvector,2) 
    eigvector(:,i) = eigvector(:,i)./norm(eigvector(:,i)); 
end 
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看日韩欧美| 夜夜嗨av一区二区三区中文字幕| 午夜精品福利一区二区蜜股av| 色老汉av一区二区三区| 夜色激情一区二区| 91精品国产色综合久久久蜜香臀| 日韩福利视频导航| www一区二区| 99精品黄色片免费大全| 亚洲第一成人在线| 精品久久久久久久久久久久久久久久久| 久久激情五月激情| 国产精品久久久一区麻豆最新章节| 99精品热视频| 日韩1区2区日韩1区2区| 国产午夜精品一区二区三区嫩草 | 亚洲国产毛片aaaaa无费看 | 日韩午夜激情av| 国产不卡免费视频| 亚洲免费观看高清| 欧美一级黄色录像| av激情亚洲男人天堂| 亚洲国产精品嫩草影院| 久久影院电视剧免费观看| 99久久精品情趣| 欧美aⅴ一区二区三区视频| 欧美极品少妇xxxxⅹ高跟鞋| 在线视频国内自拍亚洲视频| 麻豆精品久久久| 日韩一区有码在线| 欧美一级生活片| 高清不卡在线观看| 日韩专区在线视频| 最好看的中文字幕久久| 日韩免费视频线观看| 91麻豆swag| 国产精品99久久久久| 天天免费综合色| 国产精品三级久久久久三级| 欧美精品自拍偷拍动漫精品| 国产精品一区二区视频| 丝袜国产日韩另类美女| 国产精品丝袜黑色高跟| 精品久久99ma| 欧美亚洲国产bt| 99久久久久免费精品国产| 国内精品久久久久影院色| 亚洲自拍偷拍av| 中文字幕中文字幕一区| 久久伊99综合婷婷久久伊| 精品1区2区3区| 色哟哟国产精品免费观看| 岛国av在线一区| 国产精品综合av一区二区国产馆| 亚洲福利视频一区| 乱一区二区av| 午夜不卡在线视频| 亚洲女同一区二区| 中文字幕亚洲视频| 国产亚洲一本大道中文在线| 日韩一区二区在线观看视频| 欧美网站一区二区| 色播五月激情综合网| 一本色道**综合亚洲精品蜜桃冫 | 秋霞影院一区二区| 亚洲精品自拍动漫在线| 亚洲图片欧美激情| 自拍视频在线观看一区二区| 中文一区二区在线观看| 欧美国产禁国产网站cc| 日本一区二区视频在线| 国产精品日日摸夜夜摸av| 久久精品人人做人人爽人人| 久久久亚洲高清| 国产网站一区二区三区| 欧美成人一区二区| 亚洲精品在线一区二区| 精品sm捆绑视频| 久久精品在线观看| 亚洲国产精品激情在线观看| 国产精品卡一卡二卡三| 亚洲视频一二三| 亚洲精品va在线观看| 亚洲综合色丁香婷婷六月图片| 一区二区三区加勒比av| 午夜精品久久久久久不卡8050| 水蜜桃久久夜色精品一区的特点| 亚洲成人av在线电影| 日韩成人免费电影| 国产米奇在线777精品观看| 粉嫩一区二区三区在线看| 91在线国产观看| 欧美日韩视频一区二区| 91精品欧美综合在线观看最新| 欧美成人在线直播| 国产日韩欧美综合在线| 亚洲三级理论片| 午夜激情综合网| 国产高清成人在线| 色婷婷久久99综合精品jk白丝| 在线成人小视频| 久久婷婷一区二区三区| 中文字幕在线一区免费| 亚洲成av人片在线观看无码| 老汉av免费一区二区三区| 成人一区二区三区中文字幕| 欧美综合一区二区| 欧美一区二区视频网站| 国产精品人人做人人爽人人添 | 亚洲综合在线免费观看| 青青青爽久久午夜综合久久午夜| 国产综合久久久久影院| 色综合天天做天天爱| 91精品国模一区二区三区| 久久久国产精华| 亚洲午夜免费福利视频| 国产成人日日夜夜| 欧美三级中文字| 国产午夜精品久久久久久久| 亚洲啪啪综合av一区二区三区| 美女一区二区视频| 91在线精品秘密一区二区| 精品少妇一区二区三区免费观看| √…a在线天堂一区| 免费av网站大全久久| 色综合天天狠狠| 精品国产污污免费网站入口| 国产一区 二区| 色婷婷香蕉在线一区二区| 久久亚洲精品小早川怜子| 亚洲国产精品自拍| 99久久精品免费看| 欧美tk丨vk视频| 天天综合色天天综合色h| 91偷拍与自偷拍精品| 久久女同互慰一区二区三区| 日韩精品电影在线观看| 色婷婷久久久久swag精品| 欧美国产精品专区| 美女视频第一区二区三区免费观看网站 | 国产精品欧美久久久久一区二区 | 欧美男男青年gay1069videost| 中文无字幕一区二区三区| 九九九精品视频| 欧美日韩精品一区二区天天拍小说| 国产精品久久久久久久蜜臀| 久久99精品网久久| 91麻豆精品国产91久久久久久 | 亚洲成人免费视频| 一本一本大道香蕉久在线精品| 久久久国产精华| 精品一区二区三区香蕉蜜桃 | 中文字幕一区三区| 国产激情精品久久久第一区二区| 欧美v亚洲v综合ⅴ国产v| 婷婷久久综合九色综合伊人色| 色素色在线综合| 亚洲人成在线播放网站岛国| www.日韩精品| 国产精品久久久久影视| 成人a免费在线看| 国产精品高潮久久久久无| 国产白丝精品91爽爽久久| 久久精品在线免费观看| 国产成人夜色高潮福利影视| 久久九九全国免费| 国产精品羞羞答答xxdd | 国产精品久久久久久久岛一牛影视 | 亚洲va中文字幕| 欧美伦理视频网站| 日本不卡中文字幕| 精品国产一区二区亚洲人成毛片| 久久精品国产一区二区| 精品国产亚洲在线| 国产成人av一区二区| 国产精品天美传媒沈樵| 99国产精品久久久久久久久久久| 亚洲欧洲一区二区在线播放| 色婷婷综合在线| 亚洲大尺度视频在线观看| 欧美一区二区三区视频在线观看| 捆绑调教美女网站视频一区| 国产亚洲自拍一区| 波多野结衣在线aⅴ中文字幕不卡| 亚洲视频1区2区| 欧美久久高跟鞋激| 国产一本一道久久香蕉| 综合自拍亚洲综合图不卡区| 欧美无砖专区一中文字| 久久精品国产亚洲一区二区三区 | 色综合天天综合狠狠| 亚洲成人动漫av| 久久影院视频免费| 91丨九色丨蝌蚪丨老版| 午夜精品123| 国产日韩欧美综合一区| 欧美亚洲国产一区二区三区| 韩国成人在线视频| 亚洲免费在线视频| 欧美电视剧免费全集观看|