如何为回归问题,选择最合适的机器学习方法?

2019 年 4 月 16 日 人工智能头条


在目前的机器学习领域中,最常见的三种任务就是:回归分析、分类分析、聚类分析。在之前的文章中,我曾写过一篇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算法之心


登录查看更多
2

相关内容

【经典书】机器学习:贝叶斯和优化方法,1075页pdf
专知会员服务
389+阅读 · 2020年6月8日
【经典书】机器学习高斯过程,266页pdf
专知会员服务
192+阅读 · 2020年5月2日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
330+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
347+阅读 · 2020年2月15日
【华侨大学】基于混合深度学习算法的疾病预测模型
专知会员服务
96+阅读 · 2020年1月21日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
一文读懂线性回归、岭回归和Lasso回归
CSDN
33+阅读 · 2019年10月13日
一文读懂机器学习模型的选择与取舍
DBAplus社群
13+阅读 · 2019年8月25日
博客 | 回归类算法最全综述及逻辑回归重点讲解
AI研习社
13+阅读 · 2018年11月29日
如何选择合适的损失函数,请看......
人工智能头条
8+阅读 · 2018年6月20日
用Python实现线性回归,8种方法哪个最高效?
七月在线实验室
7+阅读 · 2018年4月19日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
解决机器学习问题有通法!看这一篇就够了!
大数据文摘
4+阅读 · 2017年9月18日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
Arxiv
4+阅读 · 2018年3月19日
Arxiv
4+阅读 · 2017年7月25日
VIP会员
相关VIP内容
【经典书】机器学习:贝叶斯和优化方法,1075页pdf
专知会员服务
389+阅读 · 2020年6月8日
【经典书】机器学习高斯过程,266页pdf
专知会员服务
192+阅读 · 2020年5月2日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
330+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
347+阅读 · 2020年2月15日
【华侨大学】基于混合深度学习算法的疾病预测模型
专知会员服务
96+阅读 · 2020年1月21日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
相关资讯
一文读懂线性回归、岭回归和Lasso回归
CSDN
33+阅读 · 2019年10月13日
一文读懂机器学习模型的选择与取舍
DBAplus社群
13+阅读 · 2019年8月25日
博客 | 回归类算法最全综述及逻辑回归重点讲解
AI研习社
13+阅读 · 2018年11月29日
如何选择合适的损失函数,请看......
人工智能头条
8+阅读 · 2018年6月20日
用Python实现线性回归,8种方法哪个最高效?
七月在线实验室
7+阅读 · 2018年4月19日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
解决机器学习问题有通法!看这一篇就够了!
大数据文摘
4+阅读 · 2017年9月18日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
Top
微信扫码咨询专知VIP会员