Select
Index
SparseKoLesky.Select
SparseKoLesky.Select.choldowndate!
SparseKoLesky.Select.cholinsert!
SparseKoLesky.Select.cholupdate!
SparseKoLesky.Select.cholupdate!
SparseKoLesky.Select.covariance!
SparseKoLesky.Select.insertindex
SparseKoLesky.Select.log2prod
SparseKoLesky.Select.scoresupdate!
SparseKoLesky.Select.select
SparseKoLesky.Select.select
SparseKoLesky.Select.select_budget
SparseKoLesky.Select.select_mult
SparseKoLesky.Select.select_nonadj
SparseKoLesky.Select.select_single
SparseKoLesky.Select.selectpoint!
SparseKoLesky.Select
— ModuleSelect
Provides efficient algorithms for information-theoretic sparsity selection.
Public interface
SparseKoLesky.Select.select
— Methodselect(kernel::Kernel, X_train, X_test, s)
Select the s
points from X_train
most informative to X_test
greedily.
This function dispatches to select_single
or select_mult
depending on whether length(X_test) == 1
. This function assumes each point of X_test
can be conditioned by X_train
.
SparseKoLesky.Select.select
— Methodselect(kernel::Kernel, X, train, test, s; budget=true)
Select the s
points from X[train]
most informative to X[test]
greedily.
This function dispatches to select_single
if length(X_test) == 1
, otherwise select_budget
or select_nonadj
depending on whether budget
is true.
Internal functions
SparseKoLesky.Select.select_single
— Functionselect_single(kernel::Kernel, X_train, X_test, s)
Select the s
points from X_train
most informative to X_test
greedily.
This function assumes length(X_test) == 1
.
See also select
, select_mult
.
SparseKoLesky.Select.select_mult
— Functionselect_mult(kernel::Kernel, X_train, X_test, s)
Select the s
points from X_train
most informative to X_test
greedily.
This function assumes each point of X_test
can be conditioned by X_train
.
See also select
, select_single
.
SparseKoLesky.Select.select_nonadj
— Functionselect_nonadj(kernel::Kernel, X, train, test, s)
Select the s
points from X_train
most informative to X_test
greedily.
See also select(kernel::Kernel, X, train, test, s)
, select_budget
.
SparseKoLesky.Select.select_budget
— Functionselect_budget(kernel::Kernel, X, train, test, s)
Select the s
points from X_train
most informative to X_test
greedily.
See also select(kernel::Kernel, X, train, test, s)
, select_nonadj
.
Helper functions
SparseKoLesky.Select.covariance!
— Functioncovariance!(kernel::Kernel, X_train, X_test, L, i, k)
Fill the factor L
's i
-th column by the covariance with the k
-th point.
SparseKoLesky.Select.cholupdate!
— Methodcholupdate!(L, i, k, cond_var; rows=size(L, 1))
Conditions the i
-th column of the Cholesky factor L
by the k
-th point.
This function modifies both L
and cond_var
in-place.
See also cholupdate!(L, i, k, cond_var, cond_cov)
.
SparseKoLesky.Select.cholupdate!
— Methodcholupdate!(L, i, k, cond_var, cond_cov)
Additionally updates cond_cov
in-place if it is provided.
See also cholupdate!(L, i, k, cond_var; rows)
.
SparseKoLesky.Select.log2prod
— Functionlog2prod(x)
Compute log2(prod(x))
for a vector x
efficiently without under/overflow.
SparseKoLesky.Select.choldowndate!
— Functioncholdowndate!(L, u, order; start=1, finish=size(L, 2))
Computes the rank-one downdate of L
by u
, modifying L
in-place.
Given a Cholesky factor $L$, a rank-one downdate by a vector $u$ computes
\[L \to \mathsf{chol}(L L^{\top} - u u^{\top}).\]
This function only computes the columns from start
to finish
.
See also: cholinsert!
.
SparseKoLesky.Select.cholinsert!
— Functioncholinsert!(L, index, k, order, i)
Insert the k
-th point at the index
column in the Cholesky factor L
.
See also: choldowndate!
.
SparseKoLesky.Select.insertindex
— Functioninsertindex(k, order, locations, i; start=1)
Finds the index to insert index k
into order
.
SparseKoLesky.Select.selectpoint!
— Functionselectpoint!(kernel::Kernel, points, L, k, var, order, locations, i)
Add the k
-th point to the Cholesky factor L
.
This function modifies L
and var
in-place.
SparseKoLesky.Select.scoresupdate!
— Functionscoresupdate!(scores, L, var, pos, vars, order, locations, i)
Update scores
in-place for all candidates.