逻辑回归总结
逻辑回归思路
线性回归的模型是求输出特征向量Y与样本矩阵X之间的线性关系,如果我们想要的Y是离散的话,可以对Y再做一次函数转换,变为g(Y)。如果我们设定g(Y)的值在某个实数区间的时候是类别A,在另一个实数区间是类别B,那么就得到一个分类模型。
分布假设
LR假设噪声是高斯分布,数据是伯努利分布,特征独立
sigmoid函数
逻辑回归会对线性回归做一个转换,这个转换就是用sigmoid函数,形式如下:
\[g(z) = \frac{1}{1+e^{-z}}
\]
sigmoid函数在当z趋向于无穷时,\(g(z)\)趋于1,如果是负无穷时,\(g(z)\)趋于0。
sigmoid函数求导形式也很方便:
\[g^{'}(z) = g(z)(1-g(z))
\]
逻辑回归的损失函数
线性代价函数
线性回归中的代价函数
\[J(\theta) = \frac{1}{m}\sum_{i=1}^{m}\frac{1}{2}(h_{\theta}(x^{i})-y^i)^2
\]
又名平方差损失函数。
因为逻辑回归和线性回归,都可以归为广义线性模型,但是为什么我们没有选用平方差函数作为代价函数呢?
这是因为如果我们的函数是sigmoid函数,平方差损失函数会变成非凸函数,这种函数会出现很多局部最优值,如果用梯度下降法用在这样的函数,不能保证它收敛到全局最小值。因此,我们需要换一个损失函数。
交叉熵损失函数
我们可以把逻辑回归的损失函数看作是一种类似于概率的可能性,所以我们可以写成:
\[P(y=1|x,\theta) = h_{\theta}(x) \\
P(y=1|x, \theta) = 1 - h_{\theta}(x)
\]
我们再把上面式子合在一起,表示一个数据点的可能性:
\[P(y|x,\theta) = (h_{\theta})^y(1 - h_{\theta}(x))^{1-y}
\]
y表示样本点真实的标签情况。
我们可以把所有数据拼起来,构建整体的损失函数:
\[L(\theta) = \prod_{i}^{n}(h_{\theta})^{y_{i}}(1 - h_{\theta}(x))^{1-y_i}
\]
方便求解,我们取对数:
\[L(\theta) = \sum_{i}^{n}{y_{i}}\log(h_{\theta})+({1-y_i})\log(1 - h_{\theta}(x))
\]
最后梯度:
\[\nabla = ((y^{i}) - h_{\theta}(x^{i}))x^{i}_{j}
\]
i表示第i个元素,j表示第几个特征。
正则
逻辑回归的正则可以带来防止过拟合
- L1范式
- L2范式
求解过程
每个回归系数初始化为 1
重复 R 次:
计算整个数据集的梯度
使用 步长 x 梯度 更新回归系数的向量
返回回归系数
逻辑回归优缺点
优点
计算代价不高,易于理解
缺点
容易欠拟合,精度不高
适合数据
数值和标称型数据