NeuroNomixer
  • Home
  • Blog
  • Visual Guides
  • Authors
  • Contact
Sign InSign Up
HomeBlogAuthorsContactPrivacy Policy

© 2026 NeuroNomixer — Built with Next.js & Tailwind CSS

Visual Guides/Making Features Speak
Data & Analysis

Making Features Speak

A raw column is a fact. A feature is a fact phrased so the model can hear it. Transform a skewed column, multiply two innocent ones, and unpack a timestamp, with a real least-squares fit rerunning on every move to tell you whether the data agrees.

Find a transform that helps and one that hurts
Add the interaction column
Cut timestamp error by 30%

Sign in to save progress

The model can only use what you spell out

A linear model is deliberately simple: it can only add up straight line effects of the columns it is given. Feature engineering is the craft of rewriting the columns so the truth becomes expressible: bend a skewed scale, multiply two columns whose product carries the price, split a timestamp into the rhythms hiding inside it. Two neighboring moves have their own guides: turning categories into numbers is covered in categorical encoding, and putting columns on comparable scales is covered in feature scaling. This guide owns the rest: transforms, bins, interactions, and extraction.

How this playground stays honest: the 120 ad-spend days (seed 20260716), the 90 deliveries (seed 20260717), and the 336 hourly pickup counts (seed 20260718) are generated once with a seeded generator. Every RMSE, R squared, coefficient, and percentage on this page comes from an exact least-squares solve of the normal equations, rerun in your browser on every toggle. Nothing is precomputed.

1 · Reshape one column: transforms and bins

A growth team logs daily ad spend and daily signups. Spend buys less and less as it grows, so a straight line in raw dollars misses at both ends. Hand the model a reshaped version of the same column and watch the error respond. At least one popular move makes things worse here; find it.

Daily ad spend vs signups: 120 days

fit on x
406080$250$750$1250$1750spend per daysignups

The model is always the same: an intercept plus one coefficient on one feature, refit from scratch on every click. Only the feature changes. The column as it arrived. A straight line through a curved world.

Feed the model a different feature

Fit error (RMSE)

6.25

signups off, on average

R squared

0.804

2 fitted parameters

Fit error by feature (lower is better)

Raw
6.25
Log
?
Square root
?
Square
?
Bins
?

Bars fill in as you try each feature. The lesson is not that log always wins. It is that the data decides: this world has diminishing returns, so compressing big spends helps and squaring them hurts. Craft means checking, not memorizing a favorite move.

2 · Multiply two columns: interactions

A courier invoices 90 deliveries. Distance matters, weight matters, but part of the price is per km-kg: the two columns act together. Fit distance and weight alone, then add their product as a third feature and watch the residuals collapse toward the diagonal.

Predicted vs actual invoice, 90 deliveries

00252550507575actual cost ($)predicted ($)

The dashed diagonal is a perfect prediction. Without the interaction column the additive model overshoots cheap short-and-light runs and undershoots long-and-heavy ones, because no sum of two straight-line effects can express a price that multiplies.

The feature the raw table does not have

cost = -13.31 + 2.02*dist + 2.07*wt

Coefficients refit live on the 90 deliveries every time you toggle the column.

Additive model RMSE

$5.61

distance + weight only

With interaction

?

add the column to find out

The courier really does charge partly per km-kg, so the truth lives in a column the raw table never shipped. No coefficient on distance alone or weight alone can bend a plane into that surface. Feature engineering here is not decoration: the model class stays linear, and the new column is what lets a linear model tell the truth.

3 · Unpack a timestamp: extraction

A bike-share system records one number per hour: pickups, keyed by a timestamp. To a linear model the raw timestamp is almost meaningless, yet the weekday commute peaks and the lazy weekend hump are sitting right inside it. Extract features until you cut the prediction error by at least 30 percent.

Hourly bike pickups, two weeks (336 hours)

actualmodel predictionweekend
02040MoTuWeThFrSaSuMoTuWeThFrSaSu

The baseline model sees only hours-since-start, so its best move is a nearly flat line through the average. Every feature you extract below is information that was already inside the timestamp, waiting to be spelled out.

Expand the timestamp

Watch the weekday-as-a-number column: it barely moves the error once the weekend flag is in, because demand does not rise or fall steadily from Monday to Sunday. Extraction is a craft call too, and the fit, not the feature name, is the judge.

Raw timestamp RMSE

12.60

model: intercept + t

Your model RMSE

12.60

2 columns

Predictive gain vs raw timestamp

0.0%

goal: cut the error by at least 30%

R squared moves from 0.015 to 0.015 with the current feature set. Same rows, same target, same linear model. The only thing that changed is how much of the timestamp you let the model read.

← All GuidesNext Guide →