一、线性回归
1. 定义
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
单变量情形:y=ax+b,b为误差服从均值为0的正态分布。
多变量情形:
2. 损失函数
要找到最好的权重/参数[θo,…θn]= θ
那怎么去衡量“最好”呢?
把x到y的映射函数f记作θ的函数hθ(x)
定义损失函数为:
最小化损失函数可得最优值。
3. 梯度下降
逐步最小化损失函数的过程,如同下山,找准方向(梯度),每次迈进一小步,直至山底。
假如现在有n个特征/变量xj(j=1…n),则
4. 过拟合与正则化
欠/过拟合
过拟合问题:如果我们有特别多的特征,我们的假设函数曲线可以对原始数据拟合得非常好(J(θ)≈0 ),但丧失了一般性,从而导致对新给的待预测样本,预测效果差。
正则化
- 正则化就是对最小化经验误差函数上加约束,这样的约束可以解释为先验知识(正则化参数等价于对参数引入先验分布)。约束有引导作用,在优化误差函数的时候倾向于选择满足约束的梯度减少的方向,使最终的解倾向于符合先验知识(如一般的l-norm先验,表示原问题更可能是比较简单的,这样的优化倾向于产生参数值量级小的解,一般对应于稀疏参数的平滑解)。
- 同时,正则化解决了逆问题的不适定性,产生的解是存在,唯一同时也依赖于数据的,噪声对不适定的影响就弱,解就不会过拟合,而且如果先验(正则化)合适,则解就倾向于是符合真解(更不会过拟合了),即使训练集中彼此间不相关的样本数很少。
二、逻辑回归
1. 定义
逻辑(logistic)回归是一种广义的线性回归分析模型。有时候需要解决分类问题。
明明对离散值预测(分类),为啥叫回归?——归功于sigmoid函数:
2. 损失函数
损失函数J(θ)非凸,
我们希望它是凸函数:
故有:
则:
3. 梯度下降与正则化
梯度下降求最小值:
三、工程应用经验
1. 关于样本的处理
(1)样本量太大怎么办?
离散化后用one-hot编码处理成0, 1值
如果要用连续值,注意做scaling
试试spark MIIib
试试采样(注意采样方式:日期or用户or行为)
(2)注意样本的平衡
对样本分布敏感
下采样(样本量足的情况下),上采样(样本数量不太足)
修改loss function, 给不同权重
采样后的predict结果,用作排序0K, 用作判定请还原
2. 关于特征的处理
(1)离散化
映射到高维空间,用linear的LR(快,且兼具更好的分割性)
稀疏化,0, 1向量内积乘法运算速度快,计算结果方便存储,容易扩展;
离散化后,给线性模型带来一定的非线性模型稳定,收敛度高,鲁棒性好
在一定程度上降低了过拟合风险
(2)通过组合特征引入个性化因素
uuid + tag
uuid + cluster_ id…(3)注意特征的频度
区分特征重要度
可以产出层次判定模型(4)聚类/Hash
增强了极度稀疏的特征表达力
减小了模型.加速运算
3. 关于算法调优
选择合适的正则化(L1,L2,L1+L2)
正则化系数C
收敛的阈值e,迭代轮数
调整loss function给定 不同权重
Bagging或其他方式的模型融合
最优化算法选择(‘newton-cg’, ‘lbfgs’, liblinear’,‘sag’)
小样本liblinear,大样本sag,多分类’newton-cg’和‘lbfs’(当然你也可以用liblinear和sag的one-vs-rest)