线性回归和逻辑回归
跟着B站一个小姐姐学的 很不错
1: 什么是回归 什么是分类?
简单来说一般回归问题在数值上是一个连续的 而分类问题在数值上一般是离散型的
分类:分类问题的y值(也称为label),更离散化一些。而且同一个y值可能对应一大批的x,这些x是具有一定范围的。所以分类问题更多的是一个区域的x去对应一个y
回归:回归模型的更倾向于很小的区域 或者是一个x对应一个y
线性回归就不在讨论了 这里学习一下 逻辑回归
逻辑回归 听起来是回归 但实际上他是解决分类问题的 是一个分类模型 其思想也是基于线性回归 属于广义的线性回归模型
Logistic Regression算法是将线性函数的结果映射到了sigmoid函数中
那么逻辑回归为何说是一个分类算法呢 请看sigmoid函数的图像
这个函数的自变量的取值范围可以在-00 到 +00 函数值在(0-1)之间取值 当线性回归的结果映射到sigmoid函数中 来本的回归问题自然也就成了分类问题了 我们可以这样来看 当函数值大于0.5的时候 认为这时候的x是一个正的分类 小于0.5的时候x是负分类 这样讲回归的问题就转换成了分类问题
线性回归是回归问题 逻辑回归是分类问题 要明确!!! 线性变换 非线性映射
以前感觉高数很牛 后来线代很厉害 现在发现 概率论才是王牌啊 三者合一 王炸无敌啊 !!!!!
下面开始进行数学推导 看看 这个sigmoid函数是怎么来的 下面的这个推导是我在B站看的一个视频 为了方面直接截图了有些东西就 这是B站的一个视频中的讲解
这里简明的说一下 为什么要对odds取对数 目的就是为了把他的值域扩展到整个实数集范围内 logit(p)在实数集范围呢 同样 线性回归模型也在实数集范围呢 所以一定可以用后者来表示前者 就是上面图片中的那个公式 推导在下面的图片中非常完整 这样就尽情展示了 从线性回归模型 是如何到 逻辑回归的 这样理解起来相对容易 透彻一些
#下面随便画一下sigmoid函数的图像 有一个更加直观的认识
import numpy as np
import matplotlib.pyplot as plt
import math
#math.exp(10) # e^10
def sigmoid(x):
return 1/(1+math.exp(-x))
z = np.arange(-5,5,0.001)
#注意pyton中for循环的这种用法
y = [sigmoid(i) for i in z]
#参数lw 是决定线粗
plt.plot(z,y,color = 'red',lw = 2)
plt.axhline(y=0,lw = 2,label = "y = 0",color = 'blue')
plt.axhline(y = 1,lw = 2,label ="y = 1" ,color= "blue")
#显示出格子
plt.grid()
#这句话就是放上你的标签
plt.legend(loc = "best")
#加上这句话就不会显示图片的内存地址了
plt.show()