pub struct PatternModel<T: Float + Debug + Send + Sync + 'static> { /* private fields */ }Expand description
Pattern recognition model for detecting malicious behaviour.
Prototypes are unit-norm gradient directions learned online: honest updates
accepted by a round feed normal_patterns, updates rejected as Byzantine feed
attack_patterns.
Implementations§
Source§impl<T: Float + Debug + Send + Sync + 'static> PatternModel<T>
impl<T: Float + Debug + Send + Sync + 'static> PatternModel<T>
Sourcepub fn matching_threshold(&self) -> f64
pub fn matching_threshold(&self) -> f64
Cosine similarity above which an observation is merged into an existing prototype instead of creating a new one.
Sourcepub fn pattern_counts(&self) -> (usize, usize)
pub fn pattern_counts(&self) -> (usize, usize)
Number of learned normal and attack prototypes.
Sourcepub fn learn_normal(&mut self, gradient: &Array1<T>) -> Result<()>
pub fn learn_normal(&mut self, gradient: &Array1<T>) -> Result<()>
Learn a normal behaviour prototype.
Sourcepub fn learn_attack(&mut self, gradient: &Array1<T>) -> Result<()>
pub fn learn_attack(&mut self, gradient: &Array1<T>) -> Result<()>
Learn an attack prototype.
Sourcepub fn compute_pattern_deviation(
&self,
gradient: &Array1<T>,
) -> Result<Option<f64>>
pub fn compute_pattern_deviation( &self, gradient: &Array1<T>, ) -> Result<Option<f64>>
Pattern deviation score in [0, 1], or None when nothing comparable has
been learned yet.
The score is the larger of the novelty relative to the closest normal
prototype and the alignment with the closest known attack prototype. None
is returned whenever no prototype is dimension-compatible with gradient
(including after a model reshape, when prototypes exist but none of them
applies), so the caller never folds a constant into a combined score.
Sourcepub fn compute_pattern_distance(
&self,
gradient: &Array1<T>,
pattern: &Array1<T>,
) -> Result<T>
pub fn compute_pattern_distance( &self, gradient: &Array1<T>, pattern: &Array1<T>, ) -> Result<T>
Euclidean distance between a gradient and a prototype.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for PatternModel<T>
impl<T> RefUnwindSafe for PatternModel<T>where
T: RefUnwindSafe,
impl<T> Send for PatternModel<T>
impl<T> Sync for PatternModel<T>
impl<T> Unpin for PatternModel<T>
impl<T> UnsafeUnpin for PatternModel<T>
impl<T> UnwindSafe for PatternModel<T>where
T: RefUnwindSafe,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
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> ⓘ
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>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.