GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - sisl/StructuredGaussianMixtures.jl

BranchesTags
Open more actions menu

Latest commit

 

History

20 Commits
20 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
.vscode
.vscode
 
 
docs
docs
 
 
examples
examples
 
 
src
src
 
 
test
test
 
 
.JuliaFormatter.toml
.JuliaFormatter.toml
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
Project.toml
Project.toml
 
 
README.md
README.md
 
 

Repository files navigation

StructuredGaussianMixtures.jl

codecov

Overview

Fit weighted single Gaussians and Gaussian mixtures with separate structure and method specifications. Observations are columns of a features × samples matrix. Fitted models support logpdf, sampling, marginalization and conditional predict.

using StructuredGaussianMixtures, Random
X = randn(MersenneTwister(1), 10, 500)
spec = MixtureSpec(LowRankDiagonal(2), 4)
method = EM(covariance_method=CovarianceEM(maxiter=20), n_init=3)
gmm = fit(spec, method, X; rng=MersenneTwister(2))
posterior = predict(gmm, [0.2, -0.1], [1, 2], [3, 4])

# A single Gaussian uses the covariance solver directly.
gaussian = fit(FullCovariance(), Exact(), X)

# Explicit initialized state for continuation; fit! never reinitializes.
state = workspace(spec, method, gmm)
fit!(state, method, X)
state.report
  • FullCovariance(), DiagonalCovariance(), and IsotropicCovariance() use Exact() covariance updates. Add tied=Tied(:covariance) to MixtureSpec for one shared covariance with separate component means.
  • LowRankDiagonal(r) uses CovarianceEM() without forming a dense covariance.
  • LatentCovariance(r) supports single-Gaussian CovarianceEM() fitting.
  • LatentCovariance(r) with Tied(:F,:D) supports joint EM(covariance_method=CovarianceEM()), learning shared loadings and residual noise, or PCAEM(latent_method=EM(...)) for a fixed PCA projection. Both return LatentMvNormal components with explicit shared F and component latent covariances.
  • All fitting paths accept weights=... and fresh fits accept rng=....
  • Native EM provides convergence reports, restarts and weighted updates. responsibilities(gmm, X) returns posterior membership probabilities; predict continues to mean conditional prediction.

Install with Pkg.add("StructuredGaussianMixtures"). See the fitting guide for the API, supported combinations, initialization and migration from the former EM/FactorEM/PCAEM interface.

Banded precision models use fit(BandedPrecision(2), Exact(), X) or fit(MixtureSpec(BandedPrecision(2), 3), EM(), X). Precision bandwidth follows the feature order. Scoring uses compact bands, and conditioning preserves them when all omitted variables are observed. See the banded precision guide for regularization semantics and dense marginalization fallbacks.

About

No description, website, or topics provided.

Resources

Readme
MIT license
Activity
Custom properties

Stars

5 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.