pca#

diffsptk.PCA#

alias of PrincipalComponentAnalysis

class diffsptk.PrincipalComponentAnalysis(order, n_comp, cov_type='sample', sort='descending')[source]#

See this page for details.

Parameters:
orderint >= 0

Order of vector.

n_compint >= 1

Number of principal components, \(N\).

cov_type[‘sample’, ‘unbiased’, ‘correlation’]

Type of covariance.

sort[‘ascending’, ‘descending’]

Order of eigenvalues and eigenvectors.

forward(x)[source]#

Perform PCA.

Parameters:
xTensor [shape=(…, M+1)]

Input vectors.

Returns:
eTensor [shape=(N,)]

Eigenvalues.

vTensor [shape=(M+1, N)]

Eigenvectors.

mTensor [shape=(M+1,)]

Mean vector.

Examples

>>> x = diffsptk.nrand(10, 3)
>>> x.size()
torch.Size([10, 4])
>>> pca = diffsptk.PCA(3, 3)
>>> e, _, _ = pca(x)
>>> e
tensor([1.3465, 0.7497, 0.4447])
>>> y = pca.transform(x)
>>> y.size()
torch.Size([10, 3])
transform(x)[source]#

Transform input vectors using estimated eigenvectors.

Parameters:
xTensor [shape=(…, M+1)]

Input vectors.

Returns:
outTensor [shape=(…, N)]

Transformed vectors.