2 逻辑回归
2.1 从线性回归到逻辑回归
分类问题可以通过 线性回归+阈值 去解决吗?
image
分类问题 在有噪声点的情况下,阈值偏移大,健壮性不够
image
2.2 逻辑回归决策边界
在逻辑回归(Logistic Regression)里,通常我们并不拟合样本分布,而是确定决策边界
下面为各式各样的决策边界
image
线性决策边界
image
image
非线性决策边界
image
2.3 逻辑回归损失函数
损失函数与正则化
依旧存在过拟合问题,决策边界可能“抖动很厉害”!
image
如何最小化损失函数?
对于凸函数,依旧可以用梯度下降!
image
2.4 从二分类到多分类
多分类
我们已经知道二分类问题如何处理了,那么多分类呢?
image
要点总结
逻辑回归
- 线性回归+阈值
- Sigmoid函数与决策边界
- Sigmoid函数:压缩至0-1之间
- 根据阈值,产生对应的决策边界
- 损失函数
- 梯度下降
- 二分类到多分类
3. 工程应用经验
3.1 逻辑回归 VS 其他模型
LR 弱于 SVM/GBDT/RandomForest... ?
- 模型本身并没有好坏之分
- LR能以概率的形式输出结果,而非只是0,1判定
- LR的可解释性强,可控度高
- 训练快,特征工程(feature engineering)之后效果赞
- 因为结果是概率,可以做排序模型
- 添加特征非常简单...
- 应用
- CTR预估/推荐系统的learning to rank/各种分类场景
- 很多搜索引擎厂的广告CTR预估基线版是LR
- 电商搜索排序/广告CTR预估基线版是LR
- 新闻app的推荐和排序基线也是LR
3.2 样本处理
- 样本特征处理
- 离散化后用独热向量编码(one-hot encoding)处理成0,1值
- LR训练连续值,注意做幅度缩放(scaling)
- 处理大样本量
- 试试spark MLlib
- 试试采样(注意是否需要分层采样)
- 注意样本的平衡
- 对样本分布敏感
- 欠采样,过采样
- 修改损失函数,给不同权重
3.3 工具包与库
image
https://www.csie.ntu.edu.tw/~cjlin/liblinear/
image
http://spark.apache.org/docs/latest/mllib-linear-methods.html#logistic-regression
image
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
要点总结
逻辑回归
- 优缺点
- 优点:可解释性强、输出概率结果、可用于排序、添加特征方便
- 缺点:模型效果与特征工程程度有关系、数据要做好预处理
- 样本与数据处理
- 工具包
- Liblinear | Spark | Scikit-learn
4 数据案例讲解
4.1 Python完成线性回归与逻辑回归
image
image
image
附 参考文献/Reference
- Prof. Andrew Ng. Machine Learning. Stanford University
- 李航,统计学习方法,清华大学出版社,2012
- 周志华,机器学习,清华大学出版社,2016
- Thomas M. Cover, Joy A. Thomas. Elements of Information Theory. 2006
- Christopher M. Bishop. Patte