I am doing literature research on algorithms for correcting mislabeled data using multilayer perceptrons. Found an "old" paper An algorithm for correcting mislabeled data (2001) by Xinchuan Zeng et al. Please share if you are aware of recent/current updates with a brief thoughts. Thanks in advance.

  • 1
    $\begingroup$ Are you just looking for techniques that specifically use MLPs or any other technique for correcting mislabelled data? $\endgroup$
    – nbro
    Mar 17, 2020 at 15:28
  • $\begingroup$ I have numerical data with "unrelated" columns of numbers. Therefore, I think MLPs make more sense rather than, for example, CNNs. $\endgroup$
    – ViB
    Mar 17, 2020 at 15:53
  • $\begingroup$ I am also not sure if arxiv.org/abs/1801.08019 and ieeexplore.ieee.org/abstract/document/6413805 will be more powerful as compared to MLPs. $\endgroup$
    – ViB
    Mar 17, 2020 at 15:56

1 Answer 1


The most general solution today for the problem of finding label errors in datasets is called "confident learning" which works for all datasets and models, can be run time-efficiently in one line of code using cleanlab, and has substantial theory to prove that it works in realistic conditions on real-world datasets. This "confident learning" paper was a culminating result during my PhD at MIT and I am an author on the paper.

Find label issues in your dataset in 1 line of code

from cleanlab.classification import CleanLearning
from cleanlab.filter import find_label_issues

# Option 1 - works with sklearn-compatible models - just input the data and labels ツ
label_issues_info = CleanLearning(clf=sklearn_compatible_model).find_label_issues(data, labels)

# Option 2 - works with ANY ML model - just input the model's predicted probabilities
ordered_label_issues = find_label_issues(
    pred_probs=pred_probs,  # out-of-sample predicted probabilities from any model

Train a model as if the dataset did not have errors -- 3 lines of code

from sklearn.linear_model import LogisticRegression
from cleanlab.classification import CleanLearning

cl = CleanLearning(clf=LogisticRegression())  # any sklearn-compatible classifier
cl.fit(train_data, labels)

# Estimate the predictions you would have gotten if you trained without mislabeled data.
predictions = cl.predict(test_data)

Documentation and runnable tutorials for cleanlab: https://docs.cleanlab.ai/

The above approaches find issues. To correct label issues in your dataset:

The above approaches, just find issues and train without them. To correct the labels or train a model on a corrected dataset (that still includes all the errors, but now corrected with the right label), there is a no-code tool for that called Cleanlab Studio (https://cleanlab.ai/studio) for which I am also an author.

Background if you're interested:

I spent half a decade working with Isaac Chuang (inventor of the quantum computer) to solve this problem in a way that works for every dataset and every model (and every future dataset and future model) during my PhD at MIT. I originally decided to solve this problem after discovering (while building MIT and Harvard's cheating detection system in 2013) that most real-world datasets have significant label errors and this is one of the biggest problems that companies and universities struggle with when training ML models.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .