逻辑回归调优方向
线性不可分的问题
线性不可分问题解决思路通过:将低维度问题转化成高维度问题,低维空间的非线性问题,到了高维空间往往会成为线性问题。
调整分类阈值调优
某些场景下,逻辑回归默认分类阈值是0.5,但是在某些场景下该默认阈值并不适用,例如得癌症,调整阈值为0.3比较靠谱。
鲁棒性调优
鲁棒是Robust的音译,也就是健壮和强壮的意思,比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能不死机、不崩溃,就是该软件的鲁棒性,那么算法的鲁棒性就是指这个算法的抗干扰能力强。逻辑回归的决策边界 如下(当维度只有两个时,决策边界是一条直线):
第一个模型相对于第二个来说各个维度的权重相对来说小,当遇到数据有噪声时,抗干扰的能力强,数据扰动小。比如:当 时,第一个模型结果为90.3,第二个模型结果为903。当 有数据噪声时,第一个模型结果为94.3,数据扰动为4,第二个模型结果为943,数据扰动为40。
可见模型维度权重小的模型抗干扰能力强,并不是模型维度权重越小,模型越好,如果模型权重很小,很小,那么模型受各个维度值变化的影响非常小,只与 参数有关,与其他维度的权重没有关系,所有训练数据和测试数据都会得到相同的结果,那就是欠拟合的状态。如果模型维度权重太大,维度又多,这种模型当数据改变一点,扰动也大,对训练数据拟合的好,当测试数据本身改变一点时,变化也大,反而成了一种过拟合的状态。
1、解决权重过高引起的过拟合或者权重过低引起的欠拟合方法
无论是欠拟合或者过拟合模型都无法泛化(模型能够应用到新样本的能力)到新的样本数据,无法预测准确的值。各个维度的值偏大容易过拟合(一般过多的维度特征,很少的训练数据集,容易导致过拟合出现),各个维度的值偏小容易欠拟合,可见维度的权重不能太大,也不能太小,如何得到一组比较合适的权重值?这里就需要使用正则化。
- 范数比较好的解释
刚学了矩阵论。。。其实也不知道正不正确。就是我是类比了以前学过的平均数概念,平均数不是有几何平均数,算术平均数巴拉巴拉一堆么,但是都是用来度量一个整体的平均水平,只不过是用在了不同的地方。范数我觉得也是这样,什么一范数二范数也是用来度量一个整体,比如两个个班的人比较高度,你可以用班里面最高的人(向量无穷范数)去比较,也可以用班里所有人的身高总和比较(向量一范数),也可以求平均(几何平均?忘记了。。)(类似向量二范数)。所以我认为范数就是一种度量方式。至于矩阵范数和向量范数,你可以把向量范数认为是长度为一的矩阵范数的特例,然后由于经常用,所以人们就单独把向量范数拿出来专门探究他的性质(当然,在推导过程里面一般都是通过研究简单的,如向量,在扩展到困难的,如矩阵)声明,以上都是我的主观臆测,很可能不对,如果错了请告诉我,谢啦~
这里范数表示一种整体矩阵的度量方式。
- 范数的使用,lamda可以为0.3,0.4最好
范数是整体解范围的一个度量,当进行计算损失函数的时候,原始loss减少了,如果整体姐空间第二范数过大也就是方差可能过大,存在过大的值的时候,就会导致loss变大,loss会朝着,w的第二范数减少的方向进行修改,从而限制解空间的,整体方差或者权值出现过大。优化过拟合的过程。
2、归一化对权值造成影响的数据
老虎数量 麻雀数量 是否污染
2 50640 1
3 55640 0
1 62020 0
0 54642 1
如图,要预测某区域是否污染,有两个维度特征:老虎数量和麻雀数量。这两个维度特征的量级不同,会导致训练出来模型中老虎这个特征对应的w参数大,而麻雀数量这个特征对应的w参数小,容易导致参数小的特征对目标函数的影响被覆盖,所以需要对每个特征的数据进行归一化处理,以减少不同量级的特征数据覆盖其他特征对目标函数的影响。
这里数据量级不一样对最后的权值造成影响,对某些特征的w会极其小,某些特征的w极其大,影响逻辑回归模型的鲁棒性。归一化数据可以使各个特征维度对目标函数的影响权重一致,提高迭代的求解的收敛速度。
- 归一化的方式极其特点。
最大最小值归一化: ,缺点是抗干扰能力弱,受离群值影响比较大,中间容易没有数据。最大最小值归一化后的数据落在[0,1]之间。假设某个特征下有一组数据:1,2,3,4,5,100那么对数据使用最大最小值归一化后的值为:0,2/99,3/99,4/99,1。中间没有数据,受离群值100的影响大。
方差归一化: ,其中u是样本的均值, 是样本的标准差(方差的开方,方差:所有点与均值的差值平方和)。方差归一化抗干扰能力强,和所有数据有关,求标准差需要所有的值介入,若有离群值,会被抑制下来。但是归一化后的数据最终的结果不一定落在0到1之间。
注意:理论上一个模型算法如果拿到训练集所有的特征一起训练模型就要归一化数据。决策树算法可以不归一化数据。
均值归一化与逻辑回归
逻辑回归训练方法对比,哪些会自动归一化,哪些需要单独专门归一化
训练逻辑回归的方法有:SGD和L-BFGS,两者的区别为:
SGD:随机从训练集选取数据训练,不归一化数据,需要专门在外面进行归一化,支持L1,L2正则化,不支持多分类。
L-BFGS:所有的数据都会参与训练,算法融入方差归一化和均值归一化。支持L1,L2正则化,支持多分类。