Sir you have so many great videos it is increasing my knowledge everyday. Thank you so much. You are the best Professor of Statistics I have ever come across.
Towards the end.. I paused to see where the music is coming from... it started way too early.. This video was the answer to all my questions!! explained so well.. Thank you
I love your videos. Thanks. Just one point: ROSE and over/under sampling are two different approaches. The former is based on bootstrapping, the latters are more traditional. You used traditional approaches to the problem. Besides, the 30% success is not "rare event". It would be better to use a dataset with 5% or lower success rate.
Great explanation sir.explaining it to the minute details with very simple explanation is awesome feature you had.Appreciate if you could continue this journey with more important topics
Classification and Prediction with R - you can find some machine learning lecture videos from this link: Statistical & Machine Learning Methodologiesru-vid.com/group/PL34t5iLfZddu8M0jd7pjSVUjvjBOBdYZ1
Thanks for this awesome video sir. I have few doubts: 1. How can we set some attributes to keep rank and gpa within possible range in synthetic data...how to write that condition? 2.Whats the diff bw both over and undersampling together and the synthetic data we prepared at the end?? 3. Why have we used positive= '1' in rf formula, in previous video of yours I haven't seen such thing
1. If it is not in the algorithm, you can manually do so before developing a model. 2. Together it does oversampling where samples are smaller and under sampling where number are of cases are higher. 3. That indicates what level of response we are more interested in.
Excellent video Sir... keep them coming... can you do videos with examples of various functions in Caret especially with large datasets and prediction with xgboost, e1071 packages...thanks
Hello Dr. Bharatendra,first, thank you for the explanation, you're english is easy to understand. In this case, I don't know why the ROSE function doesn't work for me, because when Run the line, for example, to oversampling the train, the variable 'over' is NULL (empty), but I can solver this with Caret Packages.
Thank you so much Professor, Very lucidly explained and you have kept the data and code available which is so very useful. Wanted to know you if there are some other way of imbalanced class like cost sensitive classifier etc?
Thank you for another great video sir! Also, you mentioned under synthetic data that we can use ‘attributes’ to make sure that we don’t go outside the range (in GPA & Rank). Can you please touch upon these attributes? Looking forward to hearing from you! Thank you!
Thank-you for this video! I've watched a number of your videos and they make things so straightforward and easy to pick up. Is there any way to tweak this method for dealing with a factor with more than two levels - I'm looking at 9 different levels and keep on getting errors with the function shown in this video.
could you please share the code if you sorted out this problem? I am looking at 5 different levels and I stuck to continue the project. avinaykumar03@gmail.com Thanks in Advance!
what if I have more than two categorical variables? I am getting this error when performing undersampling "Error in (function (formula, data, method, subset, na.action, N, p = 0.5, : The response variable must have 2 levels" please help me out. TIA
@@bkrai I do have one question. You are just applying sampling technique (over, under, both, rose) only on train data, building model and validating on test data. Why are you not applying sampling technique on test data ? Is there no need to balance test data as well before validate model on it?
@@bkrai Thanks for your reply. I have read SMOTE is also used to handle imbalanced data. I do have below questions, I would be thankful if you will reply 1. Both ROSE and SMOTE work similarly ( I mean internal calculation ) ? If not then which one is good. ? 2. Which one among ROSE and SMOTE would you prefer ? 3. Do you have any video on SMOTE ?
Thank you for the explanation sir.. In this data we have factors as 0 and 1. How to handle the imbalance if we have more than 2 factors in the data set?
Sir this rose package is only valid when you have 2 outcomes(0,1).What if i am facing multi class imbalance problems like there are 4 outcomes(0,1,2,3).How to handle such imbalance ?can you share with us
thank you for this video brother.. you use over sampling on the training data to have same class as 180... but this was only done on the training set so what do you do to the testing set? i realise that you partition the data before you employing the over sampling method and you apply the over sampling on the training set but what happens to the testing? because i think it will also be inbalance? please i need explanation here. thank you
It should only be done for training data because the prediction model is based on that. The model is not based on test data. We use test data only for assessing the model. When a final model is deployed in practice, it is likely to come across data similar to test data.
@@bkrai thanks so much for that great insight. I was thinking that because there was High class imbalance in the data set so if you do your partition there is high likely that the imbalance will affect in both the training and testing.. So if train data is over sample to avoid the imbalance then the testing data remains untouch meaning it is still imbalance. so meaning the predictions will be high in one class and low in the other.. I will implement this and see how it will go.. Thumps up bro. Your Vids are aspiring.
i just did what you just explained above but it seems that my sensitivity was 96% and my specificity was just 20%.. i realise that although training set was over sampled but in the testing there was still class imbalance because over sampling was done after partitioning. so prediction on my unseen data which is the testing was really bias..as more patients were predicted as having the disease while they already have the disease but specificity was extremely poor.. so i really dont understand how to avoid this scenario on the testing data.. thanks again
@@bkrai thanks again, yeah we use test data to assess the model, but what of if the test is also higly imbalance? will this not affect our recall value, specifi etc?
Thank you sir for one more valuable lecture. Sir, can we do, Random over-sampling (1:2), randomly selecting minority samples with replacement and adding them into the training data set with bootstrap?
Dr. Bharatendra Rai but my mission is to classify 3 classes. For example CTG dataset , all 3 classes have the same major imbalance. So how to balance them. ?
@@bkrai Yes I got you now Sir. I can name 2 and 3 class (with less frequncies) as 1 and Normal as -1 so I will end up with 2 classes variable. Thanks again Dr.
Again a beautiful explanation. Sir I wish to ask you what if there is class imbalance in the validation data set but not the training set? For example, suppose we want to evaluate a model which we have developed using local responses to see wether it performs well globally/in another province.. But we find the dataset distribution to be highly skewed thereby giving rise to class imbalance problem..and when we apply our model it gives lower kappa values.. What is the best way out? As i was reading the caret package details where it has been advised not to use upscaling/downscaling on validation data set! (but we have show the models work)
Hello Sir, very well explained, but i just wanted to know, in all the sampling method we got accuracy not more than 60%, will there not be any problem with our Model if we apply the same model using future data of the same dataset?
It can only help in improving overall accuracy to some extent. Doing oversampling or under sampling in when there is significant class imbalance does not guaranty very high accuracy because it totally depends on what data you are using.
Sir nicely explained. i have doubt if we have more than two classes like multi nominal regression ROSE algorithm not working. how to rectify that error??
Thanks for this video sir! In your video "Logistic Regression with R: Categorical Response Variable at Two Levels (2018)"....we converted rank also into a factor...after doing so my accuracy in coming out to be 1 in all cases of under,over,both and random sampling....Kindly clear my doubt...why we didnt convert rank into factor in this video?? and why just converting that into factor we got 1 accuracy???
Great video sir, Is there any video regarding the multi-label classification with a validation dataset based on the training dataset model and apply only test dataset. thank you, sir.
Sir,thank you so much for the vdo and sharing your expertise. One question I hv is "should be performed SMOTE before feature selection from the imbalanced data?" . Please answer
Sir. I hv a model in Random Forest. Dataset is in csv file. If i want to make a web interface and deploy what should I do. Is storing the dataset in database like mysql mandatory. I want users to give values through four textboxes/input box and provide the predicted result in a text form.
Can we use rose when we have 100 classes. I think rose is only for 2 classes. In your case 0 and 1. How to do oversampling when one have many imbalanced classes. Many thanks Kevin
@@bkrai but I think it isn't really a big deal.. because it prevents data leakage..I think also the time series has this problem not classification ...and even there are papers where the authors have used undersampling before Splitting?
How to tackle data imbalance in multi level classification problem? Any links describing the same in R would be of great help! For ex, if data set is varied (target var: class1 ~ 100 samples, class2 ~ 1000 samples, class3 ~ 10000 samples, class4 ~ 20000 samples)
Sir, one more doubt- why we have made admit a factor?..and not Rank...and when do we apply normalization and standardization... Which ML models do not require standardization and normalizatio. Kindly tell
A student getting admission or not getting admission is not really a rank. It is a factor type of variable. Regarding normalization and standardization, you will see that they are addressed in each video where appropriate. You can refer to top 10 here: ru-vid.com/group/PL34t5iLfZddsQ0NzMFszGduj3jE8UFm4O
Hi sir, great videos, various all R related are helping me a lot. Need help on finance and fraud analytics. Please can you post some finance domain related courses.
Hi Sir, what if we simply sample the no. of observations from majority class equal to minority class without disturbing minority class and without using ROSE package?
thx for the nyc video sir. can we use this for logit model as well ? or only for randomforest ? so, we can attain acc by doing ovun. one small doubt, in this dataset we have 70% of data with "0" and 30 with 1. so we did ovun and gained increase in acc. "what is the best proportion of 0s-1s inorder to get high acc? i mean any bench mark is there, like 50-50, 40-60... for 0s,1s or yes/no ??? Is it ok if overall acc is reduced, inorder to increase the sensitivity ???? i have used N=400 instead of 376, which made 0=188, 1=212, so sensitivity=0.63. can i do like this ??
Hey, thanks for your video. You explained things very well! As I am doing regression on a multiclass factor (starting point polr model) my question somehow differs. My outcome is a 10-class (likert scale) question of a survey with 1 „something isnever justified“ to 10„… is always justified“-> So ordered factor levels (1:10) The densityplot shows that levels >5 have near to zero density. The former literature (looking at the same survey question) recoded to a 4-class factor (also ordered) by „collapsing“ the levels
Look at number of data points at each level and if you find some classes have very few data points, then it may be a good idea to group some categories.
@@bkrai Thanks a lot. I decided to recode the factor by collapsing the lowest categories (Option 1) and collapsing all the categories expept the highest value (option two). But one further question: My predictors are also very imbalanced. F. e. I have got: - marital status (8 classes) where single or married are prevalent (~ 50%) -likert scale questions with 4-classes and with 10 classes where the „middle categories“ are relatively few. My idea was to code alternative factors for (Single/ Married/ living together); and for the likert scale : -Option 1: Collapsing them to balanced factors, or -Option 2: Taking them as numerical predictors; Next thep would be to run models with the alternative options. Would you agree with such an approach? Or am I „cheating the data“ if I am recoding my predictors in that way? Also I am not sure if numerical predictors are useful in ordered logistic/ probit regression. Thanks in advance! And I now watched the majority of your videos. They are very helpful :-)
so we increase the models accuracy in predicting "1" as that was the questions interest . what about the predictors which have larger influence on "admit" .How to know which predictors are significant. should we use logit regression for that.
So, class imbalance problem should be treated only when we want to predict a class with less instances against a class with more instances? Whereas when we predict the class with more instances , this means we do not have class imbalance problem and we should continue with our prediction? Am I right?
Sir, Can we use ROSE / SMOTE method for target variable with class more than 2. If yes ; then could you pl suggest what other parameters should we use. I tried with parameters mentioned in this video ; but getting error claiming the class is more than 2.
Hallo Sir thank you for the video. It is really helpful! However, I still have a question. So I tried to do undersampling. And I got an error that the response variable must have 2 levels --> "Error in (function (formula, data, method, subset, na.action, N, p = 0.5, : The response variable must have 2 levels." So it means it can only work for 2 response level or I might do something wrong? I have the same code as you have. under
Well thank you for the explanation it's the first time i use this package, and i don't know what the difference from using rose() to balance the data and using ovun sample()? what i'm looking for is to balance my data using ROSE from Menardi and Torelli.
sir , our accuracy should be more or less ?? if our accuracy is more it is again affecting at sensitivity or specificity ? Q2:WE do over sapling or under sampling according to make our "0" or "1" to predict more accuracy then it will impact on other .it is not issue?
Accuracy is always higher the better. But there may be situations where sensitivity or specificity may be more important and in those cases trying to improve them may lead to a lower overall accuracy.
Hello sir, I got struck at random forest step..it is showing me the error of this kind.."Error in randomForest .default(m,y,...) NA/NAN/Inf in foreign function call (arg 1) In addition: warning message: In data.matrix(X): NAs introduced by coercion"
let us suppose we have 205 instances for class 0 and we want to use over sample method. So the resulting over sample data points are 410 for both classes . Is that acceptable since we have original data points only 400 instances?? thanks.
Thank you so much for this tutorial. I followed these steps in my dataset. bt at the end I got the same confusion matrix for train, under, over and both data. and my accuracy, kappa, sensitivity, specificity etc. are 1, while the Mcnemar's Test P-Value is NA. Sir, could you please help me to correct this?
Hi Sir, Wantedd to check ifin a Logistic Regression problem both dependent variable and independent variable are dichotomous in nature and there is imbalnce data in both the cases , then what is the best way to treat the imbalance data present in both IV and DV
Thank You, Prof. for this video. I am trying to adapt this approach to my data set but I have been getting incorrect data type error as follows: " Error in terms.formula(formula, data = frml.env) : 'data' argument is of the wrong type " when I run this: ovrf
Hello sir, how is this method different from using cross validation in caret package?? Do i still need to do this if i have intention of generalizing my predictive power using cross validation??
Cross validation helps with generalization. Addressing class imbalance helps with giving proper weight to each class of the categorical dependent variable. So they serve different purpose.
@@bkrai thank you for your response sir I was one mistake that was the reason I was getting that error I watched your video carefully and I resolved that error thank you sir
sir i am using data of network attack where i have 3 levels in response variable so while using the functions ovun.sample i am getting the error that response must have 2 levels so pls help me in this
I have a data were I have to classify gender based on websites visited but there are websites which are visited by both male and female means both 0 and 1
They are slighly different. Rose uses smoothed bootstrapping to draw artificial samples from the feature space neighbourhood around the minority class. On the other hand, Smotr draws artificial samples by choosing points that lie on the line connecting the rare observation to one of its nearest neighbors in the feature space.