一、逻辑回归的基础介绍
逻辑回归是一个分类模型
它可以用来预测某件事发生是否能够发生。分类问题是生活中最常见的问题:
生活中:比如预测上证指数明天是否会上涨,明天某个地区是否会下雨,西瓜是否熟了
金融领域:某个交易是否涉嫌违规,某个企业是否目前是否违规,在未来一段时间内是否会有违规
互联网:用户是否会购买某件商品,是否会点击某个内容
对于已知的结果,上面问题的回答只有:0,1 。
我们以以下的一个二分类为例,对于一个给定的数据集,存在一条直线可以将整个数据集分为两个部分:
此时,决策边界为,此时我们很容易将的样本设置为1,反之设置为0。但是这其实是一个感知机的决策过程。逻辑回归在此基础上还需要在加上一层,找到分类概率与输入变量之间的关系,通过概率来判断类别。
我们可以先回顾一下线性回归模型:
w=[0.1,0.2,0.4,0.2]
b=0.5
def linearRegression(x):
return sum([x[i]*w[i] for i in range(len(x))])+b
linearRegression([2,1,3,1])
# 2.3
在线性模型的基础上加上一个函数g,即。。这个函数就是sigmoid函数,也叫做logistic函数。
它可以将一个线性回归中的结果转化为一个概率值。此时h(x)表示的就是某件事发生的概率,我们也可以记为
import numpy as np
def sigmoid(x):
return 1/(1+np.exp(-x))
sigmoid(linearRegression([2,1,3,1]))
# 0.9088770389851438
可以看一下sigmoid函数的图:
import matplotlib.pyplot as plt
x = np.arange(-10, 10, 0.01)
y = sigmoid(x)
plt.plot(x, y)
plt.show()
通过以上内容我们知道逻辑回归的表达式,那么我们怎么进行优化呢?x是我们输入的参数,对于我们是已知的,预测西瓜是否熟了的话,我们需要知道它的大小,颜色等信息。将其输入到预测模型中,返回一个西瓜是否熟了的概率。那么对于怎么得到模型中的参数w和b呢?
二、逻辑回归的优化方法
1:逻辑回归的损失函数
逻辑回归采用的是交叉熵的损失函数,对于一般的二分类的逻辑回归来说交叉熵函数为:,其中y`是预测值。
注:有些地方交叉熵的log的底数是2,有些地方是e。由于是一个常数,因此无论是啥对于最后的结果都是不影响的,不过由于计算的简便性用e的会比较多一些。
实际上我们求的是训练中所有样本的损失,因此:
注:代表的是所有的参数集合
Q:为什么不采用最小二乘法进行优化?(平方差)
A:因为采用最小二乘法的话损失函数就是非凸了(凸函数的定义是在整个定义域内只有一个极值,极大或者极小,该极值就是全部的最大或者最小)
更多详细地解释可以看这里:https://www.zhihu.com/question/65350200
后面可能会有不少难以解释或者需要花费很大篇幅去解释的地方,大多数比较延展性的知识,我可能还是会放个链接,有需要的朋友可以当作课外拓展去了解下。
注:损失函数的由来
在统计学中,假设我们已经有了一组样本(X,Y),为了计算出能够产生这组样本的参数。通常我们会采用最大似然估计的方法(一种常用的参数估计的方法)。使用到最大似然估计的话,我们还要一个假设估计,这里我们就是假设
标签:loss,逻辑,01,迭代,train,回归,LogisticRegression,test,self From: https://blog.csdn.net/qq_52421831/article/details/142794063