如何为回归问题,选择最合适的机器学习方法?
在目前的机器学习领域中,最常见的三种任务就是:回归分析、分类分析、聚类分析。在之前的文章中,我曾写过一篇《sklearn 与分类算法》。那么什么是回归呢?
回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。
回归分析在机器学习领域应用非常广泛,例如,商品的销量预测问题,交通流量预测问题。那么,如何为这些回归问题选择最合适的机器学习算法呢?
01
常用回归算法
这里介绍一些回归问题中常用的机器学习方法,sklearn 作为机器学习中一个强大的算法包,内置了许多经典的回归算法,下面将一一介绍各个算法:
1. 线性回归
线性回归拟合一个带系数的线性模型,以最小化数据中的观测值与线性预测值之间的残差平方和。
sklearn 中也存在线性回归的算法库的接口,代码示例如下所示:
2. 岭回归
上述的线性回归算法使用最小二乘法优化各个系数,对于岭回归来说,岭回归通过对系数进行惩罚(L2范式)来解决普通最小二乘法的一些问题。
例如,当特征之间完全共线性(有解)或者说特征之间高度相关,这个时候适合用岭回归。
3. Lasso 回归
Lasso 是一个估计稀疏稀疏的线性模型。它在某些情况下很有用,由于它倾向于选择参数值较少的解,有效地减少了给定解所依赖的变量的数量。
Lasso 模型在最小二乘法的基础上加入L1范式作为惩罚项。
4. Elastic Net 回归
Elastic Net 是一个线性模型利用L1范式和L2范式共同作为惩罚项。这种组合既可以学习稀疏模型,同时可以保持岭回归的正则化属性。
5. 贝叶斯岭回归
贝叶斯岭回归模型和岭回归类似。贝叶斯岭回归通过最大化边际对数似然来估计参数。
6. SGD 回归
上述的线性模型通过最小二乘法来优化损失函数,SGD 回归也是一种线性回归,不同的是,它通过随机梯度下降最小化正则化经验损失。
7. SVR
众所周知,支持向量机在分类领域应用非常广泛,支持向量机的分类方法可以被推广到解决回归问题,这个就称为支持向量回归。
支持向量回归算法生成的模型同样地只依赖训练数据集中的一个子集(和支持向量分类算法类似)。
8. KNN 回归
在数据标签是连续变量而不是离散变量的情况下,可以使用 KNN 回归。分配给查询点的标签是根据其最近邻居标签的平均值计算的。
9. 决策树回归
决策树也可以应用于回归问题,使用 sklearn 的 DecisionTreeRegressor 类。
10. 神经网络
神经网络使用 slearn 中 MLPRegressor 类实现了一个多层感知器(MLP),它使用在输出层中没有激活函数的反向传播进行训练,也可以将衡等函数视为激活函数。
因此,它使用平方误差作为损失函数,输出是一组连续的值。
11. RandomForest 回归
RamdomForest 回归也是一种经典的集成算法之一。
12. XGBoost 回归
XGBoost 近些年在学术界取得的成果连连捷报,基本所有的机器学习比赛的冠军方案都使用了 XGBoost 算法,对于 XGBoost 的算法接口有两种,这里我仅介绍 XGBoost 的 sklearn 接口。
更多请参考:
https://xgboost.readthedocs.io/en/latest/python/index.html
13. LightGBM 回归
LightGBM 作为另一个使用基于树的学习算法的梯度增强框架。在算法竞赛也是每逢必用的神器,且要想在竞赛取得好成绩,LightGBM是一个不可或缺的神器。
相比于 XGBoost,LightGBM 有如下优点,训练速度更快,效率更高效;低内存的使用量。
对于 LightGBM 的算法接口有两种,这里我同样介绍 LightGBM 的 sklearn 接口。
更多请参考:
https://lightgbm.readthedocs.io/en/latest/
02
回归竞赛问题以及解决方案
为了方便小伙伴们练习机器学习中的相关项目,这里整理一些回归竞赛问题,帮助入门机器学习的小伙伴们更加深入的掌握机器学习中的回归问题。
入门级比赛:
1. Kaggle——房价预测
这个比赛作为最基础的回归问题之一,很适合入门机器学习的小伙伴们。
网址:
https://www.kaggle.com/c/house-prices-advanced-regression-techniques
经典解决方案:
1. XGBoost 解决方案:
https://www.kaggle.com/dansbecker/xgboost
2. Lasso 解决方案:
https://www.kaggle.com/mymkyt/simple-lasso-public-score-0-12102
进阶比赛:
1. Kaggle——销售量预测
这个比赛作为经典的时间序列问题之一,目标是为了预测下个月每种产品和商店的总销售额。
网址:
https://www.kaggle.com/c/competitive-data-science-predict-future-sales
经典解决方案:
LightGBM:
https://www.kaggle.com/sanket30/predicting-sales-using-lightgbm
XGBoost:
https://www.kaggle.com/fabianaboldrin/eda-xgboost
第一名解决方案:
https://www.kaggle.com/c/competitive-data-science-predict-future-sales/discussion/74835#latest-503740
TOP 比赛方案:
1. Kaggle——餐厅访客预测
网址:
https://www.kaggle.com/c/recruit-restaurant-visitor-forecasting
解决方案:
1st 方案:
https://www.kaggle.com/plantsgo/solution-public-0-471-private-0-505
7th 方案:
https://www.kaggle.com/c/recruit-restaurant-visitor-forecasting/discussion/49259#latest-284437
8th 方案:
https://github.com/MaxHalford/kaggle-recruit-restaurant
12th 方案:
https://www.kaggle.com/c/recruit-restaurant-visitor-forecasting/discussion/49251#latest-282765
2. Kaggle——CorporaciónFavoritaGrocery 销售预测
网址:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting
解决方案:
1st 方案:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting/discussion/47582#latest-360306
2st 方案:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting/discussion/47568#latest-278474
3st 方案:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting/discussion/47560#latest-302253
4st 方案:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting/discussion/47529#latest-271077
5st 方案:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting/discussion/47556#latest-270515
6st 方案:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting/discussion/47575#latest-269568
作者:何从庆,湖南大学计算机硕士,主要研究方向:机器学习与法律智能。
Github主页:
https://github.com/hecongqing
微信公众号: AI算法之心
如何为回归问题,选择最合适的机器学习方法?相关推荐
- 残差平方和ssr的计算公式为_如何为你的回归问题选择最合适的机器学习方法?...
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 转自 | AI算法之心(公众号ID:AIHeartForYou) 作者 | 何从庆 什么是回归呢?回归 ...
- 如何为回归问题选择最合适的机器学习方法?
作者 | 何从庆 本文经授权转载自 AI算法之心(id:AIHeartForYou) 在目前的机器学习领域中,最常见的三种任务就是:回归分析.分类分析.聚类分析.在之前的文章中,我曾写过一篇<1 ...
- 如何为你的回归问题选择最合适的机器学习方法?
本文作者:何从庆 在目前的机器学习领域中,最常见的三种任务就是:回归分析.分类分析.聚类分析.在之前的文章中,我曾写过一篇<15分钟带你入门sklearn与机器学习--分类算法篇>.那么什 ...
- 入门 | 如何为你的回归问题选择最合适的机器学习方法?
点击"小詹学Python","星标"或"置顶" 关键时刻,第一时间送达 本文转载自"AI算法之心" 在目前的机器学习领域 ...
- 如何为你的回归问题选择最合适的机器学习算法?
当我们要解决任意一种机器学习问题时,都需要选择合适的算法.在机器学习中存在一种"没有免费的午餐"定律,即没有一款机器学习模型可以解决所有问题.不同的机器学习算法表现取决于数据的大小 ...
- 一份关于如何为回归任务选择机器学习算法指南
摘要: 本文总结了一些针对于回归问题的机器学习方法,辩证地分析了其各自的优缺点,读者可以根据具体问题选择合适的机器学习算法以完成相应的任务. 当遇到任何类型的机器学习(ML)问题时,可能会有许多不同的 ...
- Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略
Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...
- 当我们拿到数据进行建模时,如何选择更合适的算法?
[每日一问]当我们拿到数据进行建模时,如何选择更合适的算法? Datawhale优秀回答者:mashagua,金小楗 目标导向 机器学习 1.先看是分类问题还是回归问题(分类就先从常用的分类模型里选择 ...
- r语言electricity数据集_R语言多元逐步回归模型分析房价和葡萄酒价格:选择最合适的预测变量...
包含更多的预测变量不是免费的:在系数估算的更多可变性,更难的解释以及可能包含高度依赖的预测变量方面要付出代价.确实, 对于样本大小 ,在线性模型中可以考虑 的预测变量最大数量为 p .或等效地,使用 ...
最新文章
- 面试官:说一下线程池内部工作原理?
- .net工具类 分享一个简单的随机分红包的实现方式
- Go 语言新提案:添加模糊测试支持
- PageHelper工作原理
- Circle and Points POJ - 1981(单位圆覆盖最多点)
- c语言如何把变量按位颠倒,求答案,用C语言编程,用户输入一个正整数,把他的各位数字前后颠倒,并输入点到后的结果...
- excel制作一个信息录入系统_制作Excel仓库入库单,一键完成数据录入、计算及保存操作...
- 信息学奥赛一本通(1018:其他数据类型存储空间大小)
- 微信备注加个b什么意思_B站开通微信视频号,这意味着什么?!
- bzoj3601 一个人的数论 (拉格朗日插值求系数)
- 拆分窗口QSplitter
- HtmlTextWriter类的学习
- IPVS和Nginx两种WRR负载均衡算法详解
- 全网首发:修改完善FreeSwitch的Banner功能
- Leetcode-Implement strStr()-Python
- 【渝粤题库】陕西师范大学200061语言学概论作业(高起本、专升本)
- 计算机word加边框,Word2010怎样为段落加上边框
- 小米深圳通服务器维护中,小米已开通深圳通功能 换手机还能退钱移卡
- Xilinx FPGA “打一拍”“打两拍”以及IOB含义
- 1313. 老曹骑士 TJ