⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fda.m

📁 基于多元线性回归、偏最小二乘、神经网络、卡尔漫滤波、径向基网络、主成分分析等等的程序。可用于建模和预测。
💻 M
字号:

function [theta,lambda] = fda(X,clusters,N)

%   [theta,lambda] = fda(X,clusters,N)
%   [theta,lambda] = fda(X,clusters)
%
% Fisher discriminant analysis.
%
% Input parameters:
%  - X: Input data block (k x n)
%  - clusters: Cluster index between 1 and N for all k samples,
%    constructed for example by K-means ('km.m')
%  - N: Number of discriminant axes (optional)
% Return parameters:
%  - theta: Discriminant axes
%  - lambda: Corresponding eigenvalues
%
% Heikki Hyotyniemi Feb.20, 2001


[k,n] = size(X);
NN = max(clusters);
centers = zeros(n,NN);
for i = 1:NN
   centers(:,i) = mean(X(find(clusters==i),:))';
end

center = mean(X);
Rtotal = (X-ones(k,1)*center)'*(X-ones(k,1)*center)/k;
Rwithin = (X-centers(:,clusters)')'*(X-centers(:,clusters)')/k;
Rbetween = Rtotal - Rwithin;

[THETA,LAMBDA] = eig(Rbetween,Rwithin);
[LAMBDA,order] = sort(abs(diag(LAMBDA)));
LAMBDA = flipud(LAMBDA);
THETA = THETA(:,flipud(order));

if nargin<3 | isnan(N) | isinf(N) | isempty(N)
   N = askorder(LAMBDA);
end

theta = THETA(:,1:N);
lambda = LAMBDA(1:N);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -