Algorithms for imbalanced multi class classification in Matlab?

9 次查看(过去 30 天)
Hi,
I have been browsing for quite a while both in the state of the art and statistical packages around and I am having some difficulties on finding available algorithms. I notice some implementations for the imbalanced problem have already been posted in Matlab but they were focused on imbalanced two class. My situation is more dry. Most if not all algorithms I came across on academia did not release their algorithms.
My data has two rare classes and 3 other classes who can be considered majority.
Thank you,
Carlos

采纳的回答

Ilya
Ilya 2012-10-13
I described approaches for learning on imbalanced data here http://www.mathworks.com/matlabcentral/answers/11549-leraning-classification-with-most-training-samples-in-one-category This advice is applicable to any number of classes.
If you have Statistics Tlbx in R2012b, I recommend RUSBoost algorithm available from fitensemble function. It is described here http://www.mathworks.com/help/stats/ensemble-methods.html#btfwpd3 and an example is shown here http://www.mathworks.com/help/stats/ensemble-methods.html#btgw1m1
  5 个评论
Ilya
Ilya 2012-10-14
RUSboost uses AdaBoost.M2 algorithm underneath. This is a multiclass algorithm proposed by Freund and Schapire. It is not reducible to one-vs-all strategy. I don't remember a published reference off top of my head, but a google search finds this http://users.eecs.northwestern.edu/~yingwu/teaching/EECS510/Reading/Freund_ICML96.pdf. An observation is assigned to the class with the largest score.
You need Statistics Tlbx R2012b. For licensing and trial questions, please call our customer support.
med djo
med djo 2017-1-11
Hello Sir, Assuming that you have three different classes (1,2,3). The first class contains two samples, the second contain one, the third contain one. From each class, you will extract two values (Average and median) of the color (for example). It will give you that: classe 1: (15, 20) classe 1: (16, 21) classe 2: ( 18, 22) classe 3: (22, 24) . On matlab, we make a matrix (Matrix for learning), which contains two columns, four lines and which contain (15, 20; 16, 21;18, 22; 22, 24). And we made a matrix composed of a single column (label matrix), this matrix (1, 1, 2, 3). We execute learning SVM with SVMtrain from libSVM. The parameters I have given you as an example correspond to the RBF kernel. The gamma value, c (varies between 10 and 100,000). Please, can you help me to execute this scenario in Matlab using LibSVM?? Thanks

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2012-10-13
Usually multi-class problems are handled by doing pairwise discrimination. Class 1 vs everything else, to pull out class 1. Take the "everything else" and run it against class 2 to get class 2 and a new "everything else". And so on.
You can find the algorithms for multi-class SVM (e.g.), but the papers warn that it is computationally very expensive even just for 3 classes.
  1 个评论
Carlos Paradis
Carlos Paradis 2012-10-13
Hi Walter,
Thank you for your reply. By pairwise, are you referring to what they call the One versus all approach? I found some papers on them, specially on doing this together with AdaBoost and Ensemble methods, but I only found one implementation in R. The implementation requires splitting the data, while I found MATLAB stratified k-fold to be more appropriate to validate it in such case. Could you point out any implementation in MATLAB for this that already takes into account in the algorithm the Ensemble method? The only ones I have found so far do not address it looking as multi class.
Thank you,
Carlos

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Classification Ensembles 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by