zoukankan      html  css  js  c++  java
  • 吴恩达机器学习笔记 —— 7 Logistic回归

    http://www.cnblogs.com/xing901022/p/9332529.html

    本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何理解决策边界?如何解决多分类的问题?

    更多内容参考 机器学习&深度学习

    有的时候我们遇到的问题并不是线性的问题,而是分类的问题。比如判断邮件是否是垃圾邮件,信用卡交易是否正常,肿瘤是良性还是恶性的。他们有一个共同点就是Y只有两个值{0,1},0代表正类,比如肿瘤是良性的;1代表负类,比如肿瘤是恶性的。当然你想用1代表良性也可以,而且输出的值不仅仅局限为0和1两类,有可能还有多类,比如手写体识别是从0到9。

    如果使用线性的方法来判断分类问题,就会出现图上的问题。我们需要人工的判断中间的分界点,这个很不容易判断;如果在很远的地方有样本点,那么中心点就会发生漂移,影响准确性。

    如果我们想要结果总是在0到1之间,那么就可以使用sigmoid函数,它能保证数据在0-1之间。并且越趋近于无穷大,数据越趋近于1。

    回到我们假设的问题上来,如果肿瘤是依赖于大小来判断良性恶性,如果超过0.7*平均值,就判断是恶性的,那么平均来算30%的是恶性的,70%是良性的,他们相加总会是100%。再来看看上面的sigmoid的图像,每个点都表示它属于1的概率是x,属于0的概率是1-x。这样一个分类的问题,就变成了曲线值得问题了。

    如果想让y=1,即g(z)的值要大于0.5,那么z的值就需要大于0;相反,y=0,就是z的值小于0。因此整个分类问题,就变成了寻找决策边界的问题了。

    那么如何确定逻辑回归的损失函数呢?如果使用均方误差,由于最终的值都是0和1,就会产生震荡,此时是无法进行求导的。

    因此需要寻找一个方法,使得代价函数变成凸函数,从而易于求解。

    如果把损失函数定义为上面的形式,当真实的值是1时,我们预测的值越靠近1,cost的值越小,误差越小。如果真实值是0,那么预测的值越靠近1,cost的值越大。完美的表达了损失的概念。而且,由于0和1的概念,可以把上面的公式合并成下面统一的写法。直接基于这个统一的写法,做梯度下降求解即可。

    在求解最优化的问题时,不仅仅只有一种梯度下降Gradient descenet,还可以使用Conjugate gradient,BFGS,L-BFSGS。

    多分类问题,可以理解为采用多个logistic分类器,进行分类。针对每个样本点进行一个预测,给出概率值,选择概率值最高的那个进行分类的标识。

  • 相关阅读:
    12个国外优秀.Net开源项目
    CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]
    秋色园QBlog V2.5 后台管理系统源码发布下载
    秋色园QBlog技术原理解析:认识整站处理流程(二)
    CYQ.Data 数据框架 加快开源速度 发布V1.5.5版本源码
    秋色园[CYQ.Data]开源团队寻人
    秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十)
    CYQ.Data 数据框架 性能评测
    框架设计:实现数据的按需更新与插入的改进
    秋色园QBlog技术原理解析:Module之基类生命周期页面加载(七)
  • 原文地址:https://www.cnblogs.com/DicksonJYL/p/9424388.html
Copyright © 2011-2022 走看看