Topic 12

Features and Signals

Concept

At a sprint review, Iris watches two versions of the delivery model compared side by side. Same ten thousand orders, same team, same training loop from the last page — yet one predicts within a few minutes and the other might as well roll dice. The difference is not effort, and it is not a cleverer algorithm. Someone gave the two models different columns to look at.

The columns a model sees — its features, from Chapter 2 — decide what it can possibly learn. What the model sees is what it can know; everything else does not exist for it. And features come in three kinds. Some carry signal — a genuine connection to the answer. Some carry only noise. And one kind carries a lie. This page is about choosing the model's eyes, and about telling the three kinds apart.

Three columns walk into the training table
Signal
Distance to the customer. Genuinely moves delivery time, everywhere and always. Verdict: give it to the model.
Noise
The customer's app color theme. No relation to delivery time — only coincidences to find. Verdict: leave it out.
Leakage
The courier's actual route, recorded only after delivery. Unavailable at prediction time. Verdict: never let it in.

Signal: Features That Genuinely Relate

Distance is a signal feature for delivery time. Longer trips genuinely take longer — in every district, every season, for every restaurant. The evening rush is another: 7 p.m. orders genuinely wait longer than 3 p.m. ones, because kitchens and roads are fuller. These connections exist in the world, so they exist in the table, row after row after row.

Watch what the training loop does with such a column. Any nudge that makes the model trust distance more also shrinks the loss — not just on a few rows, but across thousands. So, lap by lap, the parameters attached to distance accumulate weight, and the weight is earned honestly: it reflects something real. That is all "signal" means — a feature the loop can convert into genuine predictive skill.

Noise: Features That Don't

Now add a column with no connection to the answer — say, the customer's favorite app color theme. It cannot help. The danger is that it can still seem to help. In any table of ten thousand real orders, pure chance guarantees small flukes: perhaps dark-theme users happened to get their food ninety seconds faster this spring. A coincidence — but the loop has no way to know that. It only sees that trusting the column shrank the loss on these particular rows, and the loop rewards whatever shrinks the loss.

One junk column is survivable. Pile on dozens, and you have handed the model a haystack of coincidences to mine, and mine it will. Learning coincidence as if it were law is a failure important enough to get its own name two pages from now, on the overfitting page. For now, the working rule: a feature should be in the table because a human believes it relates to the answer — not because it happened to be lying around.

The Feature the Model Can't Have

The third kind is the strangest, because it looks like the best feature in the table. Consider the courier's actual route — which streets they really took. For every past delivery, that column is filled in, and it practically gives away the answer: know the true route and you nearly know the minutes. Train on it and the loss falls through the floor. The team celebrates.

Then the model goes live, and the column is empty — because when a customer places an order, the route has not happened yet. The model learned to lean on information that only exists after the thing it is predicting. This is called leakage: a feature from the future leaking into training. A leaked feature makes a model brilliant in the lab and useless in production, and the test for it is one question — will we have this column at prediction time?

Humans Pick the Menu

Here is a way to hold all three kinds at once. Think of features as witnesses to an incident. One witness saw it happen. One is repeating third-hand gossip. And one confidently recites the verdict — because they heard it announced after the trial. You want the first, you must ignore the second, and you must never let the third testify: knowing the outcome proves nothing about predicting it. Signal, noise, leakage — three names for three fates a column can meet.

Who decides which witnesses get called? In classical machine learning: people. Choosing features is human judgment about the world — knowing that rain slows couriers, that a stadium match backs up every kitchen nearby, that the route column arrives too late to use. There is craft here, and it has a name and its own page in Chapter 7: feature engineering. Deep learning partially automates the choosing for photos and text — Chapter 8 will say exactly how, and how much, honestly. But for the tables that run most businesses, the model's eyes are picked by hand. Which gives you your second reflex question about any ML idea, right after Chapter 2's "where would the labels come from?" — what features would we even use?

Common Confusions
  • "Give the model every column you have — it will sort out what matters." Every noise column is an invitation to learn coincidences, and the loop accepts invitations. Curation by a human who understands the domain beats dumping the warehouse.
  • "If a feature improves training results, keep it." Leaked features improve training results because they cheat — they carry the answer backwards in time. The real test is not the training score; it is availability at prediction time.
  • "Features are found automatically — that's the machine's job." In classical ML, humans choose them; it is judgment about the world, not math. Deep learning automates part of this for images and text (Chapter 8 says how far, honestly).
Why It Matters
  • "What features would we even use?" joins "where would the labels come from?" as your second reflex question about any ML proposal — the two together expose most doomed ideas in a minute.
  • Leakage is the classic silent killer of real projects: spectacular demo, dead product. You now carry its antidote — "will we have that column at prediction time?" — a question anyone in the room can ask.

Knowledge Check

For predicting delivery time, what makes distance a signal feature?

  • It is easy for the app to record accurately for every order
  • It is a number, and models can only learn from numeric columns
  • It genuinely relates to the answer, so the loop earns real skill
  • It is the feature customers can see and verify in the app

Why are a dozen useless columns worse than harmless?

  • In any finite table they hold coincidences the loop learns as if real
  • They slow training down, which is the main cost of noise
  • Too many columns confuse the model and make it give up on the real features
  • Useless columns usually contain private customer data

The fraud team proposes a feature for a payment-checking model: "whether the customer later disputed the charge." Training scores look incredible. What is going on?

  • The scores are fabricated — no single feature can improve a model that much
  • The team has found an unusually strong signal feature and should ship it
  • The feature is noise, so its effect on the score is pure coincidence
  • Leakage — the column arrives only after the event being predicted

In classical machine learning, who decides which features a model gets?

  • The training loop — it automatically discovers the right columns
  • People — it is judgment about the world, not a step the loop performs
  • The model itself, once it is deployed and sees real cases
  • Software vendors, who ship standard feature lists for each industry

You got correct