逻辑回归与线性回归的主要区别在于理论基础、应用场景和数学模型。
1 线性回归
1.1 理论基础
线性回归主要用于建模自变量与连续性因变量之间关系的统计方法,试图利用一条线来拟合自变量与因变量之间的线性关系。
1.2 应用场景
从应用场景来说,适用于连续数值的预测,如房价预测、股票价格预测等。线性回归模型假设因变量与自变量之间存在线性关系,适用于那些关系可以近似为直线的情况
1.3 数学建模
1.3.1 模型的建立
以房价预测为例,建立一个线性模型:
y = b + ∑ w i x i y=b+ \sum_ {} w_ix_i y=b+∑wixi
其中 w i w_i wi是参数, x i x_i xi是因变量,一些影响房价的因素(面积,交通是否便利等), y y y是最终预测房价值。
1.3.2 参数的评估(损失函数)
如何评估一组参数 w i w_i wi的好坏呢?将这组参数代入模型,计算得到预测房价 y p r e y_{pre} ypre与真实房价之间的差距 y t r u e y_{true} ytrue,将其定义为 l o s s loss loss, l o s s loss loss越小,说明预测值与真实值之间的差距越小,则说明这组参数越好,反之亦然。
L ( f ) = L ( w , b ) L(f)=L(w,b) L(f)=L(w,b)
既 L ( f ) = ∑ ( y t r u e − ( b + w i x i ) ) 2 L(f)= \sum_{} (y_{true}-(b+w_ix_i))^2 L(f)=∑(ytrue−(b+wixi))2
**1.3.3 参数优化 **
如何挑选最好的function,使得 l o s s loss loss最小?
f ∗ = a r g m i n ∑ ( y t r u e − ( b + w i x i ) ) 2 f^*=arg min \sum_{} (y_{true}-(b+w_ix_i))^2 f∗=argmin∑(ytrue−(b+wixi))2,其中矩阵 w w w,矩阵 b b b是待优化的参数
只要 f ∗ f^* f∗是可微分的,我们可以使用梯度下降(Gradient sescent)来优化 f ∗ f^* f∗的参数 w w w, b b b.
- 首先考虑 f ∗ f^* f∗只有一个参数 w w w的情况下。
- 随机初始化参数 w 0 w^0 w0;
2.计算参数 w 0 w^0 w0对loss的微分 d L d w ∣ w = w 0 \frac{dL}{dw} |_{w=w^0} dwdL∣w=w0的结果
3.如果如果斜率是负数,说明左边的loss值更高,应该增大 w w w的值,找寻更小的loss值如果斜率是正数,应该减 w w w的值。
减少或者增加的w的大小应该如何选择呢:
取决于两个因素:
斜率计算出来的数值,第二个是 η η η学习率(learning_rate)
w 1 ← w 0 − η ∗ d L d w ∣ w = w 0 w^1 \leftarrow w^0 - \eta * \frac{dL}{dw} |_{w=w^0} w1←w0−η∗dwdL∣w=w0
多次更新 w w w的数值,直到 l o s s loss loss到达一个局部最优值(local optimal)
- 考虑 f ∗ f^* f∗存在两个参数 w w w和 b b b的情况下:
1)随机初始两个参数值
2)对其 l o s s loss loss分别计算偏微分
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 ( x n ) ≠ y t r u e ) L(f)=\sum_{} \delta(f(x^n) \neq y^{true}) L(f)=∑δ(f(xn)=ytrue)
这种情况下,无法微分,如果进行参数优化的步骤呢?
引入Sigmoid函数
Sigmoid函数的公式为 1 1 + e − Z \frac{1}{1+e^{-Z}} 1+e−Z1,其中 Z Z Z是线性组合的结果,Sigmoid函数的输出范围是(0, 1),非常适合表示概率。这意味着无论输入值为何,通过Sigmoid函数处理后,输出都在0到1之间,我们可以将这个值解释为属于某一类的概率。
δ ( w , b ) = 1 1 + e − ( w T x + 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 ( y i p r e , y i t r u e ) = − y i p r e l o g ( y i t r u e ) − ( 1 − y i p r e ) l o g ( 1 − y i t r u e ) ) 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)−(1−yipre)log(1−yitrue))
以下内容摘抄 https://zhuanlan.zhihu.com/p/659617924
在信息论中,将一个事情的不确定性。称为熵,如果一件事情发生的概率为 p i p_i pi,其赌赢的熵则为 I ( p i ) = − l o g ( p i ) I(p_i)=-log(p_i) I(pi)=−log(pi)。 其寓意在于,一个事情会发生的可能性越低,其包含的信息量(不确定性)就越大,
从上图很容易看到,当概率为1时,它表示时间发生的概率为100%,不存在不确定性,此时自信息为0,反之,概率越小,不确定性就越大,自信息也就越大。
如果训练集有多个观察样本,我们希望所有样本的熵之和最小(相当于混杂程度最小),在取得均值的情况下,可以描述为: ∑ i = 1 N I ( p i ) = − 1 N ∑ i = 1 N l o g ( p i ) \sum_{i=1}^{N} I(p_i)= -\frac{1}{N} \sum_{i=1}^{N} log(p_i) i=1∑NI(pi)=−N1i=1∑Nlog(pi)
期望值(Expectation,简称E)是对随机变量可能取值的加权平均。每个取值的权重是它发生的概率。通过计算加权平均,我们可以得到随机变量的期望值。
信息熵是一种数学方式来度量信息的平均不确定性,它也可以表述为,事件在所有可能情况下的自信息期望值,其计算公式如下:
H ( X ) = E x P [ I ( x ) ] = ∑ i p ( x i ) l o g 2 ( 1 p ( x i ) ) = − ∑ i p ( x i ) l o g 2 ( p ( x i ) ) ) 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)]=i∑p(xi)log2(p(xi)1)=−i∑p(xi)log2(p(xi)))
其中, H ( X ) H(X) H(X)表示随机变量 X X X的信息熵, p ( x i ) p(x_i) p(xi)是随机变量 X X X取值为 x i x_i xi的概率, l o g 2 ( 1 p ( x i ) ) log_2(\frac{1}{p(x_i)}) log2(p(xi)1)就是 p ( x i ) p(x_i) p(xi)概率下的编码长度, E x P E_{x~P} Ex P 表示编码长度的数学期望.
在本质上,对数损失其实求的也是一种熵,即也是一种编码长度的期望,不过这个期望有点不同。不同之处在于:用于求编码长度的概率,来自于模型的实际输出 y i p r e y^{pre}_{i} yipre,取值介于0~1之间,它对应的编码长度记做 l o g ( 1 y i t r u e ) log(\frac{1}{y^{true}_{i}}) log(yitrue1) ,但评价这个编码长度的权值,却来自于真实概率 y i t r u e {y^{true}_{i}} yitrue.即 − y i p r e l o g ( y i t r u e ) -y^{pre}_{i}log(y_{i}^{true}) −yiprelog(yitrue)
同理,二分类问题中,另一个对立面,可以计算其熵为: ( 1 − y i p r e ) − ( 1 − l o g ( y i t r u e ) ) (1-y^{pre}_{i})-(1-log(y_{i}^{true})) (1−yipre)−(1−log(yitrue))
又因为,对于特定实例,前面两项情况只有一个成立,因此可以巧妙地把上述这两种情况统一在一起,便于统一操作,即可得到: − y i p r e l o g ( y i t r u e ) − ( 1 − y i p r e ) l o g ( 1 − y i t r u e ) ) -y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) −yiprelog(yitrue)−(1−yipre)log(1−yitrue))
Sigmoid 函数:
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e−z1