手写逻辑回归算法

Posted xiaoma927

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手写逻辑回归算法相关的知识,希望对你有一定的参考价值。

1. 模型

逻辑回归的Model为:$ h_ heta(x)=frac 1 {1+e^{-( heta^Tx+b)}} $

2.代价函数

针对一个样本的代价函数为:
if y = 1 : $ cost(x)= -log(h_ heta(x))$
if y = 0 : $ cost(x)= -log(1-h_ heta(x)) $
上述代价函数可以写成一个式子:即$ cost(x)=-ylog(h_ heta(x))-(1-y)log(1-h_ heta(x)) $

3. 损失函数

损失函数可以看成是针对所有样本的代价函数的平均值,即:
$ J_ heta(x)=frac 1 m displaystylesum_{i=1}^m(cost(x^{(i)})) = -frac 1 m displaystylesum_{i=1}^m(y^{(i)}log(h_ heta(x^{(i)}))+(1-y^{(i)})log(1-h_ heta(x^{(i)})))$

4.对损失函数求偏导

对参数( heta)求导:
$ frac partial {partial heta_j} J_ heta(x)= frac 1 m displaystylesum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})x_j^{(i)} $
对参数(b)求导:
$ frac partial {partial b} J_ heta(x)= frac 1 m displaystylesum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)}) $

5.运用梯度下降法更新参数( heta)(b)

$ heta_j := heta_j - alpha frac partial {partial heta_j} J_ heta(x) = heta_j - alpha frac 1 m displaystylesum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})x_j^{(i)} $
$b := b - alpha frac partial {partial b} J_ heta(x) = b - alpha frac 1 m displaystylesum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)}) $









以上是关于手写逻辑回归算法的主要内容,如果未能解决你的问题,请参考以下文章

逻辑回归算法原理是啥?

机器学习回顾篇:逻辑回归

机器学习故事汇-逻辑回归算法

SparkMLlib学习分类算法之逻辑回归算法

分类算法-逻辑回归与二分类

LR逻辑回归算法---介绍说明相关问题