• ML_7 logit回归


    第七周

    学习目标

    知识点描述:应用广泛的二分类算法——逻辑回归

    学习目标:

    • 逻辑回归本质及其数学推导

    • 逻辑回归代码实现与调用

    • 逻辑回归中的决策边界、多项式以及正则化

    一、初识逻辑回归

    1.介绍

    1.1 线性回归能解决分类问题么?

    其实,线性回归是不能解决分类问题的。因为我们在使用线性回归模型时,我们实际上做了3个假设(实际上有更多的假设,这里只讨论最基本的三个):

    • 因变量和自变量之间呈线性相关。
    • 自变量与干扰项相互独立。
    • 没被线性模型捕捉到的随机因素服从正态分布。

    从理论上来说,任何数据放在任何模型里都会得到相应的参数估计,进而通过模型对数据进行预测。但是这并不一定能保证模型效果,有时会得到“错且无用”的模型,因此建模的过程中需要不断提出假设和检验假设。

    1.2 用逻辑回归解决分类问题-本质上是一种二分类解决方法

    2.算法推导

    (计量中的三种二分类:logit回归,probit回归,线性概率回归)

    对于一个分类问题,由于“窗口效用”,我们只能看见客户的购买行为,但是在分类的背后,是隐藏变量之间的博弈,我们通过搭建隐藏变量的模型,来求出客户购买的概率

    probit回归在数学上是比较完美的,但是正态分布的累积分布函数,其表达形式很复杂且没有解析表达,因此直接在probit回归上做参数估计是比较困难的。但是好在我们可以对其做近似

     

     二、从对数几率看逻辑回归

     逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

    1.2 面试问题

    在有上述的推导之后,再看一个面试问题:

    为什么要使用sigmoid函数作为假设?

    现在就可以回答了:

    因为线性回归模型的预测值为实数,而样本的类标记为(0,1),我们需要将分类任务的真实标记y与线性回归模型的预测值联系起来,也就是找到广义线性模型中的联系函数如果选择单位阶跃函数的话,它是不连续的不可微。而如果选择sigmoid函数,它是连续的,而且能够将z转化为一个接近0或1的值。

    损失函数:

    • 如果给定样本的真实类别y=1,则估计出来的概率p越小,损失函数越大(估计错误)
    • 如果给定样本的真实类别y=0,则估计出来的概率p越大,损失函数越大(估计错误)

    三 逻辑回归代码实现与调用

    步骤拆解!

    主要内容为:

    • 定义sigmoid方法,使用sigmoid方法生成逻辑回归模型
    • 定义损失函数,并使用梯度下降法得到参数
    • 将参数代入到逻辑回归模型中,得到概率
    • 将概率转化为分类

    四 分类中的决策边界

    1.1决策边界

    字面意义

    1.3 线性&非线性决策边界

    所谓决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)。

    注意:决策边界是假设函数的属性,由参数决定,而不是由数据集的特征决定。

    2.1 线性回归转换成多项式回归

    对于线性这条蓝色的直线可以比较完美地将数据分成两类。但是直线的分类方式,太简单了。

    五、sklearn中的逻辑回归中及正则化

    在逻辑回归中添加多项式项,从而得到不规则的决策边界,进而对非线性的数据进行很好的分类。但是众所周知,添加多项式项之后,模型会变变得很复杂,非常容易出现过拟合。因此就需要使用正则化,且sklearn中的逻辑回归,都是使用的正则化。

  • 相关阅读:
    Ubuntu下的解压缩
    Android开机动画
    Android 5.0源码编译问题
    ubuntu学习的简单笔记
    全局变量:global与$GLOBALS的区别和使用
    Java语言中的面向对象特性总结
    c/c++常见面试题
    查数据库中的表,了解大体结构
    PHP数组详解
    HTML5新增及移除的元素
  • 原文地址:https://www.cnblogs.com/wjAllison/p/12734772.html
Copyright © 2020-2023  润新知