HePPCAT

Probabilistic PCA for samples with heterogeneous quality

https://github.com/dahong67/heppcat.jl

Science Score: 51.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
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.7%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Probabilistic PCA for samples with heterogeneous quality

Basic Info
  • Host: GitHub
  • Owner: dahong67
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 740 KB
Statistics
  • Stars: 2
  • Watchers: 3
  • Forks: 0
  • Open Issues: 10
  • Releases: 0
Created almost 6 years ago · Last pushed about 3 years ago
Metadata Files
Readme License Citation

README.md

HePPCAT: HEteroscedastic Probabilistic PCA Technique

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status Coverage

:wave: This package provides research code and work is ongoing. If you are interested in using it in your own research, *I'd love to hear from you and collaborate!** Feel free to write: dahong67@wharton.upenn.edu*

Please cite the following paper for this technique:

David Hong, Kyle Gilman, Laura Balzano, Jeffrey A. Fessler. "HePPCAT: Probabilistic PCA for Data with Heteroscedastic Noise", IEEE Transactions on Signal Processing 69:4819-4834, Aug. 2021. https://doi.org/10.1109/TSP.2021.3104979 https://arxiv.org/abs/2101.03468.

In BibTeX form: bibtex @article{hgbf2021heppcat, title = "{HePPCAT}: Probabilistic {PCA} for Data with Heteroscedastic Noise", author = "David Hong and Kyle Gilman and Laura Balzano and Jeffrey A. Fessler", journal = "{IEEE} Transactions on Signal Processing", year = "2021", volume = "69", pages = "4819--4834", DOI = "10.1109/tsp.2021.3104979", }

What is Heteroscedastic Probabilistic PCA (HePPCAT)?

HePPCAT is a probabilistic Principal Component Analysis (PCA) technique for data that has samples with heterogeneous quality, i.e., noise that is heteroscedastic across samples.

Illustration: data points with a group of noisier samples (blue points) and a group of cleaner samples (green points).

2D illustration

Homoscedastic PPCA estimates only one noise variance for the whole data, and treats samples as though they were all equally noisy. Recovery of latent components can degrade a lot due to the noisier samples, even though the rest of the samples are relatively clean.

HePPCAT estimates latent components along with separate noise variances for each group. It accounts for heterogeneous quality among the samples and is generally more robust.

It's not just a "cool cat"!

Quick start: how to use HePPCAT

Installation: this package is registered and can be installed via the package manager. pkg> add HePPCAT

Main function: the main function is called heppcat. Type ?heppcat for the docstring. ``` help?> heppcat search: heppcat HePPCAT HePPCATModel

heppcat(Y,k,iters;init=homppca(Y,k),vknown=false,varfloor=zero(eltype(init.v)))

Estimate probabilistic PCA model for noise that is heteroscedastic across samples.

Required Inputs ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

•  Y : list of matrices (each column is a sample)

•  k : number of factors

•  iters : number of iterations to run

Optional Keyword Arguments ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

•  init : initial model (will be modified in-place)

•  vknown : variances are known (do not update) default false

•  varfloor : lower bound for variance iterates (useful if the iterates are degenerating to zero) default = 0

Output is a HePPCATModel object. It returns a `HePPCATModel`: help?> HePPCATModel search: HePPCATModel

HePPCATModel{S<:Number,T<:Real}

Model parameters for probabilistic PCA with noise that is heteroscedastic across samples. This is the return type of heppcat(_), the corresponding estimation function.

Properties ≡≡≡≡≡≡≡≡≡≡≡≡

•  F :: Matrix factor matrix (computed via F = U*sqrt(Diagonal(λ))*Vt)

•  U :: Matrix{S} eigenvectors of factor covariance F*F'

•  λ :: Vector{T} eigenvalues of factor covariance F*F' (spike eigenvalues)

•  Vt :: Matrix{S} (transposed) eigenvectors of F'*F (i.e., right singular vectors of F)

•  v :: Vector{T} noise variances

`` See thedemo/` directory and the paper code repo for some examples!

Owner

  • Name: David Hong
  • Login: dahong67
  • Kind: user
  • Location: Newark, DE
  • Company: University of Delaware

Assistant Professor in ECE

Citation (CITATION.bib)

@article{hgbf2021heppcat,
  title   = "{HePPCAT}: Probabilistic {PCA} for Data with Heteroscedastic Noise",
  author  = "David Hong and Kyle Gilman and Laura Balzano and Jeffrey A. Fessler",
  journal = "{IEEE} Transactions on Signal Processing",
  year    = "2021",
  volume  = "69",
  pages   = "4819--4834",
  DOI     = "10.1109/tsp.2021.3104979",
}

GitHub Events

Total
Last Year

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 223
  • Total Committers: 5
  • Avg Commits per committer: 44.6
  • Development Distribution Score (DDS): 0.148
Top Committers
Name Email Commits
David Hong d****7@w****u 190
David Hong d****7@u****m 18
Javier Salazar Cavazos 1****h@u****m 8
github-actions[bot] 4****]@u****m 4
Jeff Fessler J****r@u****m 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 9
  • Total pull requests: 20
  • Average time to close issues: 2 days
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.75
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 16
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
  • dahong67 (8)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (16)
  • javiersc-umich (2)
  • JeffFessler (1)
  • dahong67 (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 7 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
juliahub.com: HePPCAT

Probabilistic PCA for samples with heterogeneous quality

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 7 Total
Rankings
Dependent repos count: 9.9%
Average: 38.4%
Dependent packages count: 38.9%
Forks count: 40.4%
Stargazers count: 64.2%
Last synced: 8 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite