spatial_priors
¶Handle feature MVN priors.
CustomPrior (*args, **kwargs) |
Specify a custom feature prior |
PriorFromPenalty (penalty[, wishart]) |
Build a prior from a Tikhnov feature penalty covariance. |
SphericalPrior (feature_space, **kwargs) |
Equivalent to ridge regression. |
CustomPrior
¶tikreg.spatial_priors.
CustomPrior
(*args, **kwargs)¶Bases: tikreg.BasePrior
Specify a custom feature prior
__init__
(self, *args, **kwargs)¶Parameters: |
|
---|
Examples
>>> mat = np.random.randn(5, 5)
>>> cov = np.dot(mat.T, mat)
>>> custom_prior = CustomPrior(cov)
>>> print(custom_prior.asarray.shape)
(5, 5)
>>> prior_lambda_one = custom_prior.get_prior(1.0)
>>> print(np.round(prior_lambda_one, 2)) # doctest: +SKIP
[[ 3.27 -2.02 2.18 0.05 -5.37]
[-2.02 6.59 0.47 -1.2 3.95]
[ 2.18 0.47 3.75 0.35 -2.52]
[ 0.05 -1.2 0.35 5.9 1.31]
[-5.37 3.95 -2.52 1.31 10.86]]
>>> prior_lambda_two = custom_prior.get_prior(2.0)
>>> print(np.round(prior_lambda_two, 2)) # doctest: +SKIP
[[ 0.82 -0.51 0.54 0.01 -1.34]
[-0.51 1.65 0.12 -0.3 0.99]
[ 0.54 0.12 0.94 0.09 -0.63]
[ 0.01 -0.3 0.09 1.48 0.33]
[-1.34 0.99 -0.63 0.33 2.72]]
PriorFromPenalty
¶tikreg.spatial_priors.
PriorFromPenalty
(penalty, wishart=True, **kwargs)¶Bases: tikreg.BasePrior
Build a prior from a Tikhnov feature penalty covariance.
__init__
(self, penalty, wishart=True, **kwargs)¶Parameters: |
|
---|
get_prior
(self, alpha=1.0, wishart_lambda=0.0, dodetnorm=False)¶Convert the penalty to a prior.
Parameters: |
|
---|---|
Returns: |
|
Notes
where P is the penalty covariance, \(\gamma\) is the hyper-prior parameter (hhparam).
prior2penalty
(self, regularizer=0.0, dodetnorm=True)¶set_wishart
(self, wishart_prior)¶SphericalPrior
¶tikreg.spatial_priors.
SphericalPrior
(feature_space, **kwargs)¶Bases: tikreg.BasePrior
Equivalent to ridge regression.
__init__
(self, feature_space, **kwargs)¶Create a spherical MVN prior for a feature space.
Parameters: |
|
---|
Examples
>>> spherical_prior = SphericalPrior(5)
>>> print(spherical_prior.asarray.shape)
(5, 5)
>>> print(np.round(spherical_prior.asarray, 2))
[[1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0.]
[0. 0. 1. 0. 0.]
[0. 0. 0. 1. 0.]
[0. 0. 0. 0. 1.]]
get_prior
(self, alpha=1.0)¶Apply regularization to prior
Parameters: |
|
---|---|
Returns: |
|
Examples
>>> spherical_prior = SphericalPrior(5)
>>> prior_covar = spherical_prior.get_prior(2.0)
>>> print(np.round(prior_covar, 2))
[[0.25 0. 0. 0. 0. ]
[0. 0.25 0. 0. 0. ]
[0. 0. 0.25 0. 0. ]
[0. 0. 0. 0.25 0. ]
[0. 0. 0. 0. 0.25]]