zoukankan      html  css  js  c++  java
  • 初级算法梳理 -【任务2 逻辑回归算法梳理】

    任务内容

    1、逻辑回归与线性回归的联系与区别
    2、 逻辑回归的原理
    3、逻辑回归损失函数推导及优化
    4、 正则化与模型评估指标
    5、逻辑回归的优缺点
    6、样本不均衡问题解决办法
    7、sklearn参数

    具体解释

    逻辑回归与线性回归的联系与区别

    二者都属于监督学习算法。但是线性回归解决回归问题,逻辑回归解决分类问题。

    逻辑回归的原理

    基本原理
    逻辑回归和线性回归的原理是相似的,可以简单描述为以下过程:
    (1)找一个合适的预测函数,表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程是非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。
    (2)构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差。
    (3)显然,J(θ)函数的值越小表示预测函数越准确(即h函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。

    逻辑回归损失函数推导及优化

    逻辑回归损失函数推导及优化

    正则化与模型评估指标

    正则化

    正则化就是在损失函数后加上一个正则化项(惩罚项),其实就是常说的结构风险最小化策略,即经验风险(损失函数)加上正则化。一般模型越复杂,正则化值越大,正则化项是用来对模型中某些参数进行约束。
    如何理解正则化:正则化其实就是带约束条件的优化问题,为什么要正则化,就是对目标函数加上一个约束条件,这类似于带约束条件的朗格拉日乘数法。
    正则化有什么作用:
    L1正则化可以产生稀疏权重矩阵,即大部分w为0,只有少数w非0,可以用于特征选择
    L2正则化可以防止模型过拟合

    模型评估指标

    http://www.cnblogs.com/zongfa/p/9431807.html

    • 分类问题
      混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 score、ROC曲线、AUC、PR曲线
    • 回归问题
      平均绝对误差(MAE)、平均平方误差(MSE)、均方根误差(RMSE)、解释变异、决定系数
    • 聚类
      兰德指数、互信息、轮廓系数
    • 信息检索

    逻辑回归的优缺点

    Logistic 回归是一种被人们广泛使用的算法,因为它非常高效,不需要太大的计算量,又通俗易懂,不需要缩放输入特征,不需要任何调整,且很容易调整,并且输出校准好的预测概率。
    与线性回归一样,当你去掉与输出变量无关的属性以及相似度高的属性时,logistic 回归效果确实会更好。因此特征处理在 Logistic 和线性回归的性能方面起着重要的作用。
    Logistic 回归的另一个优点是它非常容易实现,且训练起来很高效。在研究中,我通常以 Logistic 回归模型作为基准,再尝试使用更复杂的算法。
    由于其简单且可快速实现的原因,Logistic 回归也是一个很好的基准,你可以用它来衡量其他更复杂的算法的性能。
    它的一个缺点就是我们不能用 logistic 回归来解决非线性问题,因为它的决策边界是线性的。

    样本不均衡问题解决办法

    重新采样训练集
    可以使用不同的数据集。有两种方法使不平衡的数据集来建立一个平衡的数据集——欠采样和过采样。
    欠采样
    欠采样是通过减少丰富类的大小来平衡数据集,当数据量足够时就该使用此方法。通过保存所有稀有类样本,并在丰富类别中随机选择与稀有类别样本相等数量的样本,可以检索平衡的新数据集以进一步建模。
    过采样
    相反,当数据量不足时就应该使用过采样,它尝试通过增加稀有样本的数量来平衡数据集,而不是去除丰富类别的样本的数量。通过使用重复、自举或合成少数类过采样等方法(SMOTE)来生成新的稀有样品.
    注意到欠采样和过采样这两种方法相比而言,都没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。另外将过采样和欠采样结合起来使用也是成功的。

    sklearn参数

    LogisticRegression

  • 相关阅读:
    equals与”==”的区别
    数学--数论--积性函数(初步)
    数学--数论-多重集排列组合与母函数
    数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)
    数学--数论--POJ281(线性同余方程)
    数学--数论--HDU1222 狼和兔子(最大公约数)
    数学--数论--HDU1576 A / B(逆元)
    VScode像Codeblocks一样,不启动调试和Debug直接运行
    数学--数论--鸽巢原理
    图论--拓扑排序--模板
  • 原文地址:https://www.cnblogs.com/everfight/p/ML_task2.html
Copyright © 2011-2022 走看看