LinearRegression,RidgeCV,LassoCV,ElasticNetCV各自使用场景
发布日期:2021-05-15 21:32:19
浏览次数:46
分类:技术文章
本文共 2110 字,大约阅读时间需要 7 分钟。
LinearRegression,RidgeCV,LassoCV,ElasticNetCV各自使用场景
概念:
#线性回归的目的是要得到输出向量Y和输入特征X之间的线性关系,求出线性回归系数θ,也就是Y=Xθ, 其中Y的维度为m x 1,X的维度为 m x n,而θ的维度为 n x 1, m代表样本个数, n代表样本特征的维度
#损失函数:损失函数是用来评价模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数 通常用L(Y,f(x))表示,损失函数越小,模型的性能就越好 ,优化方法:最小二乘法和梯度下降(scikit中采用最小二乘 ) #正则化项:为了防止损失函数过拟合的问题,一般会在损失函数中加上正则化项,增加模型的泛化能力使用场景:
- LinearRegression:只要数据线性相关,LinearRegression是我们的首选,如果发现拟合或者预测的不够好,再考虑其他的线性回归库
Pipeline([ ('poly', PolynomialFeatures()), ('linear', LinearRegression(fit_intercept=False)) ])
LinearRegression 损失函数
- RidgeCV(岭回归):只要数据线性相关,用LinearRegression拟合的不是很好,需要正则化,可以考虑使用RidgeCV回归, 如何输入特征的维度很高,而且是稀疏线性关系的话, RidgeCV就不太合适,考虑使用Lasso回归类家族
a为超参数 alphas=np.logspace(-3, 2, 50) 从给定的超参数a中选择一个最优的,logspace用于创建等比数列 本例中 开始点为10的-3次幂,结束点10的2次幂,元素个数为 50,并且从这50个数中选择一个最优的超参数 linspace创建等差数列 Ridge回归中超参数a和回归系数θ的关系,a越大,正则项惩罚的就越厉害,得到的回归系数θ就越小,最终趋近与0 如果a越小,即正则化项越小,那么回归系数θ就越来越接近于普通的线性回归系数
Pipeline([ ('Poly', PolynomialFeatures()), ('Linear', RidgeCV(alphas= np.logspace(-3, 2, 50), fit_intercept=False)) ]),
RidgeCV(岭回归)损失函数
- LassoCV:Lasso回归可以使得一些特征的系数变小,甚至还使一些绝对值较小的系数直接变为0,从而增强模型的泛化能力 使用场景:对于高纬的特征数据,尤其是线性关系是稀疏的,就采用Lasso回归,或者是要在一堆特征里面找出主要的特征,那么 Lasso回归更是首选了
a为超参数 alphas=np.logspace(-3, 2, 50) 从给定的超参数a中选择一个最优的,logspace用于创建等比数列 本例中 开始点为10的-3次幂,结束点10的2次幂,元素个数为 50,并且从这50个数中选择一个最优的超参数 linspace创建等差数列 Ridge回归中超参数a和回归系数θ的关系,a越大,正则项惩罚的就越厉害,得到的回归系数θ就越小,最终趋近与0 如果a越小,即正则化项越小,那么回归系数θ就越来越接近于普通的线性回归系数
Pipeline([ ('Poly', PolynomialFeatures()), ('Linear', LassoCV(alphas=np.logspace(-3,2,50), fit_intercept=False)) ]),
LassoCV 损失函数
- ElasticNetCV:对超参数a和p使用交叉验证,帮助我们选择合适的a和p 使用场景:ElasticNetCV类在我们发现用Lasso回归太过(太多特征被稀疏为0),而Ridge回归也正则化的不够(回归系数衰减太慢)的时候
alphas=np.logspace(-3, 2, 50), l1_ratio=[.1, .5, .7, .95, 1] ElasticNetCV会从中选出最优的 a和p Pipeline([ ('Poly', PolynomialFeatures()), ('Linear', ElasticNetCV(alphas= np.logspace(-3, 2, 50), l1_ratio=[.1, .5, .7, .95, 1], fit_intercept=False)) ])
ElasticNetCV 损失函数
转载地址:https://blog.csdn.net/qq_30868737/article/details/108365491 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月08日 06时16分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
DM工作笔记-查看会话(session)信息与关闭会话
2019-04-27
MySQL笔记-解决...mysql.sock (13)(两种情况会产生此问题)
2019-04-27
Android逆向笔记-通过字符串定位跳转点
2019-04-27
Web前后端笔记-通过对称加密算法和信息摘要算法防止数据重放
2019-04-27
Qt笔记-进程只能存在1个(Linux适用,Windows有思路)
2019-04-27
Spring Boot笔记-@Qualifier与@Autowired与@Bean
2019-04-27
Python&Rabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费
2019-04-27
Qt文档阅读笔记-Object Model初步解析
2019-04-27
Linux笔记-centos7编译安装svn 1.14.1
2019-04-27
Linux笔记-SVN(subversion)创建仓库及客户端连接及文件回滚
2019-04-27
Spring Boot笔记-@ComponentScan初步解析
2019-04-27
Spring Boot文档阅读笔记-Spring Boot @Bean解析
2019-04-27
VMWare笔记-解决虚拟机能ping通主机能上网,但主机ping不通虚拟机(含思路)
2019-04-27
Spring Boot笔记-banner.txt的使用
2019-04-27
Spring Boot笔记-自定义配置项默认值设置
2019-04-27