Regularization Part 3: Elastic Net Regression
HTML-код
- Опубликовано: 7 окт 2018
- Elastic-Net Regression is combines Lasso Regression with Ridge Regression to give you the best of both worlds. It works well when there are lots of useless variables that need to be removed from the equation and it works well when there are lots of useful variables that need to be retained. And it does better than either one when it comes to handling correlated variables. Dang!!!!
NOTE: This StatQuest follows up on the the StatQuest on Ridge Regression...
• Regularization Part 1:...
...and the StatQuest on Lasso Regression....
• Regularization Part 2:...
For a complete index of all the StatQuest videos, check out:
statquest.org/video-index/
Also, here are some references that helped me put this video together:
The original manuscript on Elastic-Net Regression: web.stanford.edu/~hastie/Pape...
A webpage at North Carolina State University that shows different situations for Ridge, Lasso and Elastic-Net Regression: www4.stat.ncsu.edu/~post/josh...
If you'd like to support StatQuest, please consider...
Buying The StatQuest Illustrated Guide to Machine Learning!!!
PDF - statquest.gumroad.com/l/wvtmc
Paperback - www.amazon.com/dp/B09ZCKR4H6
Kindle eBook - www.amazon.com/dp/B09ZG79HXC
Patreon: / statquest
...or...
RUclips Membership: / @statquest
...a cool StatQuest t-shirt or sweatshirt:
shop.spreadshirt.com/statques...
...buying one or two of my songs (or go large and get a whole album!)
joshuastarmer.bandcamp.com/
...or just donating to StatQuest!
www.paypal.me/statquest
Lastly, if you want to keep up with me as I research and create new StatQuests, follow me on twitter:
/ joshuastarmer
#statquest #regularization
NOTE: In this video, for some reason I used the word "variable" instead of "parameter" in the equations for elastic-net. We are trying to shrink the parameters, not the variables.
Support StatQuest by buying my book The StatQuest Illustrated Guide to Machine Learning or a Study Guide or Merch!!! statquest.org/statquest-store/
Clarification: Params {slope, intercept}. Variable {weight, hight} - for anyone that got confused
@@badoiuecristian Exactly.
3:56 "...when there are correlations between parameters..." this should be between variables instead. Similarly at 4:48 "...job dealing with correlated parameters..."
@@s25412 Oops! You are correct.
Hi Josh,
Love your content. Has helped me to learn a lot & grow. You are doing an awesome work. Please continue to do so.
Wanted to support you but unfortunately your Paypal link seems to be dysfunctional. Please update it.
Lasso: Yee-ha! Ridge: Brrr... Elastic Net: ...
Great Question!!! :) "snap"?
Lol my favorite part of the video by far
Wonderful, brilliant, awesome. What a relief! Finally, I understand some important concepts of the statistics. Thank you very much Josh.
When I first watched one of your videos I was struck by how entertaining it was. But the more videos I watch, the more I notice how well I'm understanding the explanations in your videos.Thanks a lot for your amazing efforts!
Thank you! :)
I have now finished the 3 parts, ouf! Thank you a thousand times for the awesome content you provide 👏🏾
BAM! There's one more part here: ruclips.net/video/Xm2C_gTAl8c/видео.html
You have an uncanny way of explaining this material well. Thank you so much for creating these videos!
Thank you! :)
Thank you very much Josh for explaining regularization so clearly ! The visuals that you use in your videos makes the learning easy.
Hooray! Thank you. :)
Thank you for the amazing videos! Your ability to explain the concepts simply is incomparable..!
Thank you so much! :)
Thank you, Josh, for this excellent video on Elastic-Net Regression! It was a great finish to this 3-part series on Regularization!
Hooray!
The best explanations I could find online for Stats!!! Thank you Josh!
Thanks!
I can't say which is better, your albums or this amazing series.
Thank you very much! :)
Thanks for the entertaining and informative channel. Keep up the good work!
Thank you so much Josh!! I was struggling with Lasso, Ridge, and ElasticNet Regression for my graduate class. Your 3 videos cleared up all the confusion. Thank you SO much for all that you do to make these topics accessible for all!
Happy to help!
Hey Josh, thanks for the crisp explanation. Today after long procrastination, I managed to watch all three of the videos - L1, L2 and Elastic Net.
Wow! Good work! :)
You explain the concepts so well ......Thanks a lot for these videos
Thank you! :)
Crisp and clear ! thanks for the video
Another great video!!! Keep it up!! Always big fan
Triple bam! :)
Man that intro is the best it forces me to listen to the rest of the lecture. Thanks :)
bam! :)
really useful series, keep doing the great tutorials!
Will do! I'm glad you like the videos. :)
Thanks very much, StatQuest. each lecture is fantastic and interesting. Looking forward to your clearly explanation of Bayesian statistics, MCMC, MH, Gibbs sampling, etc.
Glad you like the video! All of those topics are on the To-Do list, and hopefully I can get to them sooner than later. :)
Ihaaa!😀 All tutorials are brilliant! A huge thank you.
Thanks! :)
whoa
Thanks Josh its 2022 and your videos saved me well!
Thanks!
Fantastic video Josh !! Thanks a lot, keep up the good work ! :)
You're welcome! :)
you explain really well, better than the course I am following! thanks 🙏
Thank you!
Wow, Ur channel is a boon to beginners like me in the world of Data Science.....Thanks a lot
OMG! I'm so happy I found your channel.
Hooray! :)
At first, I came here for the stats revision. Lately, I've been finding myself visiting to remind myself of the tunes instead!
That's awesome! :)
You are the best! I indeed learned a lot from you! Thanks!
Bam!
man i love your way of teaching
Thank you!
Sir! I really liked your style thank you for such entertainment and informative lecture🙏
Thanks and welcome!
I love your channel man, its the major reason I'll be majoring in Data science in college!
Thank you very much and good luck with your degree! :)
I'm from Chile... i 've loved your videos of regularization, specially each intro!!!
Hooray!!!! Thank you so much! :)
@@statquest do you have any videos about SVM , Neural Net models?
@@javiermenac Not yet, but I'm working on both. SVM will probably come first, followed by Neural Net.
Your explanations are on point and easy to understand. (Can be used as quick reference) 🙆🏻👍🏻💯
Thanks!
I mean how easy can it get ... these views are the perfect example of how complex algorithms can be explained in simple and then later people can dive into the actual math behind it to get the full picture... Awesome ... thanks
That's exactly the idea. I'm so glad you like the videos. :)
@@statquest you're welcome and thank you for creating awesome videos..... i really enjoyed the pca ones... as first time i understood the svd in a simple way :-)
Hi Josh, your lessons are so nice that I decided to support you. I bought your digita album "Made from TV". You rock!
WOW!!!! Awesome! Thank you!
You are awesome... I gonna buy a t-shirt with "I love StatQuest" written on it !
Hooray!!! One day I'll have those shirts for sale.... One day.
I love your channel!
Thank you so much!
I sometimes come just for the intros! Amazing work!!!
BAM! :)
Only reason I subscribed you is because of your singing before every videos! No doubt you explain very well
Thanks! :)
This clears things up a lot. 4 years on still the best explanation online. Yeeha
BAM!
Legendary as always! 😁🤘🤙👌👍
Hooray! :)
Love your clearly explained videos. And your songs are so sweet like Phoebe Buffay’s 😉
Ha! Thanks. I sing the smelly song every day as a warm up. ;)
Really nice videos! It's very well explained and helpful!
Can you also do videos on adaptive elastic net and multi-step elastic net ? Thank you so much!
Great! Thank-you Josh!
You're welcome! :)
Hı
Thank you so much. I have learned alot and look forward to new videos. Good luck
Thank you, your video is very useful
Glad it was helpful!
Thanks for this amazing series! It is making my life way easier while I am taking Machine Learning course in university.
Can you please 'clearly explain' what do you mean by correlated variables? And what Elastic Net regression does to them?
An example of correlated variables is if I wanted to use "weight" and "height" measurements to predict something. Since small people tend to weight less than tall people, weight and height are correlated. Elastic-Net Regression would shrink the parameters associated with those variables together.
excellent explanation for complexity of model 👍
Thanks!
So amazing, thank you!
You're welcome! :)
I like it a lot when he said the super fancy thing is actually xxx.
:)
thanks for making elastic net this easy
You're welcome!! :)
Thank you so much! Once again, your videos are of invaluable help to my PhD dissertation! And the "Brrr" made me laugh out loud :D
Hooray!
Hey Josh, I love your videos!!
Lasso and elastic net regression also do work well when there are lesser data points compared to the variable, rite?
Yes.
Awesome man .. Thanks a lot
Thanks!!! :)
Thanks for all the Great Videos with decent musical intros! ;)
I have a question concerning this one:
You mention "lambdaX * variableX" but shouldn't it rather be "lambdaX * parameterX" (except the y intercept).
You are exactly right.
I am in love with your videos Josh! BAM! I just wanted to ask when we have so many features and multicollinear variables (real case datasets), is applying Elastic Net Regression always better than Ridge and Lasso? I mean, we cannot actually check that as there are so many variables ( Your Deep Learning Example) so can we say that Elastic Net is best of both worlds? We can apply it in most of the scenarios where making a hypothesis about the features not very simple?
I talk about this in my video that shows how to do Elastic Net regression in R. The answer is, "Yes, elastic-net gives you the best possible situation". See: ruclips.net/video/ctmNq7FgbvI/видео.html
@@statquest Thank you so much!!! You are a savior!! BAMMMMM!!!
Great video, thank you!! I'm just a bit unsure about the scaling of features. Say, if we scale a feature, what would change for lasso and ridge?
Scaling the data will change the original least squares parameter estimates, but it will not change the process that Elastic-Net uses to reduce the influence of features that are less useful.
I love this channel BAM~~~
Hooray! :)
Hi Josh, Just revisited this video and very clearly explained. But what are the disadvantages of elastic net? Is this model more computational expensive?
As far as I know, it's pretty efficient.
Hey Josh! Thank you for this, watched your 4 regularization videos today and am happy! And a suggestion for a related, followup video - collinearity & multi-collinearity :)
Thanks! I'll keep those topics in mind.
@@statquest Thank YOU for all you do!
In the intro song, I thought you would say "simpler.. than you might expect **it to be**" cause that rhymes. Anyways, love your videos. Thanks for doing such great work.
Noted
It doesn't gets more easier than this
Bam! :)
Thanks a lot for your amazing videos. I just wondering, when I use Elastic Net, the coefficient of useless variable seems will not go to zero because of the part of the Ridge Regression in the equation. So, why not just use Losso Regression first to eliminate the useless variable and then use the Ridge Regression to regularize?
Interesting. You could try that. However, in theory, elastic net is supposed to do that for you. So there may be some aspect specific to your data that is giving you strange results.
Thank you for your wonderful videos. It really helped me to understand ridge/lasso/elastic net. I still have one question though, it seems like elastic net regression can delete some variables even though both lambda 1 and 2 are not 0 (I found it from other papers). but I am not sure how that is possible if lambda 2 is not 0..... do you have any idea for this? Thanks again!
As long as the lasso penalty is in use, then you can eliminate variables.
I know answering these many comments is very boring
I guess you using NLP to filter the comments and answer the important ones and auto reply the others
Above video was wonderful! Thank You again Sir 😁
Thanks!
The intro song with 2.0 speed is nice alternative to the original version :D
bam!
nice explanation
Thanks!
Hi Josh, Thank you for another awesome video. I have one qn, how to decide which parameters to group for lasso and ridge penalty for Elastic net regression?? are they selected randomly? thanks in advance
Elastic-net takes care of all of that for you. See it in action here: ruclips.net/video/ctmNq7FgbvI/видео.html
I think you are missing parenthesis in penalty terms 3:31.
But thank you so much for the videos!
POISSON REGRESSION, PARTIAL LEAST SQUARES AND PRINCIPAL COMPONENT REGRESSION PLEASEEE DR JOSHHH # WE LOVE YOU
:)
Thanks for the video Josh. Your explaination makes sense, but i can't wrap my head to think of a reason why would this work still. If we know some variables that are less important (e.g., Age in your previous example), don't we still have those variables that in the loss function? Is it just that their impact will be sitting in between none and when using L2?
I'm not sure I understand your question. However, for less important variables, we can reduce their associated coefficients without drastically reducing the fit of the model to the data, and this will result in a significant reduction in the "penalty" that we add to the loss function.
Hey Josh another excellent video! I thank you very much! Quick question:
Do you need brackets after the lambdas? ie
λ1 Χ [variable1] + λ1 Χ [variable2] + ...
or is it λ1 Χ { [variable1] + [variable2] + ... } ?
and similarly for λ2 in ridge regression?
The two ways you wrote out are equal to each other. So you can use one or the other, they are equivalent.
@@statquest You 're right pff that was a mistake.
I meant that you show this in 2:47:
λ1 Χ [variable1] + ... + [variableX]
And again with the squarred for Ridge. There must be a λ1 before the last bracket and λ2 for Ridge
@@perrygogas Sorry! My notation is super sloppy here. There should be brackets around all of the variables. So it should be lambda1 * [ |v1| + |v2| + ...] + lambda2 * [ v1^2 + v2^2 + ...]
@@statquest Great!!! thank you!!! you are the best!!!
Notes:
- The hybrid Elastic-Net Regression is especially good at dealing with situations when there are correlations between parameters.
- Lasso Regression tends to pick just one of the correlated items and eliminates the others
- Ridge Regression tends to shrink all the parameters for the correlated variables together
- By combining Lasso and Ridge regression, Elastic-Net Regression groups and shrinks the parameters associated with the correlated variables and leaves them in equation or removes them all at once.
yep
Thank you StatQuest...awesome series :)
Can you do videos on time series methods as well ...clearly explained :P
You're welcome! I'll add time-series to the to-do list. The more people that ask for it, the more I'll move it up the list. :)
@@statquest Thanks for the video lectures josh sir , I am also waiting for timeseries forecasting classes
@@statquest it would be great if u do it
@@saikumartadi8494 Your vote has been noted and I bumped time series up on the list. :)
@@statquest awaiting for the video :)
Thanks so much for this video!! I have a quick question if I may. Didn't u mention in the last video that the lamda for ridge can be close to 0 but never equals 0? I was confused in the part where you say lamda 2 in the elastic-net regression can be 0 which makes it a lasso regression. Thank you in advance for your explanation. :)
I think you confused lambda for the parameter estimates. With Ridge Regression, the parameter estimates can be close to 0, but not equal to 0. However, lambda can be any value >= 0, and the value is determined using cross-validation.
Hello @Josh Starmer,
Thank you for your videos, so easy to understand.
But we are talking about Elastic_net (also Ridge/Lasso) technical in Regression model.
So how about others model? They can apply to solve overfitting situation as Regression!
Yes. Ridge, Lasso and Elastic net style penalties can be added to all kinds of models.
@@statquest all kinds of models with same formulars as Regression?
@@tanphan3970 No, pretty much any formula will work. For example, regularization can be applied to Neural Networks, which are very different.
Thank you for the tutorial. One thing I don't get is why Elastic Net can remove some variables. It has the component of Ridge regression, so a variable won't be removed all together. How come?
Hey Josh great video as usual ! I have a question for you, grateful if you can answer
Let’s say I do a market mix modelling and I have closer to 250 variables and closer to 180 line items, which of these would be most suitable.
Info about data
A lot of these variables are super correlated, but I cannot afford to drop anyone off then since I need to present contribution of every channel to the business and they are naturally Co related since spending from business usually happens in clusters and are similar for similar channels like Facebook and Instagram.
Any pointers on these will be very useful thanks!
Try just using Ridge Regression and see how that works.
Thanks, I ended up googling that airspeed of a swallow thing and watching a Monty Python scene instead of learning how to do elastic net lol
:)
Thanks a lot for your great videos.
I don't understand why use Lasso reg or Ridge reg when we can use Elastic-Net reg?
What is the draw back of Elastic Neg regression?
None that I know of. However, not every ML method implements the full elastic net.
@@statquest Thanks!
I don't get why you don't get more thumbs up...
Great show, thanks again
I want to know something. Minimum sample size for ridge and lasso is?. I have checked tons of papers, where some journals use at least 4, and others use 30, and others requires to estimate (like Greenes) for about 250 observatoins. Would this change with ridge and lasso regressions?
Sir your videos are amazing. I have a question though. In case of deep neural networks why make the model complex and then add regularization or dropout, isn't a better idea not to create the problem at the first place that is not make the model complex? And if the the model is overfitting, shouldn't trying to reduce the complexity of the model be the solution?
Neural Networks are a little bit like black boxes and it's hard to know what they are doing - so it's hard to know if the model is "simple" or "complex". So, with NNs, regularization can just deal with the overfitting problem without you having to worry too much about the model.
you save my life
:)
Thanks for the clearly explanation, so since elastic regression is the best, should we just use elasitc regression every time instead of using lasso or ridge?
Yes, because you can use Elastic Net to be pure Lasso or pure Ridge, and everything in between, so you can have it all.
Statquest staaaaat quest whaaat are we learning today....
Looks like Elastic Net! :)
Hi Josh, great video! There's just one thing that I'm confused about. I understand that Elastic-Net is meant to provide the best of both worlds out of Lasso and Ridge regression but I'm struggling to get my head around what this means. You said that
"Elastic-Net regression - groups and shrinks the parameters associated with the correlated variables and leaves them in the equation or removes them all at once".
What's the advantage to keeping all of the correlated variables in the equation? I thought that this was a bad thing to do since they are likely providing the same information to the model more than once. Also, does Lasso always keep a single variable of a correlated variable group, even if the group doesn't actually help at all to make predictions?
This is a great question, and there may be more than one good answer. However, here's my take on it. In a pure "machine learning" setting, retaining correlated variables my not be very useful, but in a research setting, it is very useful. If you have thousands of variables, it my be very useful to see which groups of variables are correlated because that could give you insight into your data that you didn't have before. Does that make sense?
And if a variable or a group of correlated variables are not useful, then the corresponding coefficients will shrink, all of them.
@@statquest Thanks for the quick answer. I can understand why this would be useful in a research setting but surely the purpose of regularization is to find the best set of parameter values to model the function? By holding onto these variables, I can only see them having a negative effect on the optimality of the model
@@maskew So true! So I Iooked into this, and the answer is that correlated variables don't get in the way of predictions. They get in the way of trying to make sense of the effect of each variable on the prediction, but not in making the prediction itself. Said another way, if we used elastic-net regression and left a group of correlated variables in the model, we could conclude that they helped make good predictions, but we would not be able to make any conclusions about relationship between any one variable and the predicted response based on the coefficients. For more details, see point 5 on this page: newonlinecourses.science.psu.edu/stat501/node/346/
@@statquest Right okay that makes sense then! Thanks a lot for getting back to me
Hi everyone. Could I consider the lambda as a hyperparameter in Ridge Regression and Lasso Regression?
Yes
Why do we not use parentheses after each lambda? I got confused as we did in the two earlier videos on regularization. Thanks for helping out!
Oops. Looks like I forgot to add the parentheses. Sorry about the confusion that caused. :(
@@statquest No worries! I thank you for your keeping my motivation level up there and getting back to me so quick.
Thank you so much for this !
I just don't see when ridge can be better than lasso ?
This is a good question. There are a few things that Ridge is better at than Lasso. Ridge tends to do better when there were more variables than data. And if there are high correlations in the data, then Ridge can do better than Lasso when there is more data than the number of variables.
For more details, check out this website: www4.stat.ncsu.edu/~post/josh/LASSO_Ridge_Elastic_Net_-_Examples.html
...and check out the original Elastic-Net publication: web.stanford.edu/~hastie/Papers/B67.2%20%282005%29%20301-320%20Zou%20&%20Hastie.pdf
hey man, might you be able to do a wee vid on z-score?
Yep! I can do that fairly soon.
@@statquest awesome Josh!
hi , u mentioned that best lambda1 and lambda 2 we can find by cross validation.
for cross vaildation do we need to write a seperate code or it is done by elastic net by its own???
It's done in the code. See: ruclips.net/video/ctmNq7FgbvI/видео.html
So will Lasso remove the highly correlated ones in elastic net regression or will the combined effect of both lasso and ridge will just shrink the highly correlated features ? I am still unclear on that ? Who wins in terms of handling the correlated features ? Lsso or Ridge ?
It depends on how you configure it. For more details, see: ruclips.net/video/ctmNq7FgbvI/видео.html
sir, i am confused the if regression analysis I did is correct or not?
Dear Josh, thank you so much for making life easier for us, if you believe in heaven you will be one the firsts in (lol). A question, how does the Lasso eliminate one of the correlated variables? lets say i have two identical variables v1 and v2 (with 100% correlation), how does the lasso work on them? thank you in advance
Presumably, if you increase lambda enough, one parameter will go to 0.
Lasso does the job of shrinking the coefficients AND removing the useless parameters right?
In this video I show the roles that both Ridge and Lasso play in Elastic Net: ruclips.net/video/ctmNq7FgbvI/видео.html
Thanks. But what if we want to estimate a variable from only one variable , does using elastic net regression improve the results? I already used Ols , r_aquared =0.65 with rms=0.04. How to improve the model?
For details on the pros/cons of elastic vs ridge vs lasso, see: ruclips.net/video/ctmNq7FgbvI/видео.html
Hi Josh, Thank you for the StatQuest. I am still slightly confused as how Elastic Net would improve the correlation between variables.
I get that
1) lasso regression would bring variable's weights or parameters to 0 if they are useless
2) ridge regression would not be able to do that but can improve the parameter's influence on the graph more than lasso
but I am still confused on the idea of correlation of variables for the lasso+ridge combination
For more details, see: ruclips.net/video/ctmNq7FgbvI/видео.html
@@statquest thanks for the answer :D, I was thinking of skipping this since it was coded in R and i don't know R but I will watch it :D
@@shoto6018 You can ignore the details about R and focus on the results.
can you please justify that why you used mountain for ridge and loop for lasso? very curious to know, please tell
:)
Thnx sir
No problem! :)