K-Tensors: Clustering Positive Semi-Definite Matrices
Install the Package from PyPI
- Go to the terminal (mac) or command line (windows), copy and paste:
pip3 install KTensorsorpip3 install KTensors==0.1.7for a specific version
install the Package from GitHub
- Go to the terminal (mac) or command line (windows), copy and paste:
pip3 install git+https://github.com/Hanchao-Zhang/KTensors.git - Open a python console, copy and paste:
from KTensors import KTensors
About the Package
KTensors
KTensors(Psis, K, max_iter=1000).clustering()
input:
- Psis: a 3D array of size (n, p, p) where n is the number of matrices and p is the dimension of the positive semi-definite matrices.
- K: number of clusters
- max_iter: maximum number of iterations, default is 1000, usually finish within 10 iterations
return:
- group: a vector of length n, each element is an index of group membership
- CPCs: K orthonormal basis matrices of size p by p for each cluster
- $\mathbf F$: $\mathbf F = \mathbf B^\top \mathbf\Psi \mathbf B$
- $\text{diag}(\mathbf F)$: $\text{diag}(\mathbf F) = (\mathbf B^\top \mathbf\Psi \mathbf B) \circ \mathbf I$ the diagonal of matrix $\mathbf F$
- centers: Mean of each cluster
- loss: loss function for each iteration
KMetrics
KMetrics(Psis, K, metrics)
input:
- Psis: a 3D array of size (n, p, p) where n is the number of matrices and p is the dimension of the positive semi-definite matrices.
- K: number of clusters
- metrics: a string of metrics, including 'euclidean', 'affine_invariant', 'log_euclidean', 'log_det', and 'symmetric_stein'.
output:
- a vector of length n, each element is an index of group membership
- loss function for each iteration
Some Tecnical Details
Loss Function
$$\begin{aligned}\mathcal L(\mathbf \Psi, \mathcal P_{\mathbf B} (\mathbf \Psi) ) = \Vert \mathbf \Psi - \mathbf B((\mathbf B^\top \mathbf \Psi \mathbf B) \circ \mathbb I )\mathbf B^\top \Vert_F^2 = \Vert\mathbf B^\top \mathbf \Psi \mathbf B - (\mathbf B^\top \mathbf \Psi \mathbf B)\circ \mathbb I \Vert_F^2 \end{aligned}$$
where $\mathbb I$ is a identity matrix, and $\circ$ is the Hadamard product.
For more technical details, please refer to the paper.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
KTensors-0.1.7.tar.gz
(3.8 kB
view details)
File details
Details for the file KTensors-0.1.7.tar.gz.
File metadata
- Download URL: KTensors-0.1.7.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29d9d111112fbfb67bd06d6e4c3ee6d4ee1d0677036185cb0297d72f2dcbc1a6
|
|
| MD5 |
879a15d93f98e4dedb6aab7ffe91a794
|
|
| BLAKE2b-256 |
316384f3dbca49f7898bbe6f43634aa29ea8992a31f8615c1a84ef11714747f8
|