pub struct Notears {
pub lambda: f64,
pub max_iter: usize,
pub max_inner_iter: usize,
pub h_tol: f64,
pub w_threshold: f64,
}Expand description
NOTEARS: gradient-based DAG learning via a smooth acyclicity constraint.
Minimises ½||X - XW||²_F / n subject to h(W) = tr(e^{W◦W}) - p = 0, where W is the weighted adjacency matrix of the DAG.
Reference: Zheng et al. (2018) DAGs with NO TEARS, NeurIPS.
Fields§
§lambda: f64Regularisation strength λ (L1 penalty on edge weights).
max_iter: usizeMaximum number of augmented Lagrangian outer iterations.
max_inner_iter: usizeMaximum steps per inner optimisation.
h_tol: f64Acyclicity tolerance.
w_threshold: f64Edge weight threshold (edges with |w| < threshold are pruned).
Implementations§
Source§impl Notears
impl Notears
Sourcepub fn fit(
&self,
data: ArrayView2<'_, f64>,
var_names: &[&str],
) -> StatsResult<StructureLearningResult>
pub fn fit( &self, data: ArrayView2<'_, f64>, var_names: &[&str], ) -> StatsResult<StructureLearningResult>
Fit NOTEARS on the data matrix.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Notears
impl RefUnwindSafe for Notears
impl Send for Notears
impl Sync for Notears
impl Unpin for Notears
impl UnsafeUnpin for Notears
impl UnwindSafe for Notears
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.