View Source Scholar.Covariance.ShrunkCovariance (Scholar v0.4.0)
Covariance estimator with shrinkage.
Summary
Functions
Fit the shrunk covariance model to x
.
Functions
Fit the shrunk covariance model to x
.
Options
:assume_centered?
(boolean/0
) - Iftrue
, data will not be centered before computation. Useful when working with data whose mean is almost, but not exactly zero. Iffalse
, data will be centered before computation. The default value isfalse
.:shrinkage
(float/0
) - Coefficient in the convex combination used for the computationof the shrunk estimate. Range is [0, 1]. The default value is `0.1`.
Return Values
The function returns a struct with the following parameters:
:covariance
- Tensor of shape{num_features, num_features}
. Estimated covariance matrix.:location
- Tensor of shape{num_features,}
. Estimated location, i.e. the estimated mean.
Examples
iex> key = Nx.Random.key(0)
iex> {x, _new_key} = Nx.Random.multivariate_normal(key, Nx.tensor([0.0, 0.0]), Nx.tensor([[0.8, 0.3], [0.2, 0.4]]), shape: {10}, type: :f32)
iex> model = Scholar.Covariance.ShrunkCovariance.fit(x)
iex> model.covariance
#Nx.Tensor<
f32[2][2]
[
[0.7721845507621765, 0.19141492247581482],
[0.19141492247581482, 0.33952537178993225]
]
>
iex> model.location
#Nx.Tensor<
f32[2]
[0.18202415108680725, -0.09216632694005966]
>
iex> key = Nx.Random.key(0)
iex> {x, _new_key} = Nx.Random.multivariate_normal(key, Nx.tensor([0.0, 0.0]), Nx.tensor([[0.8, 0.3], [0.2, 0.4]]), shape: {10}, type: :f32)
iex> model = Scholar.Covariance.ShrunkCovariance.fit(x, shrinkage: 0.4)
iex> model.covariance
#Nx.Tensor<
f32[2][2]
[
[0.7000747323036194, 0.1276099532842636],
[0.1276099532842636, 0.41163527965545654]
]
>
iex> model.location
#Nx.Tensor<
f32[2]
[0.18202415108680725, -0.09216632694005966]
>