‌逻辑回归与线性回归的主要区别在于理论基础、应用场景和数学模型。

1 线性回归

1.1 理论基础

线性回归主要用于建模自变量与连续性因变量之间关系的统计方法,试图利用一条线来拟合自变量与因变量之间的线性关系。

1.2 应用场景

从应用场景来说,适用于连续数值的预测,如房价预测股票价格预测等。线性回归模型假设因变量与自变量之间存在线性关系,适用于那些关系可以近似为直线的情况‌

1.3 数学建模

1.3.1 模型的建立
以房价预测为例,建立一个线性模型:
y=b+∑wixiy=b+ \sum_ {} w_ix_i y=b+wixi
其中wiw_iwi是参数,xix_ixi是因变量,一些影响房价的因素(面积,交通是否便利等),yyy是最终预测房价值。
1.3.2 参数的评估(损失函数)
如何评估一组参数wiw_iwi的好坏呢?将这组参数代入模型,计算得到预测房价yprey_{pre}ypre与真实房价之间的差距ytruey_{true}ytrue,将其定义为losslosslosslosslossloss越小,说明预测值与真实值之间的差距越小,则说明这组参数越好,反之亦然。
L(f)=L(w,b)L(f)=L(w,b)L(f)=L(w,b)
L(f)=∑(ytrue−(b+wixi))2 L(f)= \sum_{} (y_{true}-(b+w_ix_i))^2L(f)=(ytrue(b+wixi))2
**1.3.3 参数优化 **
如何挑选最好的function,使得losslossloss最小?
f∗=argmin∑(ytrue−(b+wixi))2f^*=arg min \sum_{} (y_{true}-(b+w_ix_i))^2f=argmin(ytrue(b+wixi))2,其中矩阵www,矩阵bbb是待优化的参数
只要f∗f^*f是可微分的,我们可以使用梯度下降(Gradient sescent)来优化f∗f^*f的参数www,bbb.

  • 首先考虑f∗f^*f只有一个参数www的情况下。
  1. 随机初始化参数w0w^0w0;
    2.计算参数w0w^0w0对loss的微分dLdw∣w=w0\frac{dL}{dw} |_{w=w^0}dwdLw=w0的结果
    3.如果如果斜率是负数,说明左边的loss值更高,应该增大www的值,找寻更小的loss值如果斜率是正数,应该减www的值。在这里插入图片描述
    减少或者增加的w的大小应该如何选择呢:
    取决于两个因素:
    斜率计算出来的数值,第二个是ηηη学习率(learning_rate)
    w1←w0−η∗dLdw∣w=w0w^1 \leftarrow w^0 - \eta * \frac{dL}{dw} |_{w=w^0}w1w0ηdwdLw=w0
    多次更新www的数值,直到losslossloss到达一个局部最优值(local optimal)
  • 考虑f∗f^*f存在两个参数wwwbbb的情况下:
    1)随机初始两个参数值
    2)对其losslossloss分别计算偏微分
    在这里插入图片描述
    gradient:所有偏导的向量矩阵
    在Linear regression中, the loss is convex,不存在local optimal

以上过程,模型在已知数据(训练数据)上调整参数,可以作为回归模型的训练过程。模型在未知数据(测试集)上的表现,称为模型的泛化程度(generalization)。模型越复杂,在训练数据上就越拟合,但是可能会在测试数据上出现过拟合的情况。
在这里插入图片描述
loss的主要来源:bias 和variance
在这里插入图片描述
Simpler model is less influenced by the sampled data
一个较大的bias 导致每次预测结果在一个相近范围,但与目标值较远 模拟欠拟合,过于简单

当model不能fit训练集是是bias大
如果在训练集上过拟合,测试集上无法fit说明variance大、

如果bias,
需要重新设计一个更为精细的模型,
添加更多的输入特征

如果variance大的话:
增加data(数据增强)
Regularization 让参数越少越好,曲线越平滑越好

There is usually a trade-off between bias and variance
选择一个模型在这两种error中总error最小的model

将training set 划分为两组:training set 和validation set
N-flod cross validation 几折交叉验证 算平均精度

2 逻辑回归

2.1理论基础

逻辑回归用于建模自变量与离散型因变量之关系的统计方法,常使用逻辑函数建立自变量与因变量之间的非线性关系。

2.2 应用场景

适用于二分类问题的预测,如垃圾邮件分类肿瘤诊断金融欺诈检测等。逻辑回归通过sigmoid函数将输出限制在0和1之间,适用于处理只有两种可能结果的情况‌

2.3 数学建模

2.3.1 逻辑函数

与线性回归loss计算预测值与真实值之间的差距不同,逻辑回归中,loss是计算模型在训练数据上预测错误的次数。即:
L(f)=∑δ(f(xn)≠ytrue)L(f)=\sum_{} \delta(f(x^n) \neq y^{true})L(f)=δ(f(xn)=ytrue)
这种情况下,无法微分,如果进行参数优化的步骤呢?

引入Sigmoid函数
Sigmoid函数的公式为11+e−Z\frac{1}{1+e^{-Z}}1+eZ1,其中ZZZ是线性组合的结果,Sigmoid函数的输出范围是(0, 1),非常适合表示概率。这意味着无论输入值为何,通过Sigmoid函数处理后,输出都在0到1之间,我们可以将这个值解释为属于某一类的概率‌。

δ(w,b)=11+e−(wTx+b)\delta(w,b)=\frac{1}{1+e^{-(w^Tx+b)}}δ(w,b)=1+e(wTx+b)1
此外,Sigmoid函数是可微的,这意味着我们可以计算它的导数,从而在使用梯度下降法优化逻辑回归模型参数时,能够直接根据Sigmoid函数的导数计算梯度,更新模型的权重和偏置‌。

对数损失(Log Loss) 逻辑回归采用极大似然估计推导损失函数,等价于最小化交叉熵损失(Cross-Entropy Loss)
对于单个样本损失为:
L(yipre,yitrue)=−yiprelog(yitrue)−(1−yipre)log(1−yitrue))L(y^{pre}_{i}, y_{i}^{true})=-y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true}))L(yipre,yitrue)=yiprelog(yitrue)(1yipre)log(1yitrue))

以下内容摘抄 https://zhuanlan.zhihu.com/p/659617924
在信息论中,将一个事情的不确定性。称为熵,如果一件事情发生的概率为pip_ipi,其赌赢的熵则为I(pi)=−log(pi)I(p_i)=-log(p_i)I(pi)=log(pi)。 其寓意在于,一个事情会发生的可能性越低,其包含的信息量(不确定性)就越大,
在这里插入图片描述
从上图很容易看到,当概率为1时,它表示时间发生的概率为100%,不存在不确定性,此时自信息为0,反之,概率越小,不确定性就越大,自信息也就越大。

如果训练集有多个观察样本,我们希望所有样本的熵之和最小(相当于混杂程度最小),在取得均值的情况下,可以描述为:∑i=1NI(pi)=−1N∑i=1Nlog(pi)\sum_{i=1}^{N} I(p_i)= -\frac{1}{N} \sum_{i=1}^{N} log(p_i)i=1NI(pi)=N1i=1Nlog(pi)

期望值(Expectation,简称E)是对随机变量可能取值的加权平均。每个取值的权重是它发生的概率。通过计算加权平均,我们可以得到随机变量的期望值。

信息熵是一种数学方式来度量信息的平均不确定性,它也可以表述为,事件在所有可能情况下的自信息期望值,其计算公式如下:
H(X)=Ex P[I(x)]=∑ip(xi)log2(1p(xi))=−∑ip(xi)log2(p(xi)))H(X)=E_{x~P}[I(x)]=\sum_{i} p(x_i)log_2(\frac{1}{p(x_i)})=-\sum_{i} p(x_i)log_2(p(x_i)))H(X)=Ex P[I(x)]=ip(xi)log2(p(xi)1)=ip(xi)log2(p(xi)))

其中, H(X)H(X)H(X)表示随机变量 XXX的信息熵, p(xi)p(x_i)p(xi)是随机变量 XXX取值为 xix_ixi的概率, log2(1p(xi))log_2(\frac{1}{p(x_i)})log2(p(xi)1)就是 p(xi)p(x_i)p(xi)概率下的编码长度,Ex PE_{x~P}Ex P 表示编码长度的数学期望.

在本质上,对数损失其实求的也是一种熵,即也是一种编码长度的期望,不过这个期望有点不同。不同之处在于:用于求编码长度的概率,来自于模型的实际输出 yiprey^{pre}_{i}yipre,取值介于0~1之间,它对应的编码长度记做 log(1yitrue)log(\frac{1}{y^{true}_{i}})log(yitrue1) ,但评价这个编码长度的权值,却来自于真实概率 yitrue{y^{true}_{i}}yitrue.即−yiprelog(yitrue)-y^{pre}_{i}log(y_{i}^{true})yiprelog(yitrue)

同理,二分类问题中,另一个对立面,可以计算其熵为:(1−yipre)−(1−log(yitrue))(1-y^{pre}_{i})-(1-log(y_{i}^{true}))1yipre1log(yitrue))

又因为,对于特定实例,前面两项情况只有一个成立,因此可以巧妙地把上述这两种情况统一在一起,便于统一操作,即可得到:−yiprelog(yitrue)−(1−yipre)log(1−yitrue))-y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true}))yiprelog(yitrue)(1yipre)log(1yitrue))

Sigmoid 函数:

σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐