Logistic本质上是一个基于条件概率的判别模型(DiscriminativeModel)。

函数图像为:

通过sigma函数计算出最终结果,以0.5为分界线,最终结果大于0.5则属于正类(类别值为1),反之属于负类(类别值为0)。

如果将上面的函数扩展到多维空间,并且加上参数,则函数变成:

接下来问题来了,如何得到合适的参数向量θ呢?

由于sigma函数的特性,我们可作出如下的假设:

上式即为在已知样本X和参数θ的情况下,样本X属性正类(y=1)和负类(y=0)的条件概率。

将两个公式合并成一个,如下:

既然概率出来了,那么最大似然估计也该出场了。假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积:

为了简化问题,我们对整个表达式求对数,(将指数问题对数化是处理数学问题常见的方法):

满足似然函数(θ)的最大的θ值即是我们需要求解的模型。

梯度上升算法

就像爬坡一样,一点一点逼近极值。爬坡这个动作用数学公式表达即为:

其中,α为步长。

回到Logistic Regression问题,我们同样对函数求偏导。

先看:

其中:

再由:

可得:

接下来就剩下第三部分:

(这个公式应该很容易理解,简单的偏导公式)

还有就是:

综合三部分即得到:

因此,梯度迭代公式为:

结合本式再去理解《机器学习实战》Page 78中的代码就很简单了。

摘自:http://sbp810050504.blog.51cto.com/2799422/1608064

最新文章

  1. 在CentOS上构建.net自动化编译环境
  2. Feature Access
  3. winserver2008 R2 64位 企业版 , IIS 配置运行 asp+access 网站
  4. C语言运算符优先级和口诀 (转)
  5. 越狱Season 1-Episode 20: Tonight
  6. BZOJ1029 建筑抢修
  7. git免登录-ssh-key
  8. JS中的== 、===的用法和区别。
  9. 【GNOME 边框】GNOME窗口无边框
  10. Struts 2.x Unable to load configuration. - action
  11. Dubbo集成步骤
  12. 闭包JS
  13. vue使用技巧(分页、nextTick、复制对象)
  14. SQL Server Management Studio 执行超大脚本文件
  15. springBoot 随笔(一)
  16. 自己对Java的一些认识
  17. tcp echo server libuv
  18. js中三种定义变量的方式const, var, let的区别。
  19. sqli盲注自用脚本
  20. 源码分析四(HashMap与HashTable的区别 )

热门文章

  1. POJ 1703 带权并查集
  2. js隐藏与显示回到顶部按钮
  3. JavaScript实现延时提示框
  4. WPF 标题栏 右键窗口标题添加关于对话框
  5. Fragment_动态加载
  6. Ubuntu win8 小设备版本
  7. RabbitMQ学习之spring配置文件rabbit标签的使用
  8. TF基础5
  9. MongoDB_pymongo
  10. 网络教程(7)OSI模型的低层模型