How to deal with incorrect labels in classification? I have a dataset with 2 classes: A and B. The problem is that 20% to 30% of the samples of class B are mislabeled (labeled as B but the right label is A) and I am not able to identify those mistakes.
Is there a way/approach/method to enhance the classification performance in this scenario?
 A: If you have wrong data and no way to get the true labels then there is nothing "correct" that you can do to obtain this information.
You could treat this as an unsupervised problem first (or semi-supervised), by using say clustering with 2 clusters (since you know there are only 2 labels) to get a model to predict labels, and then following with classification. Note that such results may be overly optimistic.
A: Under mild assumptions on the noise mechanism and data distribution (e.g. less than $\frac{1}{2}$ of the data is incorrectly labelled), some classifiers can be shown to be consistent in the binary classification setting. A classifier $C_n$, depending on the training data, is said to be consistent if
$$R(C_n) → R(C_{Bayes}) \;\; as \;\; n → ∞$$
where a classifiers risk, $R(C)$ := is minimised by the Bayes classifier
$$
C^{Bayes}(x) := 
\begin{cases}
    1,& \text{if } η(x) ≥ 1/2\\
    0,& \text{otherwise}
\end{cases}$$
K-nearest-neighbours and Support Vector Machines can be shown to satisfy this condition while Linear Discriminant Analysis does not. Since this limit is guaranteed as $n → ∞$, this doesn't answer how much data you will need in your case, however simulation studies are done in the paper I reference below which may help give you an intuition.  

Reference
Cannings, T. I., Fan, Y. and Samworth, R. J. (2018) Classification with
imperfect training labels. https://arxiv.org/abs/1805.11505.

A: In case of wrong data the best practice, in my experience, is to get rid of it. See, unlike conventional programming where you build the algorithm and apply it to the data, in machine learning, the algorithm comes from the data itself, so if you put a wrong data it will disrupt your algorithm and you will get poor performance. 
The data you use in any machine learning algorithm should be as clean and as concise as possible to yield good results. 
A: You have a bunch of known As (if I read correctly) and some other cases that may or may not be As. So you want to find the most similar cases from the unknown set. Sounds relatively straightforward. If As are really different, then you'll get a nice break in the similarity function.
A: I'm a little late to this question, but for future readers: Try giving higher sample weights to data with class A. That way your algorithm will have a higher penalty for misclassifying A than for misclassifying B.
If your algorithm doesn't support sample weights you could try oversampling your data from class A.
There is a danger of overfitting with this method, so make sure to regularize and cross validate.
A: Learning with noisy label is an active research area. Serval methods are mentioned here: https://youtu.be/8mpBHbjG4E4.
