pub struct CausalRepresentationModel {Show 15 fields
pub config: CausalRepresentationConfig,
pub model_id: Uuid,
pub causal_graph: CausalGraph,
pub structural_equations: HashMap<String, StructuralEquation>,
pub variable_embeddings: HashMap<String, Array1<f32>>,
pub latent_factors: Array2<f32>,
pub factual_network: Array2<f32>,
pub counterfactual_network: Array2<f32>,
pub shared_network: Array2<f32>,
pub observational_data: Vec<HashMap<String, f32>>,
pub interventional_data: Vec<(HashMap<String, f32>, Intervention)>,
pub entities: HashMap<String, usize>,
pub relations: HashMap<String, usize>,
pub training_stats: Option<TrainingStats>,
pub is_trained: bool,
}Expand description
Causal representation learning model
Fields§
§config: CausalRepresentationConfig§model_id: Uuid§causal_graph: CausalGraphLearned causal graph
structural_equations: HashMap<String, StructuralEquation>Structural equations
variable_embeddings: HashMap<String, Array1<f32>>Embeddings for variables
latent_factors: Array2<f32>Latent factors (disentangled representations)
factual_network: Array2<f32>Twin network for counterfactuals
counterfactual_network: Array2<f32>§observational_data: Vec<HashMap<String, f32>>Training data storage
interventional_data: Vec<(HashMap<String, f32>, Intervention)>§entities: HashMap<String, usize>Entity and relation mappings
relations: HashMap<String, usize>§training_stats: Option<TrainingStats>Training state
is_trained: boolImplementations§
Source§impl CausalRepresentationModel
impl CausalRepresentationModel
Sourcepub fn new(config: CausalRepresentationConfig) -> Self
pub fn new(config: CausalRepresentationConfig) -> Self
Create new causal representation model
Sourcepub fn add_observational_data(&mut self, data: HashMap<String, f32>)
pub fn add_observational_data(&mut self, data: HashMap<String, f32>)
Add observational data
Sourcepub fn add_interventional_data(
&mut self,
data: HashMap<String, f32>,
intervention: Intervention,
)
pub fn add_interventional_data( &mut self, data: HashMap<String, f32>, intervention: Intervention, )
Add interventional data
Sourcepub fn discover_causal_structure(&mut self) -> Result<()>
pub fn discover_causal_structure(&mut self) -> Result<()>
Discover causal structure
Sourcepub fn learn_structural_equations(&mut self) -> Result<()>
pub fn learn_structural_equations(&mut self) -> Result<()>
Learn structural equations
Sourcepub fn intervene(
&self,
intervention: &Intervention,
) -> Result<HashMap<String, f32>>
pub fn intervene( &self, intervention: &Intervention, ) -> Result<HashMap<String, f32>>
Perform intervention
Sourcepub fn answer_counterfactual(
&self,
query: &CounterfactualQuery,
) -> Result<HashMap<String, f32>>
pub fn answer_counterfactual( &self, query: &CounterfactualQuery, ) -> Result<HashMap<String, f32>>
Answer counterfactual query
Sourcepub fn generate_explanation(
&self,
query_var: &str,
evidence: &HashMap<String, f32>,
) -> Result<String>
pub fn generate_explanation( &self, query_var: &str, evidence: &HashMap<String, f32>, ) -> Result<String>
Generate causal explanation
Sourcepub fn learn_disentangled_representations(&mut self) -> Result<()>
pub fn learn_disentangled_representations(&mut self) -> Result<()>
Learn disentangled representations
Trait Implementations§
Source§impl Debug for CausalRepresentationModel
impl Debug for CausalRepresentationModel
Source§impl EmbeddingModel for CausalRepresentationModel
impl EmbeddingModel for CausalRepresentationModel
fn config(&self) -> &ModelConfig
fn model_id(&self) -> &Uuid
fn model_type(&self) -> &'static str
fn add_triple(&mut self, triple: Triple) -> Result<()>
fn train<'life0, 'async_trait>(
&'life0 mut self,
epochs: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<TrainingStats>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_entity_embedding(&self, entity: &str) -> Result<Vector>
fn get_relation_embedding(&self, relation: &str) -> Result<Vector>
fn score_triple( &self, subject: &str, _predicate: &str, object: &str, ) -> Result<f64>
fn predict_objects( &self, subject: &str, predicate: &str, k: usize, ) -> Result<Vec<(String, f64)>>
fn predict_subjects( &self, predicate: &str, object: &str, k: usize, ) -> Result<Vec<(String, f64)>>
fn predict_relations( &self, subject: &str, object: &str, k: usize, ) -> Result<Vec<(String, f64)>>
fn get_entities(&self) -> Vec<String>
fn get_relations(&self) -> Vec<String>
fn get_stats(&self) -> ModelStats
fn save(&self, _path: &str) -> Result<()>
fn load(&mut self, _path: &str) -> Result<()>
fn clear(&mut self)
fn is_trained(&self) -> bool
Auto Trait Implementations§
impl Freeze for CausalRepresentationModel
impl RefUnwindSafe for CausalRepresentationModel
impl Send for CausalRepresentationModel
impl Sync for CausalRepresentationModel
impl Unpin for CausalRepresentationModel
impl UnwindSafe for CausalRepresentationModel
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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
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> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Casts the value.
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Casts the value.
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.Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.