Is a lot there to explain of “why” when u basically do not provide the code or what u did there.
Also based on your CM I assume your model is doing just what is trained to do, u do get good performance of the model u fit, letting aside that minority classes are ignored.
Based on my experience I would use sample size weight for the models instead of creating synthetic observations, especially when u dealing with rare events (your models is classifying just as u tell him to do because is not penalized for miss classification so does focus on your “metric” accuracy when u train).
Note: CM explanation (seems does treat all labels on “equal” foot probability):
- your model does classify
~98.6 of the observations that are true label “Benign” and are predicted as “Benign”. Other ones are missed so does predict all other labels also as “Benign” when their true labels are “others” from tour list (didn’t list them here because answering from my phone).
Hope it helps.