I am working on a classifier, with a large number of possibles classes, and also a no class class.
My training set is made of the output of a hardcoded logic that is currently made for classification. Obviously, this hardcoded method is not perfect, hence the classifier I am working on now.
The output of the hard coded method has true and false output. My first thought was to only keep the true output (when the output was right), but I am wondering if there is a way to also keep the false output, so the model can train on it, knowing that it is not the right output.
If a class is ABC, I can create 2 classes ABC_true, and ABC_false, but how would the model know that we are talking about the same class, one for its true output, one for its false output?

Would encoding each possible class as dummies features for the model be a solution, and setting the dummy to one for each class that I am sure it is not the right outcome?

Thank you

  • 1
    $\begingroup$ If the classifier is hardcoded logic, how are you doing any training at all? It's also not clear by what you mean by "keep" the true/false output - the training set is what it is, regardless of how you classify it. Are you talking about some kind of boosting algorithm, where you iteratively reweight training examples so that misclassified samples are given more weight? $\endgroup$ – Nuclear Wang Feb 22 '19 at 16:06
  • $\begingroup$ Thanks for your comment. I want to get rid of the hardcoded classifier, so I am developing a ML one. But I am going to use the output of the currently hardcoded classifier as a training set for the ML one. $\endgroup$ – antoine.trdc Feb 27 '19 at 17:27

Definitely don't do the last thing you mentioned, you don't want to add features that wouldn't be in real data which specifically state what class(es) a particular sample is (or isn't). Your classifier will likely rely heavily on those and since they (presumably) won't be present when you're actually using the classifier for its intended purpose.

As for the creating two classes thing, the classifier wouldn't know that it's a TP/FP of the same class but I don't really see what the value in labeling like that would be anyway. If you're gonna go through and check your training data for incorrectly labeled samples I think you should just change them to the correct class. By making TP/FP labels for your classes you're just pushing the classifier to make the same mistakes that, if I understand correctly, you're replacing the current method for.

  • $\begingroup$ Thank you Shabuki, it makes sense. I am going to just keep the true classification then. I just wished that I could also hint the classifier on common mistakes (mistakes that are made by the hardcoded classifier now). $\endgroup$ – antoine.trdc Feb 27 '19 at 17:26
  • $\begingroup$ No, don't just keep the true classification - keep the ground-truth, i.e. keep the labels that the hard-coded classifier was compared to (as though the hard-coded classifier was never there at all). $\endgroup$ – Itamar Mushkin Jan 9 at 7:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.