How do I deal with different class sizes when classifying data with a petternnet?

I want to classify datasets using a patternnet. I have 2 classes (labelled 1 and 2). However, class 2 is significantly smaller than class 1 (ratio 1:9). The patternnet always classifies every sample into class 1, reaching 90% accuracy with it.
Is there any way to weigh or prioritize my classes so that this is not viewed as the best solution? (e.g. a cost matrix like for a decision tree (fitctree))

4 Comments

Did you normalize your data prior to classification ? With normalisation (mapminmax function for example) you will not have a 1:9 ration anymore.
I'm referring to the number of samples per class when I say smaller and 1:9 ratio. I don't see how normalizing my values could change that.
I see I misunderstood sorry. What happens if you reduce the number of labbelled 1 to the number of labbelled 2 ? Does it still classes everything in L1 ?
If I do that it works fine but I would prefer including all of my data.

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products

Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!