逻辑回归总结

逻辑回归思路

线性回归的模型是求输出特征向量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 梯度 更新回归系数的向量
返回回归系数

逻辑回归优缺点

优点

计算代价不高,易于理解

缺点

容易欠拟合,精度不高

适合数据

数值和标称型数据

posted on 2020-10-05 16:44  复古猴子  阅读(187)  评论(0编辑  收藏  举报

导航