机器学习模型之逻辑回归

1、逻辑回归模型

关于逻辑回归,可以看做是感知机的加强版本,感知机是线性的分类器,逻辑回归在感知机的基础上加上了一个sigmoid函数,将其变成了一个非线性的分类器,其效果要优于感知机。逻辑回归公式如下

\[ f(x) = \frac {1} {1 + \exp -(wx+b)} \tag{1} \]

其中\(w\)\(x\)均为向量。\(f(x)\)可以理解为范围在[0,1]的概率值,若\(f(x) > 0.5\)那么可以将这个类归为正类,若\(f(x) < 0.5\)那么,将这个类归为负类。

2、逻辑回归策略

那么逻辑回归的损失函数是什么呢?逻辑回归公式如下

\[ \prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} \tag{2} \]

其中\(f(x_{i})\)为预测值,\(y_{i}\)为真实值,当真实值为\(y_{i} = 1\)时,我们就最大化\(f(x_{i})\),即我们希望这个输出值变大,当真实值为\(y_{i} = 0\)时,我们希望最大化\(1 - f(x_{i})\),即我们希望将\(f(x_{i})\)的输出值尽可能变小。

3、逻辑回归算法

我们的目标是最大化式子(2),那么我们可以对他进行转换,最小化式子(2)的负数,并取\(\log\)

\[ L(w,b) = - \log \prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} \\ = - \log \sum\limits_{i=1}^{n} y_{i} f(x_{i}) + (1-y_{i})(1-f(x_{i})) \tag{3} \]

首先给出sigmoid的求导公式

\[ \frac {\partial sigmoid (x)}{\partial x} = sigmoid (x) * (1- sigmoid (x)) \tag{4} \]

接下来,我们利用优化公式对\(L(w,b)\)进行求导,首先对\(w\)进行求导

\[ \frac {\partial L(w,b)}{\partial w} = \sum\limits_{i=1}^{n} y_{i} * \frac {1}{f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} - (1-y_{i}) * \frac {1} {1-f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} \\ = \sum\limits_{i=1}^{n} x_{i}y_{i}(1-f(x_{i})) - x_{i}(1-y_{i})*f(x_{i}) \\ = \sum\limits_{i=1}^{n} x_{i}y_{i} - x_{i}y_{i}f(x_{i}) - x_{i}f(x_{i}) + x_{i}y_{i}f(x_{i}) \\ = \sum\limits_{i=1}^{n} (y_{i} - f(x_{i})) * x_{i} \tag{5} \]

接下来对\(b\)求导,公式基本上和(5)相类似,这里,我们直接给出结果。

\[ \frac {\partial L(w,b)}{\partial b} = \sum\limits_{i=1}^{n} y_{i} - f(x_{i}) \tag{6} \]

最后,我们可以进行参数更新。

\[ w^{*} = w - \alpha \frac {\partial L(w,b)}{\partial w} \\ b^{*} = b - \alpha \frac {\partial L(w,b)}{\partial b} \]

猜你喜欢

转载自www.cnblogs.com/stephen-goodboy/p/12882720.html