-2

こんにちは、次のコードで PCA を実行するために MATLAB を使用しました (13 の属性があります)。実際、プログラム (RBF ネットワーク) を実行すると問題が発生するため、PCA を使用してデータを調整しました。この方法を使用できますか? はいの場合、実際のデータの代わりに行列 als を使用する必要がありますか?

% PCA1: Perform PCA using covariance.

% data - MxN matrix of input data

% (M dimensions, N trials)

% signals - MxN matrix of projected data

% PC - each column is a PC

% V - Mx1 matrix of variances

[M,N] = size(data);

% subtract off the mean for each dimension

mn = mean(data,2);

data = data - repmat(mn,1,N);

% calculate the covariance matrix

covariance = 1 / (N-1) * data * data’;

% find the eigenvectors and eigenvalues

[PC, V] = eig(covariance);

% extract diagonal of matrix as vector

V = diag(V);

% sort the variances in decreasing order

[junk, rindices] = sort(-1*V);

V = V(rindices);

PC = PC(:,rindices);

% project the original data set

sign

als = PC’ * data;

ありがとう

4

1 に答える 1

0

はい、matrixalsは新しい変換されたデータ セットです。この新しいデータの次元を制御するために、最も重要なkベクトルを取得して PC を変更できます。

PC = PC(:,1:k);

新しいサンプルX(N x 1) の変換された等価物を見つけるために、次のように記述できます。

X_transformed = PC’ * X;
于 2013-06-26T17:15:30.787 に答える