摘要:对于数据挖掘项目,本文将学习如何建模调参?从简单的模型开始,如何去建立一个模型;如何进行交叉验证;如何调节参数优化等。
建模调参: 特征工程也好,数据清洗也罢,都是为最终的模型来服务的,模型的建立和调参决定了最终的结果。模型的选择决定结果的上限, 如何更好的去达到模型上限取决于模型的调参。
数据及背景
阿里天池-零基础入门数据挖掘: tianchi.aliyun.com/competition…
理论简介
模型调参基于特征工程所构建的模型上限来优化模型。由于模型的不同和复杂度,模型的参数数量也都不一样。线性模型需要调整正则化的系数,而对于非线性模型,例如随机森林和LGB等模型,需要调节的参数增多。
模型调参的目的就是提升模型的性能度量。对于回归算法,我们要降低模型在未知的数据上的误差;对于分类算法,我们要提高模型在未知数据上的准确率。
知识总结
回归分析
回归分析是一种统计学上分析数据的方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学模型。以便通过观察特定变量(自变量),来预测研究者感兴趣的变量(因变量)
一般形式:
如果公式查看不了,请查看原文【文章原文】
向量形式:
其中 向量代表一条样本 ,其中 代表样本的各个特征, 是一条向量代表了每个特征所占的权重,b是一个标量代表特征都为0时的预测值,可以视为模型的basis或者bias。
损失函数 我们希望的是能够减少在测试集上的预测值 与真实值 的差别,从而获得一个最佳的权重参数,因此这里采用最小二乘估计。
长尾分布
这种分布会使得采样不准,估值不准,因为尾部占了很大部分。另一方面,尾部的数据少,人们对它的了解就少,那么如果它是有害的,那么它的破坏力就非常大,因为人们对它的预防措施和经验比较少。
欠拟合与过拟合
欠拟合: 训练的模型在训练集上面的表现很差,在验证集上面的表现也很差。即训练误差和泛化误差都很大。原因:
- 模型没有很好或足够数量的训练训练集
- 模型的训练特征过于简单
过拟合: 模型的训练误差远小于它在测试数据集上的误差。即训练误差不错,但是泛化误差比训练误差相差太多。原因:
- 模型没有很好或足够数量的训练训练集
- 训练数据和测试数据有偏差
- 模型的训练过度,过于复杂,没有学到主要的特征
由此引出模型复杂度概念模型中的参数,一个简单的二元线性的函数只有两个权重,而多元的复杂的函数的权重可能会什么上百上千个。
模型复杂度太低(参数过少),模型学习得太少,就难以训练出有效的模型,便会出现欠拟合。模型复杂度太高(参数很多),即模型可训练空间很大,容易学习过度,甚至于也将噪声数据学习了,便会出现过拟合。
正则化
损失函数后面会添加一个额外项,称作 L1正则化 和 L2正则化,或者 L1范数和 L2范数。
L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。
L1正则化模型:
L2正则化模型:
正则化说明:
- L1正则化是指权值向量 中各个元素的绝对值之和,通常表示为
- L 2正则化是指权值向量 中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号)
正则化作用:
- L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
- L2正则化可以防止模型过拟合(overfitting)
调参方法
贪心调参 (坐标下降)
坐标下降法是一类优化算法,其最大的优势在于不用计算待优化的目标函数的梯度。最容易想到一种特别朴实的类似于坐标下降法的方法,与坐标下降法不同的是,不是循环使用各个参数进行调整,而是贪心地选取了对整体模型性能影响最大的参数。参数对整体模型性能的影响力是动态变化的,故每一轮坐标选取的过程中,这种方法在对每个坐标的下降方向进行一次直线搜索(line search)
网格调参GridSearchCV
作用是在指定的范围内可以自动调参,只需将参数输入即可得到最优化的结果和参数。相对于人工调参更省时省力,相对于for循环方法更简洁灵活,不易出错。
贝叶斯调参
贝叶斯优化通过基于目标函数的过去评估结果建立替代函数(概率模型),来找到最小化目标函数的值。贝叶斯方法与随机或网格搜索的不同之处在于,它在尝试下一组超参数时,会参考之前的评估结果,因此可以省去很多无用功。
超参数的评估代价很大,因为它要求使用待评估的超参数训练一遍模型,而许多深度学习模型动则几个小时几天才能完成训练,并评估模型,因此耗费巨大。贝叶斯调参发使用不断更新的概率模型,通过推断过去的结果来“集中”有希望的超参数。
建模与调参
线性回归
模型建立
先使用线性回归来查看一下用线性回归模型来拟合我们的题目会有那些缺点。这里使用了 sklearn 的 LinearRegression。