跳到主要内容

LightGBM回归模板

LightGBM回归模板
**回归问题
分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说是连续变量预测。
我们做线性回归是为了得到一个最优回归系数向量w使得当我们给定一个x能够通过y=xw预测y的值。假定输入数据存放在矩阵 X 中,而回归系数存在在向量 w 中。那么对于给定的数据X1,预测结果将会通过Y1=XT1w给出。
那么怎样的w才是最优的呢?在标准线性回归中我们需要找到是误差最小的w, 即预测的y值与真实的y值之间的差值,为了避免简单累加造成的正负差值相互抵消,这里采用了平方误差:12.png 用矩阵可表示为:(y-Xw)T(y-Xw),)因为要求函数的极小值,对w求导可得:13.png

使其等于0,便可求出W的最优解:14.png 上述求w最优解的方法也叫做最小二乘法。
需要注意的是,上述公式中包含(XTX)-1,也就是需要对矩阵求逆,因此这个方程只有在逆矩阵存在的时候有用,所以我们写代码时必须需要事先确定矩阵是否可逆。
此外,我们知道线性回归的方程的一般形式为:y=wx+b;即存在一定的偏移量b,于是,我们可以将回归系数和特征向量均增加一个维度,将函数的偏移值b也算作回归系数的一部分,占据回归系数向量中的一个维度,比如w=(w1,w2,...,wN,b)。相应地,将每条数据特征向量的第一个维度设置为1.0,即所有特征向量的第一个维度值均为1.0,这样,最后得到的回归函数形式为y=w[0]+w[1]_x1+...+w[N]_xN.

LightGBM原理
LightGBM是一个用于梯度增强机器学习的开源框架。默认情况下,LightGBM将训练一个梯度增强决策树(GBDT),但它也支持随机森林、DART回归树和基于梯度的单边抽样(Goss)。 该框架速度快,专为分布式训练设计。它支持大规模的数据集和GPU上的训练。在许多情况下,LightGBM被发现比XGBoost更精确、更快,尽管这与需要解决的问题有关。 LightGBM和XGBoost都得到了广泛的应用,并提供了高度优化的、可伸缩的和快速的梯度增强机(GBMs)实现。

Gradient Boosting原理
在考虑集成学习时,主要有两种方法:bagging和boosting。bagging包括对许多独立模型的训练,并通过某种形式的聚合(平均、投票等)将它们的预测组合起来。bagging的一个例子是随机森林。 boosting按顺序训练模型,其中每个模型都从前一个模型的错误中学习。从一个弱基模型开始,对模型进行迭代训练,每个模型都加入到前一个模型的预测中,从而产生一个较强的整体预测。

模板流程15.png

参数设置
数据拆分(CSV):数据1比重:0.2 数据2比重:0.816.png K折交叉验证(KFold):nSplits:317.png

网格搜索(GridSearchCV):Param Grid:{“nestimators”:[100,200,500,1000]} 记分函数:r218.png字段选择
特征字段: CRIM,ZN,INDUS,CHAS,NOX,RM,AGE,DIS,RAD,TAX,PTRATIO,B,LSTAT
标识字段: MEDV19.png
参数设置与字段选择根据不同的数据集灵活设置

_