pub struct PerformancePredictor<T: Float + Debug + Send + Sync + 'static> { /* private fields */ }Expand description
Performance predictor
Implements a genuinely-learned, feature-based online ridge-regression predictor.
An OptimizerArchitecture is mapped to a fixed-length numeric feature vector and
scored by a linear model squashed through a logistic function into [0, 1]. The
model is updated online from observed evaluation results.
§Removed scaffolding
Earlier revisions carried a large tree of neural-network / feature-pipeline /
prediction-cache types around this model: ModelArchitecture,
RegularizationParameters, LearningRateSchedule, EarlyStoppingState,
FeatureExtractor, FeatureEngineeringPipeline, FeatureScaling,
FeatureInteractions, PolynomialFeatures, FeatureSelection, FeatureCache,
TrainingMetadata, ResourceUsageRecord, DataSplits, PredictionCache,
PredictionResult, CacheStatistics, CacheConfig, UncertaintyEstimator,
UncertaintyParameters, CalibrationData and CalibrationCurve. Every one of
them was constructed once, stored, and never read again — not one influenced a
single prediction, and none could be built or inspected from outside the module.
They are gone rather than left as a public API that does nothing; what remains is
exactly the state the model uses, and all of it is readable through the accessors
below.
Implementations§
Source§impl<T: Float + Debug + Default + Send + Sync> PerformancePredictor<T>
impl<T: Float + Debug + Default + Send + Sync> PerformancePredictor<T>
pub fn new(_config: &EvaluationConfig) -> Result<Self>
Sourcepub fn model_type(&self) -> &PredictorModelType
pub fn model_type(&self) -> &PredictorModelType
Model family this predictor implements.
Sourcepub fn epochs_trained(&self) -> usize
pub fn epochs_trained(&self) -> usize
Number of online updates applied so far.
Sourcepub fn training_loss_history(&self) -> &[T]
pub fn training_loss_history(&self) -> &[T]
Squared error of every online update, in application order.
Sourcepub fn observation_count(&self) -> usize
pub fn observation_count(&self) -> usize
Number of (features -> target) pairs the model has been trained on.
Sourcepub fn training_rmse(&self) -> Option<T>
pub fn training_rmse(&self) -> Option<T>
Root-mean-square error of the current weights over every training pair
recorded so far, or None before any pair has been observed.
This is a resubstitution error, not a held-out estimate: it says how well the model now fits what it has already seen. It is what makes the stored training features and targets observable rather than write-only.
Sourcepub fn confidence_level(&self) -> T
pub fn confidence_level(&self) -> T
Confidence level used to widen the reported prediction interval.
Sourcepub fn set_confidence_level(&mut self, level: T) -> Result<()>
pub fn set_confidence_level(&mut self, level: T) -> Result<()>
Set the confidence level used for the reported prediction interval.
Rejects values outside the open interval (0, 1): a level of 0 or 1 is
not a confidence level, and silently clamping it would make the reported
interval mean something other than what the caller asked for.
pub fn predict_performance( &self, architecture: &OptimizerArchitecture<T>, ) -> Result<EvaluationResults<T>>
pub fn update_with_results( &mut self, results: &[EvaluationResults<T>], ) -> Result<()>
Trait Implementations§
Auto Trait Implementations§
impl<T> !Freeze for PerformancePredictor<T>
impl<T> RefUnwindSafe for PerformancePredictor<T>where
PredictorModel<T>: RefUnwindSafe,
PredictorTrainingData<T>: RefUnwindSafe,
T: RefUnwindSafe,
Mutex<Vec<ArrayBase<OwnedRepr<T>, Dim<[usize; 1]>>>>: RefUnwindSafe,
impl<T> Send for PerformancePredictor<T>
impl<T> Sync for PerformancePredictor<T>
impl<T> Unpin for PerformancePredictor<T>
impl<T> UnsafeUnpin for PerformancePredictor<T>where
PredictorModel<T>: UnsafeUnpin,
PredictorTrainingData<T>: UnsafeUnpin,
T: UnsafeUnpin,
Mutex<Vec<ArrayBase<OwnedRepr<T>, Dim<[usize; 1]>>>>: UnsafeUnpin,
impl<T> UnwindSafe for PerformancePredictor<T>where
PredictorModel<T>: UnwindSafe,
PredictorTrainingData<T>: UnwindSafe,
T: UnwindSafe,
Mutex<Vec<ArrayBase<OwnedRepr<T>, Dim<[usize; 1]>>>>: UnwindSafe,
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 more