逻辑回归

2 逻辑回归


2.1 从线性回归到逻辑回归

分类问题可以通过 线性回归+阈值 去解决吗?

image

分类问题 在有噪声点的情况下,阈值偏移大,健壮性不够

image

2.2 逻辑回归决策边界

在逻辑回归(Logistic Regression)里,通常我们并不拟合样本分布,而是确定决策边界

下面为各式各样的决策边界

image

线性决策边界

image
image

非线性决策边界

image

2.3 逻辑回归损失函数

损失函数与正则化

依旧存在过拟合问题,决策边界可能“抖动很厉害”!

image

如何最小化损失函数?

对于凸函数,依旧可以用梯度下降!

image

2.4 从二分类到多分类

多分类

我们已经知道二分类问题如何处理了,那么多分类呢?

image

要点总结

逻辑回归

  • 线性回归+阈值
    • 解决分类问题鲁棒性不OK
  • Sigmoid函数与决策边界
    • Sigmoid函数:压缩至0-1之间
    • 根据阈值,产生对应的决策边界
  • 损失函数
    • 最大似然到对数损失
  • 梯度下降
    • 沿着损失函数梯度方向逐步修正参数
  • 二分类到多分类
    • one vs one
    • one vs rest

3. 工程应用经验


3.1 逻辑回归 VS 其他模型

LR 弱于 SVM/GBDT/RandomForest... ?

  • 模型本身并没有好坏之分

    1. LR能以概率的形式输出结果,而非只是0,1判定
    2. LR的可解释性强,可控度高
    3. 训练快,特征工程(feature engineering)之后效果赞
    4. 因为结果是概率,可以做排序模型
    5. 添加特征非常简单...
  • 应用

    1. CTR预估/推荐系统的learning to rank/各种分类场景
    2. 很多搜索引擎厂的广告CTR预估基线版是LR
    3. 电商搜索排序/广告CTR预估基线版是LR
    4. 新闻app的推荐和排序基线也是LR

3.2 样本处理

  • 样本特征处理

    1. 离散化后用独热向量编码(one-hot encoding)处理成0,1值
    2. LR训练连续值,注意做幅度缩放(scaling)
  • 处理大样本量

    1. 试试spark MLlib
    2. 试试采样(注意是否需要分层采样)
  • 注意样本的平衡

    1. 对样本分布敏感
    2. 欠采样,过采样
    3. 修改损失函数,给不同权重

3.3 工具包与库

  • Liblinear
image

https://www.csie.ntu.edu.tw/~cjlin/liblinear/

  • Spark Mllib
image

http://spark.apache.org/docs/latest/mllib-linear-methods.html#logistic-regression

  • Scikit-learn
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

你可能感兴趣的:(逻辑回归)