Noise in Data Mining

Yo Yogesh.M Updated 24 Oct 2026
6 min read ·Lesson 42 of 50
In this post

Every dataset built from real-world measurement or human input carries some amount of error mixed in with the genuine information it is trying to capture. Noise is that unwanted, meaningless component

Every dataset built from real-world measurement or human input carries some amount of error mixed in with the genuine information it is trying to capture. Noise is that unwanted, meaningless component — the part of the data that does not reflect reality and exists only because of how the data was measured, recorded, or transmitted. A useful way to hold the idea:

Recorded data = Signal (the real information) + Noise (unwanted error)

Noise is not the same thing as an outlier, even though the two are frequently confused. An outlier is a genuine, extreme data point — it may be entirely correct and simply rare (covered in full in its own lesson). Noise is data that is wrong: a sensor misreading, a mistyped value, a corrupted label. The two can coincide (a noisy value can also look extreme), but a value can be noisy without being extreme, and a value can be a legitimate outlier without any noise involved at all.

Where Noise Comes From

  • Hardware issues — sensor faults or device malfunctions that record a value incorrectly.
  • Human error — mistyped entries, inconsistent spelling, or a form filled in wrong.
  • Software errors — bugs in a data pipeline that corrupt values during processing.
  • Recognition errors — OCR or speech-to-text systems that misread or mishear the original input.
  • Ambiguous language — slang, abbreviations, or unclear phrasing in text data that a system cannot reliably interpret.

Two Kinds of Noise, and Why the Distinction Matters

Noise affects a dataset in one of two structurally different places, and the two require different fixes.

Attribute noise corrupts the input values — a feature field is wrong, missing, or irrelevant. An age recorded as 150, a blank field where a value should be, or a field that carries no real relationship to the outcome being studied are all attribute noise. This is the kind of noise the lessons on outliers and data cleaning walk through in detail with worked examples.

Class noise (label noise) corrupts the answer itself — the category or label a record has been assigned is wrong. A genuinely fraudulent transaction labeled "legitimate," or the same combination of input values appearing twice in the data with two different labels, are both class noise.

The distinction matters because class noise is far more dangerous to a predictive model than an equivalent amount of attribute noise, for a specific reason: a classification or prediction model is trained to reproduce whatever labels it is given. Attribute noise degrades the quality of the inputs a model learns from; class noise actively teaches the model the wrong answer.

Worked Example: Measuring How Much Label Noise Actually Costs

The claim above — that class noise is especially damaging — is checkable directly. Train the same classifier on the same 500-record synthetic dataset four times, each time flipping a different percentage of the training labels at random before training, and measure accuracy on a clean, unmodified test set:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

X, y = make_classification(n_samples=500, n_features=6, n_informative=4, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

def inject_label_noise(y, frac, rng):
    y_noisy = y.copy()
    idx = rng.choice(len(y), size=int(len(y) * frac), replace=False)
    y_noisy[idx] = 1 - y_noisy[idx]   # flip the label
    return y_noisy

rng = np.random.default_rng(0)
for frac in [0.0, 0.1, 0.3, 0.5]:
    y_train_noisy = inject_label_noise(y_train, frac, rng)
    clf = DecisionTreeClassifier(max_depth=5, random_state=42).fit(X_train, y_train_noisy)
    acc = accuracy_score(y_test, clf.predict(X_test))
    print(f"label noise={int(frac*100)}%  ->  test accuracy = {acc:.3f}")

Output:

label noise=0%   ->  test accuracy = 0.793
label noise=10%  ->  test accuracy = 0.793
label noise=30%  ->  test accuracy = 0.747
label noise=50%  ->  test accuracy = 0.473

This shows the effect precisely rather than just asserting it. At 10% label noise, accuracy barely moves (0.793 to 0.793) — the tree-building algorithm has enough correctly labeled examples to still find the real pattern, and a small number of wrong labels get outvoted. At 30%, accuracy drops noticeably (to 0.747) — degraded, but the model is still clearly better than guessing. At 50% noise, accuracy collapses to 0.473 — worse than the 0.5 a coin flip would achieve on a balanced two-class problem, because at that point roughly half of every category's labels are wrong, and the model has effectively been trained to associate the wrong pattern with each class about as often as the right one. The relationship is not linear: a model tolerates a moderate amount of label noise reasonably well and then degrades sharply once noise crosses a threshold where the wrong signal starts to rival the real one.

Measuring Noise Directly: Signal-to-Noise Ratio

For continuous measurements — sensor readings, audio, physical measurements — noise can be measured directly using the signal-to-noise ratio (SNR), expressed in decibels:

import numpy as np

signal = np.array([10.0, 10.2, 10.5, 10.3, 10.1, 10.4, 10.6, 10.2])
noise = np.random.default_rng(1).normal(0, 0.5, size=signal.shape)
noisy_signal = signal + noise

snr_db = 10 * np.log10(np.mean(signal**2) / np.mean(noise**2))
print(f"SNR = {snr_db:.1f} dB")

Output:

SNR = 29.0 dB

A higher SNR means the genuine signal dominates the noise by a wide margin; a lower SNR means the noise is comparable in size to the signal itself, at which point recovering the true underlying value becomes genuinely difficult. This measure is what lets an engineer quantify "how noisy is this sensor" as a single number, rather than describing it only qualitatively.

Deliberately Corrupted Data: Fraud

Noise is not always accidental. Data can be intentionally altered to present a more favorable picture than reality — inflated sales figures, understated expenses, or falsified sensor readings submitted to pass an inspection. This is functionally a form of noise (the recorded value diverges from the true value), but it differs from accidental noise in one important way: it is not random, so techniques designed to average out random error will not reliably catch it. Detecting intentional data manipulation generally requires the same kind of anomaly and pattern-consistency checks used in fraud detection, rather than the statistical smoothing techniques that work for random measurement error.

Handling Noise

The same techniques used for outliers and data cleaning apply here, because noise is what those techniques are ultimately built to reduce:

  • Binning — sorting data into groups and replacing each group's values with a representative value (mean, median, or boundary), smoothing out small random fluctuations, as detailed in the lesson on binning.
  • Regression — fitting a line or curve to the data and treating deviations from that fit as noise to be smoothed away.
  • Clustering — grouping similar records together; points that do not fit well into any cluster are treated as noise or outliers worth further inspection.
  • Careful, deliberate outlier analysis — distinguishing a genuinely corrupted value from a rare but real one before deciding whether to correct, remove, or keep it, exactly as demonstrated with worked numbers in the lesson on outliers.

The worked example above is the practical argument for doing this work carefully: the difference between a dataset with 10% label noise and one with 50% is the difference between a model that performs almost as well as if the data were clean and one that performs worse than random guessing.

0 Comments

Reviewed before they appear

No comments yet.

Data Mining
Introduction to Data Mining Data Mining Implementation Process Data Mining Architecture Data Mining Techniques KDD: Knowledge Discovery in Databases History of Data Mining Data Mining Tools Data Mining vs Machine Learning Facebook Data Mining Social Media Data Mining Methods Clustering in Data Mining Text Data Mining Bagging vs Boosting Data Mining vs Data Warehousing Social Media Data Mining Data Mining: Bayesian Classifiers Data Mining: World Wide Web Different Types of Clustering Bitcoin Mining and Blockchain Data Mining Orange Data Mining Data Mining vs Big Data Decision Tree Induction Educational Data Mining Data Mining in Healthcare Apriori Algorithm Data Integration in Data Mining Difference Between Data Mining and Text Mining Discretization in Data Mining Redundancy and Correlation in Data Mining Classification of Data Mining Systems Classification Algorithms in Data Mining Data Generalization in Data Mining Classification and Prediction in Data Mining Regression in Data Mining What Is an Outlier in Data Mining Data Cleaning in Data Mining Data Processing in Data Mining Data Mining Task Primitives Web Content Mining, Web Structure Mining, and Web Usage Mining Binning in Data Mining KDD vs. Data Mining Noise in Data Mining BIRCH in Data Mining Stemming in Data Mining Feature Transformation in Data Mining Visual and Audio Data Mining Class Comparison Methods in Data Mining Data Selection in Data Mining Tasks and Functionalities of Data Mining Ubiquitous and Invisible Data Mining
Ask about this post
AI Ask about this post

Ask questions about Noise in Data Mining and get answers drawn from it.

Signed-in readers only.