Utilities¶
QuickLearnKit provides structured utility functions that simplify common data science operations while remaining transparent and customizable. These utilities are designed to reduce boilerplate, improve clarity, and keep workflows reproducible without hiding the mechanics of machine learning.
Sampler¶
The Sampler class enables controlled random sampling from:
- Python lists
- NumPy arrays
- pandas DataFrames
Initialization¶
Sampler(data, n=1, random_state=None, replace=False, axis=0, stateful=False)
Parameters¶
| Parameter | Description |
|---|---|
data |
Dataset to sample from |
n |
Number of samples |
random_state |
Seed for reproducibility |
replace |
Whether to sample with replacement |
axis |
For DataFrames: 0 = rows, 1 = columns |
stateful |
If True, RNG state advances across calls |
Example¶
from quicklearnkit import Sampler
import seaborn as sns
df = sns.load_dataset("tips")
sampler = Sampler(df, n=3, random_state=42)
sample = sampler.sample()
Why it matters:
Instead of writing repetitive sampling logic, learners can focus on what they’re sampling and why, while instructors can demonstrate reproducibility and randomness control.
Train–Test Split¶
Split datasets into training and testing sets with support for:
- Shuffling
- Stratification
- NumPy arrays
- pandas DataFrames
Function Signature¶
train_test_split(data, test_size=0.25, shuffle=True, stratify=None, random_state=None)
Example¶
from quicklearnkit import train_test_split
train, test = train_test_split(df, test_size=0.3, random_state=42)
Why it matters:
This mirrors scikit-learn’s functionality but keeps syntax simple and consistent across QuickLearnKit utilities, making it easier for beginners to grasp dataset partitioning.
ProbabilisticImputer¶
A group-aware, probabilistic categorical imputer.
It learns probability distributions from observed data and fills missing values by sampling from those distributions.
Initialization¶
ProbabilisticImputer(group_col, target_col, random_state=None, stateful=False)
Methods¶
| Method | Description |
|---|---|
fit(df) |
Learns probability distributions |
transform(df) |
Imputes missing values |
fit_transform(df) |
Fit and transform in one step |
Example¶
from quicklearnkit import ProbabilisticImputer
import seaborn as sns
df = sns.load_dataset("titanic")
imputer = ProbabilisticImputer(
group_col="pclass",
target_col="deck",
random_state=42
)
df_imputed = imputer.fit_transform(df)
Why it matters:
Instead of defaulting to naive imputation (like filling with mode or mean), this approach preserves distributional realism and respects group-level differences (e.g., imputing cabin decks by passenger class).
Random Data Generation¶
Generate synthetic numerical data for experimentation and demonstrations:
from quicklearnkit import create_random
random_data = create_random(mean=0, std_dev=1, size=100)
Why it matters:
Perfect for teaching statistical concepts, testing workflows, or demonstrating algorithms without needing a real dataset.
Design Intent¶
QuickLearnKit utilities are designed to:
- Reduce repetitive boilerplate so learners can focus on concepts.
- Improve teaching clarity with explicit, readable functions.
- Maintain reproducibility through controlled randomness.
- Avoid hiding ML mechanics — utilities are transparent, not “black boxes.”
- Stay simple and explicit, making them ideal for classrooms, tutorials, and rapid prototyping.