cursus.steps.scripts.active_sample_selection¶
Active Sample Selection Script for Semi-Supervised and Active Learning.
This script implements intelligent sample selection from model predictions for: 1. Semi-Supervised Learning (SSL): High-confidence samples for pseudo-labeling 2. Active Learning (AL): Uncertain/diverse samples for human labeling
Supports multiple strategies: - SSL: confidence_threshold, top_k_per_class - AL: uncertainty (margin/entropy/least_confidence), diversity (k-center), BADGE
Author: Cursus Framework Date: 2025-11-17
- save_dataframe_with_format(df, output_path, format_str)[source]¶
Save DataFrame in specified format.
- Parameters:
df (DataFrame) – DataFrame to save
output_path (Path) – Base output path (without extension)
format_str (str) – Format to save in (‘csv’, ‘tsv’, or ‘parquet’)
- Returns:
Path to saved file
- Return type:
Path
- load_inference_data(inference_data_dir, id_field='id')[source]¶
Load inference data from various upstream sources with format detection.
Supports inference outputs from: - XGBoost/LightGBM/PyTorch model inference - Bedrock batch processing / Bedrock processing - Label ruleset execution
- Parameters:
- Returns:
Tuple of (DataFrame, format_string) where format is ‘csv’, ‘tsv’, or ‘parquet’
- Raises:
FileNotFoundError – If no data files found
ValueError – If ID field not found
- Return type:
- extract_score_columns(df, score_field=None, score_prefix='prob_class_')[source]¶
Extract score columns from inference data.
Priority: 1. If SCORE_FIELD specified, use that single column 2. Otherwise, use SCORE_FIELD_PREFIX to find all matching columns 3. Fall back to auto-detection if prefix doesn’t match
- Parameters:
- Returns:
List of score column names
- Raises:
ValueError – If no valid score columns found
- Return type:
- normalize_scores_to_probabilities(df, score_cols)[source]¶
Normalize various score formats to probability distributions.
- class ConfidenceThresholdSampler(confidence_threshold=0.9, max_samples=0, random_seed=42)[source]¶
Bases:
objectSimple confidence-based selection for SSL pipelines.
- class TopKPerClassSampler(k_per_class=100, random_seed=42)[source]¶
Bases:
objectBalanced selection ensuring representation across classes.
- class UncertaintySampler(strategy='margin', random_seed=42)[source]¶
Bases:
objectUncertainty-based sampling strategies.
- class DiversitySampler(metric='euclidean', random_seed=42)[source]¶
Bases:
objectCore-set diversity sampling using k-center algorithm.
- class BADGESampler(metric='euclidean', random_seed=42)[source]¶
Bases:
objectBADGE: Batch Active learning by Diverse Gradient Embeddings.
- select_samples(df, strategy, batch_size, strategy_config, id_field='id')[source]¶
Main selection function coordinating all sampling strategies.
- Parameters:
- Returns:
DataFrame with selected samples including selection metadata
- Return type:
DataFrame
- save_selected_samples(selected_df, output_dir, output_format='csv')[source]¶
Save selected samples using format preservation.
- save_selection_metadata(metadata, metadata_dir)[source]¶
Save selection metadata to separate output channel.
- validate_strategy_for_use_case(strategy, use_case)[source]¶
Validate strategy compatibility with use case.