Documentation ¶
Overview ¶
Package pca performs principal component's analysis and associated covariance matrix computations, operating on etable.Table or etensor.Tensor data.
Index ¶
- func CovarTableCol(cmat etensor.Tensor, ix *etable.IdxView, colNm string, mfun metric.Func64) error
- func CovarTensor(cmat etensor.Tensor, tsr etensor.Tensor, mfun metric.Func64) error
- func TableColRowsVec(vec []float64, ix *etable.IdxView, col etensor.Tensor, cidx int)
- func TensorRowsVec(vec []float64, tsr etensor.Tensor, cidx int)
- type PCA
- func (pca *PCA) Init()
- func (pca *PCA) PCA() error
- func (pca *PCA) ProjectCol(vals *[]float64, ix *etable.IdxView, colNm string, idx int) error
- func (pca *PCA) ProjectColToTable(prjns *etable.Table, ix *etable.IdxView, colNm, labNm string, idxs []int) error
- func (pca *PCA) TableCol(ix *etable.IdxView, colNm string, mfun metric.Func64) error
- func (pca *PCA) Tensor(tsr etensor.Tensor, mfun metric.Func64) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CovarTableCol ¶
CovarTableCol generates a covariance matrix from given column name in given IdxView of an etable.Table, and given metric function (typically Covariance or Correlation -- use Covar if vars have similar overall scaling, which is typical in neural network models, and use Correl if they are on very different scales -- Correl effectively rescales). A Covariance matrix computes the *row-wise* vector similarities for each pairwise combination of column cells -- i.e., the extent to which each cell co-varies in its value with each other cell across the rows of the table. This is the input to the PCA eigenvalue decomposition of the resulting covariance matrix.
func CovarTensor ¶
CovarTensor generates a covariance matrix from given etensor.Tensor, where the outer-most dimension is rows, and all other dimensions within that are covaried against each other, using given metric function (typically Covariance or Correlation -- use Covar if vars have similar overall scaling, which is typical in neural network models, and use Correl if they are on very different scales -- Correl effectively rescales). A Covariance matrix computes the *row-wise* vector similarities for each pairwise combination of column cells -- i.e., the extent to which each cell co-varies in its value with each other cell across the rows of the table. This is the input to the PCA eigenvalue decomposition of the resulting covariance matrix.
func TableColRowsVec ¶
TableColRowsVec extracts row-wise vector from given cell index into vec. vec must be of size ix.Len() -- number of rows
Types ¶
type PCA ¶
type PCA struct { Covar *etensor.Float64 `view:"no-inline" desc:"the covariance matrix computed on original data, which is then eigen-factored"` Vectors *etensor.Float64 `` /* 217-byte string literal not displayed */ Values []float64 `view:"no-inline" desc:"the eigenvalues, ordered *lowest* to *highest*"` }
PCA computes the eigenvalue decomposition of a square similarity matrix, typically generated using the correlation metric.
func (*PCA) PCA ¶
PCA performs the eigen decomposition of the existing Covar matrix. Vectors and Values fields contain the results.
func (*PCA) ProjectCol ¶
ProjectCol projects values from the given colNm of given table (via IdxView) onto the idx'th eigenvector (0 = largest eigenvalue, 1 = next, etc). Must have already called PCA() method.
func (*PCA) ProjectColToTable ¶
func (pca *PCA) ProjectColToTable(prjns *etable.Table, ix *etable.IdxView, colNm, labNm string, idxs []int) error
ProjectColToTable projects values from the given colNm of given table (via IdxView) onto the given set of eigenvectors (idxs, 0 = largest eigenvalue, 1 = next, etc), and stores results along with labels from column labNm into results table. Must have already called PCA() method.
func (*PCA) TableCol ¶
TableCol is a convenience method that computes a covariance matrix on given column of table and then performs the PCA on the resulting matrix. If no error occurs, the results can be read out from Vectors and Values or used in Projection methods. mfun is metric function, typically Covariance or Correlation -- use Covar if vars have similar overall scaling, which is typical in neural network models, and use Correl if they are on very different scales -- Correl effectively rescales). A Covariance matrix computes the *row-wise* vector similarities for each pairwise combination of column cells -- i.e., the extent to which each cell co-varies in its value with each other cell across the rows of the table. This is the input to the PCA eigenvalue decomposition of the resulting covariance matrix, which extracts the eigenvectors as directions with maximal variance in this matrix.
func (*PCA) Tensor ¶
Tensor is a convenience method that computes a covariance matrix on given tensor and then performs the PCA on the resulting matrix. If no error occurs, the results can be read out from Vectors and Values or used in Projection methods. mfun is metric function, typically Covariance or Correlation -- use Covar if vars have similar overall scaling, which is typical in neural network models, and use Correl if they are on very different scales -- Correl effectively rescales). A Covariance matrix computes the *row-wise* vector similarities for each pairwise combination of column cells -- i.e., the extent to which each cell co-varies in its value with each other cell across the rows of the table. This is the input to the PCA eigenvalue decomposition of the resulting covariance matrix, which extracts the eigenvectors as directions with maximal variance in this matrix.