pub struct TaskClusteringRegularization<S = Untrained> { /* private fields */ }Expand description
Task Clustering Regularization for Multi-Task Learning
This method clusters tasks based on their similarity and applies different regularization strengths within and across clusters. Tasks in the same cluster are encouraged to have similar parameters, while tasks in different clusters are allowed to be more different.
§Examples
use sklears_multioutput::regularization::TaskClusteringRegularization;
use sklears_core::traits::{Predict, Fit};
// Use SciRS2-Core for arrays and random number generation (SciRS2 Policy)
use scirs2_core::ndarray::array;
use std::collections::HashMap;
let X = array![[1.0, 2.0], [2.0, 3.0], [3.0, 1.0], [4.0, 4.0]];
let mut y_tasks = HashMap::new();
y_tasks.insert("task1".to_string(), array![[1.0], [2.0], [1.5], [2.5]]);
y_tasks.insert("task2".to_string(), array![[0.5], [1.0], [0.8], [1.2]]);
y_tasks.insert("task3".to_string(), array![[2.0], [3.0], [2.2], [3.1]]);
let task_clustering = TaskClusteringRegularization::new()
.n_clusters(2)
.intra_cluster_alpha(0.1) // Strong regularization within clusters
.inter_cluster_alpha(0.01) // Weak regularization across clusters
.max_iter(1000);Implementations§
Source§impl TaskClusteringRegularization<Untrained>
impl TaskClusteringRegularization<Untrained>
Sourcepub fn n_clusters(self, n_clusters: usize) -> Self
pub fn n_clusters(self, n_clusters: usize) -> Self
Set number of task clusters
Sourcepub fn intra_cluster_alpha(self, alpha: Float) -> Self
pub fn intra_cluster_alpha(self, alpha: Float) -> Self
Set intra-cluster regularization strength
Sourcepub fn inter_cluster_alpha(self, alpha: Float) -> Self
pub fn inter_cluster_alpha(self, alpha: Float) -> Self
Set inter-cluster regularization strength
Sourcepub fn learning_rate(self, lr: Float) -> Self
pub fn learning_rate(self, lr: Float) -> Self
Set learning rate
Sourcepub fn random_state(self, seed: u64) -> Self
pub fn random_state(self, seed: u64) -> Self
Set random state for reproducible clustering
Sourcepub fn task_outputs(self, outputs: &[(&str, usize)]) -> Self
pub fn task_outputs(self, outputs: &[(&str, usize)]) -> Self
Set task outputs
Trait Implementations§
Source§impl<S: Clone> Clone for TaskClusteringRegularization<S>
impl<S: Clone> Clone for TaskClusteringRegularization<S>
Source§fn clone(&self) -> TaskClusteringRegularization<S>
fn clone(&self) -> TaskClusteringRegularization<S>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<S: Debug> Debug for TaskClusteringRegularization<S>
impl<S: Debug> Debug for TaskClusteringRegularization<S>
Source§impl Estimator for TaskClusteringRegularization<Untrained>
impl Estimator for TaskClusteringRegularization<Untrained>
Source§type Error = SklearsError
type Error = SklearsError
Error type for the estimator
Source§fn validate_config(&self) -> Result<(), SklearsError>
fn validate_config(&self) -> Result<(), SklearsError>
Validate estimator configuration with detailed error context
Source§fn check_compatibility(
&self,
n_samples: usize,
n_features: usize,
) -> Result<(), SklearsError>
fn check_compatibility( &self, n_samples: usize, n_features: usize, ) -> Result<(), SklearsError>
Check if estimator is compatible with given data dimensions
Source§fn metadata(&self) -> EstimatorMetadata
fn metadata(&self) -> EstimatorMetadata
Get estimator metadata
Source§impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, HashMap<String, ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>>> for TaskClusteringRegularization<Untrained>
impl Fit<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, HashMap<String, ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>>> for TaskClusteringRegularization<Untrained>
Source§type Fitted = TaskClusteringRegularization<TaskClusteringRegressionTrained>
type Fitted = TaskClusteringRegularization<TaskClusteringRegressionTrained>
The fitted model type
Source§fn fit(
self,
X: &ArrayView2<'_, Float>,
y: &HashMap<String, Array2<Float>>,
) -> SklResult<Self::Fitted>
fn fit( self, X: &ArrayView2<'_, Float>, y: &HashMap<String, Array2<Float>>, ) -> SklResult<Self::Fitted>
Fit the model to the provided data with validation
Source§fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
fn fit_with_validation(
self,
x: &X,
y: &Y,
_x_val: Option<&X>,
_y_val: Option<&Y>,
) -> Result<(Self::Fitted, FitMetrics), SklearsError>where
Self: Sized,
Fit with custom validation and early stopping
Source§impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, HashMap<String, ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>>> for TaskClusteringRegularization<TaskClusteringRegressionTrained>
impl Predict<ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, HashMap<String, ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>>> for TaskClusteringRegularization<TaskClusteringRegressionTrained>
Source§fn predict(
&self,
X: &ArrayView2<'_, Float>,
) -> SklResult<HashMap<String, Array2<Float>>>
fn predict( &self, X: &ArrayView2<'_, Float>, ) -> SklResult<HashMap<String, Array2<Float>>>
Make predictions on the provided data
Source§fn predict_with_uncertainty(
&self,
x: &X,
) -> Result<(Output, UncertaintyMeasure), SklearsError>
fn predict_with_uncertainty( &self, x: &X, ) -> Result<(Output, UncertaintyMeasure), SklearsError>
Make predictions with confidence intervals
Auto Trait Implementations§
impl<S> Freeze for TaskClusteringRegularization<S>where
S: Freeze,
impl<S> RefUnwindSafe for TaskClusteringRegularization<S>where
S: RefUnwindSafe,
impl<S> Send for TaskClusteringRegularization<S>where
S: Send,
impl<S> Sync for TaskClusteringRegularization<S>where
S: Sync,
impl<S> Unpin for TaskClusteringRegularization<S>where
S: Unpin,
impl<S> UnwindSafe for TaskClusteringRegularization<S>where
S: 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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Source§impl<T> StableApi for Twhere
T: Estimator,
impl<T> StableApi for Twhere
T: Estimator,
Source§const STABLE_SINCE: &'static str = "0.1.0"
const STABLE_SINCE: &'static str = "0.1.0"
API version this type was stabilized in
Source§const HAS_EXPERIMENTAL_FEATURES: bool = false
const HAS_EXPERIMENTAL_FEATURES: bool = false
Whether this API has any experimental features