ExpectationMaximizationPCA
ExpectationMaximizationPCA.jl is a Julia rewrite of empca which provides Weighted Expectation Maximization PCA, an iterative method for solving PCA while properly weighting data.
https://github.com/christiangil/expectationmaximizationpca.jl
Science Score: 28.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.3%) to scientific vocabulary
Repository
ExpectationMaximizationPCA.jl is a Julia rewrite of empca which provides Weighted Expectation Maximization PCA, an iterative method for solving PCA while properly weighting data.
Basic Info
- Host: GitHub
- Owner: christiangil
- License: mit
- Language: Julia
- Default Branch: master
- Homepage: https://christiangil.github.io/ExpectationMaximizationPCA.jl/
- Size: 146 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
ExpectationMaximizationPCA.jl
ExpectationMaximizationPCA.jl (EMPCA) is a Julia rewrite of empca which provides weighted Expectation Maximization PCA, an iterative method for solving PCA while properly weighting data.
Installation
The most current, tagged version of ExpectationMaximizationPCA.jl can be easily installed using Julia's Pkg
julia
Pkg.add("ExpectationMaximizationPCA")
If you would like to contribute to the package, or just want to run the latest (untagged) version, you can use the following
julia
Pkg.develop("ExpectationMaximizationPCA")
Example
```julia import ExpectationMaximizationPCA as EMPCA
making data
nx = 200 # dimensionality of observations nt = 50 # number of observations σ = ((((((1:nx) .- nx/2).^2) ./ (nx/2)^2) .+ 1)* ones(nt)') ./ 3 # noise, edges are twice as noisy as the center data = rand(nt)' .* sin.(((1:nx) ./ nx) * 2π) + (0.2 .* rand(nt)') .* cos.(((1:nx) ./ nx) * 2π) # a mixture of sin and cos signals data .+= σ .* randn(size(data)) # add Gaussian noise
performing EMPCA
nb = 2 # number of basis vectors μ = vec(mean(data; dims=2)) # mean observation weights = 1 ./ σ.^2 # use inverse variance as the weights
weights = ones(size(data)) # uniform weights replicates PCA
basis_vecs, scores = EMPCA.EMPCA(μ, nb, data, weights) # perform EMPCA on data .- μ with nb basis vectors using weights for weighting
```
Documentation
The documentation for this package is available here.
The original python version can be found here.
Citation
The paper S. Bailey 2012, PASP, 124, 1015 describes the underlying math and is available as a pre-print at: http://arxiv.org/abs/1208.4122
If you use this code in an academic paper, please include a citation as described in CITATION.txt, and optionally an acknowledgement such as:
This work uses the Weighted EMPCA code by Stephen Bailey, available at https://github.com/sbailey/empca/
Owner
- Name: Christian Gilbertson
- Login: christiangil
- Kind: user
- Website: https://sites.psu.edu/chrisgil
- Repositories: 8
- Profile: https://github.com/christiangil
Citation (CITATION.txt)
If you use this code in an academic paper, please include a citation to
S. Bailey 2012, PASP, 124, 1015 and optionally an acknowledgement such as:
> This work uses the Weighted EMPCA code by Stephen Bailey,
> available at https://github.com/sbailey/empca/
BibTeX entry:
@ARTICLE{2012PASP..124.1015B,
author = {{Bailey}, S.},
title = "{Principal Component Analysis with Noisy and/or Missing Data}",
journal = {\pasp},
archivePrefix = "arXiv",
eprint = {1208.4122},
primaryClass = "astro-ph.IM",
keywords = {Data Analysis and Techniques},
year = 2012,
month = sep,
volume = 124,
pages = {1015-1023},
doi = {10.1086/668105},
adsurl = {http://adsabs.harvard.edu/abs/2012PASP..124.1015B},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: 12 months ago
All Time
- Total issues: 1
- Total pull requests: 1
- Average time to close issues: less than a minute
- Average time to close pull requests: 3 days
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- JuliaTagBot (1)
Pull Request Authors
- github-actions[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 1
juliahub.com: ExpectationMaximizationPCA
ExpectationMaximizationPCA.jl is a Julia rewrite of empca which provides Weighted Expectation Maximization PCA, an iterative method for solving PCA while properly weighting data.
- Homepage: https://christiangil.github.io/ExpectationMaximizationPCA.jl/
- Documentation: https://docs.juliahub.com/General/ExpectationMaximizationPCA/stable/
- License: MIT
-
Latest release: 0.2.0
published over 3 years ago