algorithms.clustering.von_mises_fisher_mixture

Module: algorithms.clustering.von_mises_fisher_mixture

Inheritance diagram for nipy.algorithms.clustering.von_mises_fisher_mixture:

Inheritance diagram of nipy.algorithms.clustering.von_mises_fisher_mixture

Implementation of Von-Mises-Fisher Mixture models, i.e. the equivalent of mixture of Gaussian on the sphere.

Author: Bertrand Thirion, 2010-2011

Class

VonMisesMixture

class nipy.algorithms.clustering.von_mises_fisher_mixture.VonMisesMixture(k, precision, means=None, weights=None, null_class=False)

Bases: object

Model for Von Mises mixture distribution with fixed variance on a two-dimensional sphere

__init__(k, precision, means=None, weights=None, null_class=False)

Initialize Von Mises mixture

Parameters:
k: int,

number of components

precision: float,

the fixed precision parameter

means: array of shape(self.k, 3), optional

input component centers

weights: array of shape(self.k), optional

input components weights

null_class: bool, optional

Inclusion of a null class within the model (related to k=0)

density_per_component(x)

Compute the per-component density of the data

Parameters:
x: array of shape(n,3)

should be on the unit sphere

Returns:
like: array of shape(n, self.k), with non-neagtive values

the density

estimate(x, maxiter=100, miniter=1, bias=None)

Return average log density across samples

Parameters:
x: array of shape (n,3)

should be on the unit sphere

maxiterint, optional

maximum number of iterations of the algorithms

miniterint, optional

minimum number of iterations

biasarray of shape(n), optional

prior probability of being in a non-null class

Returns:
llfloat

average (across samples) log-density

estimate_means(x, z)

Calculate and set means from x and z

Parameters:
x: array of shape(n,3)

should be on the unit sphere

z: array of shape(self.k)
estimate_weights(z)

Calculate and set weights from z

Parameters:
z: array of shape(self.k)
log_density_per_component(x)

Compute the per-component density of the data

Parameters:
x: array of shape(n,3)

should be on the unit sphere

Returns:
like: array of shape(n, self.k), with non-neagtive values

the density

log_weighted_density(x)

Return log weighted density

Parameters:
x: array of shape(n,3)

should be on the unit sphere

Returns:
log_like: array of shape(n, self.k)
mixture_density(x)

Return mixture density

Parameters:
x: array of shape(n,3)

should be on the unit sphere

Returns:
like: array of shape(n)
responsibilities(x)

Return responsibilities

Parameters:
x: array of shape(n,3)

should be on the unit sphere

Returns:
resp: array of shape(n, self.k)
show(x)

Visualization utility

Parameters:
x: array of shape (n, 3)

should be on the unit sphere

Notes

Uses matplotlib.

weighted_density(x)

Return weighted density

Parameters:
x: array shape(n,3)

should be on the unit sphere

Returns:
like: array

of shape(n, self.k)

Functions

nipy.algorithms.clustering.von_mises_fisher_mixture.estimate_robust_vmm(k, precision, null_class, x, ninit=10, bias=None, maxiter=100)

Return the best von_mises mixture after severla initialization

Parameters:
k: int, number of classes
precision: float, priori precision parameter
null class: bool, optional,

should a null class be included or not

x: array of shape(n,3)

input data, should be on the unit sphere

ninit: int, optional,

number of iterations

bias: array of shape(n), optional

prior probability of being in a non-null class

maxiter: int, optional,

maximum number of iterations after each initialization

nipy.algorithms.clustering.von_mises_fisher_mixture.example_cv_nonoise()
nipy.algorithms.clustering.von_mises_fisher_mixture.example_noisy()
nipy.algorithms.clustering.von_mises_fisher_mixture.select_vmm(krange, precision, null_class, x, ninit=10, bias=None, maxiter=100, verbose=0)

Return the best von_mises mixture after severla initialization

Parameters:
krange: list of ints,

number of classes to consider

precision:
null class:
x: array of shape(n,3)

should be on the unit sphere

ninit: int, optional,

number of iterations

maxiter: int, optional,
bias: array of shape(n),

a prior probability of not being in the null class

verbose: Bool, optional
nipy.algorithms.clustering.von_mises_fisher_mixture.select_vmm_cv(krange, precision, x, null_class, cv_index, ninit=5, maxiter=100, bias=None, verbose=0)

Return the best von_mises mixture after severla initialization

Parameters:
krange: list of ints,

number of classes to consider

precision: float,

precision parameter of the von-mises densities

x: array of shape(n, 3)

should be on the unit sphere

null class: bool, whether a null class should be included or not
cv_index: set of indices for cross validation
ninit: int, optional,

number of iterations

maxiter: int, optional,
bias: array of shape (n), prior
nipy.algorithms.clustering.von_mises_fisher_mixture.sphere_density(npoints)

Return the points and area of a npoints**2 points sampled on a sphere

Returns:
sarray of shape(npoints ** 2, 3)
area: array of shape(npoints)