Tackling class imbalance
Until now, we dealt with problems where we had a similar number of datapoints in all our classes. In the real world, we might not be able to get data in such an orderly fashion. Sometimes, the number of datapoints in one class is a lot more than the number of datapoints in other classes. If this happens, then the classifier tends to get biased. The boundary won't reflect of the true nature of your data just because there is a big difference in the number of datapoints between the two classes. Therefore, it becomes important to account for this discrepancy and neutralize it so that our classifier remains impartial.
How to do it…
- Let's load the data:
input_file = 'data_multivar_imbalance.txt' X, y = utilities.load_data(input_file)
- Let's visualize the data. The code for visualization is exactly the same as it was in the previous recipe. You can also find it in the file named
svm_imbalance.py
already provided to you. If you run it, you will...