pca#
- diffsptk.PCA#
alias of
PrincipalComponentAnalysis
- class diffsptk.PrincipalComponentAnalysis(order, n_comp, *, cov_type='sample', sort='descending', batch_size=None, verbose=False)[source]#
See this page for details. Note that the forward method is not differentiable.
- Parameters:
- orderint >= 0
Order of vector.
- n_compint >= 1
Number of principal components, \(K\).
- cov_type[‘sample’, ‘unbiased’, ‘correlation’]
Type of covariance.
- sort[‘ascending’, ‘descending’]
Order of eigenvalues and eigenvectors.
- batch_sizeint >= 1 or None
Batch size.
- verbosebool
If True, show progress bar.
- center(x)[source]#
Center input vectors using estimated mean.
- Parameters:
- xTensor [shape=(…, M+1)]
Input vectors.
- Returns:
- outTensor [shape=(…, M+1)]
Centered vectors.
- forward(x)[source]#
Perform PCA.
- Parameters:
- xTensor [shape=(T, M+1)] or DataLoader
Input vectors or dataloader yielding input vectors.
- Returns:
- sTensor [shape=(K,)]
Eigenvalues.
- VTensor [shape=(K, M+1)]
Eigenvectors.
- mTensor [shape=(M+1,)]
Mean vector.
Examples
>>> x = diffsptk.nrand(10, 3) >>> x.size() torch.Size([10, 4]) >>> pca = diffsptk.PCA(3, 3) >>> s, _, _ = pca(x) >>> s tensor([1.3465, 0.7497, 0.4447]) >>> y = pca.transform(x) >>> y.size() torch.Size([10, 3])