-
Decision trees: how they split, why they overfit, and how to read one
A decision tree turns prediction into a sequence of readable questions:
-
Outliers: detect, understand, and only then decide to delete
An outlier is a record that looks unusual relative to other observations. That definition says nothing about whether the record is wrong.
-
Activation functions in 2026: why ReLU won and what’s replacing it
ReLU remains the cheapest dependable baseline, but modern transformer feed-forward blocks increasingly favor smooth, gated designs—especially GELU, SiLU, and SwiGLU—because they preserve a gradient pa
-
Feature stores and reproducible training pipelines
A model is not reproducible merely because its training script has a fixed random seed. You must also reproduce the exact feature definitions, historical values, timestamps, dependency graph, and mode
-
Rule learning: RIPPER, decision lists, and models that output human-readable rules
Most classifiers return a label or probability. A rule learner returns logic that a person can inspect and execute:
-
Scaling and normalization: StandardScaler vs MinMaxScaler vs RobustScaler, and the models that don’t care
Suppose a dataset contains two useful features:
-
Eigenvalues and SVD without tears: compress an image to see them work
An RGB image looks visual to us, but to NumPy it is three matrices: one each for red, green, and blue. Real images contain repeated structure—smooth gradients, correlated colors, recurring edges, and
-
DuckDB: an analytics warehouse that fits in your laptop’s pocket
If you’ve ever wanted to analyze gigabytes of data without provisioning a database server or signing up for a cloud data warehouse, DuckDB is worth a serious look.
-
ONNX: one model format to run everywhere, from server to browser
Modern AI deployment rarely happens in the same environment where a model was trained.
-
PySpark ML performance: partitions, data skew, caching, and the small-data trap
PySpark Performance problems are often blamed on cluster size, executor memory, or CPU capacity. Those factors matter, but many slow jobs fail for a simpler reason: the data is distributed badly.