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中采用最小二乘 )
#正则化项:为了防止损失函数过拟合的问题,一般会在损失函数中加上正则化项,增加模型的泛化能力

使用场景:

  1. LinearRegression:只要数据线性相关,LinearRegression是我们的首选,如果发现拟合或者预测的不够好,再考虑其他的线性回归库
Pipeline([                      ('poly', PolynomialFeatures()),                      ('linear', LinearRegression(fit_intercept=False))                ])

LinearRegression 损失函数

在这里插入图片描述

  1. 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(岭回归)损失函数

在这里插入图片描述

  1. 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 损失函数

在这里插入图片描述

  1. 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Lasso模型原理及代码实现-python3
下一篇:数据标准化简单处理、归一化、正态化-python3

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月08日 06时16分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

MySQL笔记-MySQL5.7解决root创建用户出现ERROR 1044(42000): Access denied for user 2019-04-27
DM工作笔记-查看会话(session)信息与关闭会话 2019-04-27
MySQL笔记-解决...mysql.sock (13)(两种情况会产生此问题) 2019-04-27
Android逆向笔记-通过字符串定位跳转点 2019-04-27
Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证 2019-04-27
Web前后端笔记-通过对称加密算法和信息摘要算法防止数据重放 2019-04-27
Qt笔记-进程只能存在1个(Linux适用,Windows有思路) 2019-04-27
Spring Boot笔记-@Qualifier与@Autowired与@Bean 2019-04-27
Python笔记-uiautomator2环境搭建(安卓模拟器测试环境+windows开发环境) 2019-04-27
Python&Rabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费 2019-04-27
Spring Boot笔记-利用Quartz进行定时任务,利用websocket推送到浏览器(界面为thymeleaf) 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文档阅读比较-@SpringBootApplication Auto Configuration 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