目录

一、分类问题 Classification

二、分类问题的估值 Hypothesis Representation

三、分类问题的决策边界 Decision Boundary

四、分类问题的代价函数 Cost Function

五、简化的代价函数与梯度下降Simplified Cost Function & Gradient Descent

5.1 简化代价函数

5.2 梯度下降推导及结论

5.3 梯度下降 Advanced Optimization

六、多类别分类

七、过拟合问题

7.1 What is overfitting

7.2 Addressing overfitting

7.3 正则化后的代价函数

7.4 正则化线性回归 Regularized Linear Regression

7.5 正则化逻辑回归 Regularized Logistc Regression


复习Andrew Ng的课程Machine Learning,总结分类、逻辑回归笔记一篇,涵盖课程week3。

一、分类问题 Classification

线性回归可以对连续的模型进行估值(比如房价和房屋面积的关系),对于离散的模型估值(是为1,否为0)存在诸多问题。

  • 对于分类问题,线性回归容易被个别训练样本影响
  • 线性回归的估值没有明确的意义

因此,分类问题引入逻辑回归Logistic Regression。于是,分类的最终输出是。逻辑回归的估值必须是一个值域的函数,用做分类问题的算法

二、分类问题的估值 Hypothesis Representation

我们希望逻辑归回的估值满足,于是引入两个函数

从而得到分类问题的估值

对于这个估值的解释是这样的。在给定的情况下,对的概率的估计值。

,probability that ,given ,parameterized

那么,当时,;当时,

举个栗子,是肿瘤大小的训练集。表示有70%的概率,该肿瘤是恶性的。

三、分类问题的决策边界 Decision Boundary

根据前面讨论的结果。

估值

如果分类边界本身就是线性(Logistic Boundary Linear)的,即,取,boundary是,那么得到决策边界是,是个直线方程。

如果分类边界本身是非线性(Logistic Boundary Non-Linear)的,即,取,boundary是,那么得到决策边界是

四、分类问题的代价函数 Cost Function

这里面涉及到一些数学知识。知道写下这篇博客,我还没有从数学层面上理解Andrew Ng说的Convex Convergence的意义。当然了,Andrew Ng也说了数学层面上该如何解决。我们先关注一下直觉上的Cost Function。

为逻辑回归选择一个Convex Convergence的代价函数,形式如下。

为什么是这种形式呢?我们直觉感受一下。也就是Andrew Ng所说的Cost Function Intuition。

时,越接近1,越接近于0。

时,越接近0,越接近于0。

这就达到了估值越接近真值,代价函数越接近0。这张示意图的代码可以到这里下载//download.csdn.net/download/qpeity/12113456。

五、简化的代价函数与梯度下降Simplified Cost Function & Gradient Descent

5.1 简化代价函数

第四节里面描述的内容是针对一个训练样本而言的。

注意:对每个训练样本只有一个成立。上面的公式简化为

对于有个样本的训练集,给出代价函数

也就是

5.2 梯度下降推导及结论

与线性回归问题一样,我们求得代价函数关于参数各个维度的导数,推导过程如下:

  1. 已知式
  2. 求偏导数得到
  3. 结合中求内倒数部分进一步推导得到
  4. 代入得到

就是步长。为了使代价函数最小,我们要同步更新,不断迭代直到找到局部最优解,这就是最终的结论。公式和线性回归中同步更新的公式形式上完全一样,只是改变了。

5.3 梯度下降 Advanced Optimization

对于求解梯度下降,可以使用Naive的Gradient Descent。但是,这样Naive的实现方法效率并不高,计算也不够简单。

Andrew Ng给出了三种Advanced Optimization的方法,这些已经超出了机器学习课程的范围,具体怎么实现这些算法,他本人也是刚刚搞得明白(给大神跪了Orz)。这三种Advanced Optimization就是:

  1. Conjugate Gradient(共轭梯度?)
  2. BFGS
  3. L-BFGS

使用这些Advanced Optimization的优点是:

  • 不需要人工选择学习率
  • 比Naive的Gradient Descent更快

使用这些Advanced Optimization的缺点是:

  • 算法更复杂

课程中,Andrew Ng建议,不要自己设计逻辑回归代价函数梯度下降的算法。这些算法异常复杂。除非你在数值计算领域特别的牛逼!!最好使用octave内置的函数库来做这些!!怎么来利用octave内置函数呢?我们举个例子。

逻辑回归的参数,假设逻辑回归的代价函数是,分别求偏导数

然后用octave内置函数fminunc来求解。

六、多类别分类

将多类别分类变成二分类(One-vs-Rest):

  1. 分类变成个二分类问题
  2. 每次分两类:类、其余类的合并
  3. 每次都形成新的伪训练集,求出

One-vs-Rest示意图。

此时,估值函数的形式和意义发生了一些变化。对每个分类我们训练一个估值,用来预测的概率。当有一个新的特征输入时,我们用所有的做估值,取概率最大的那个作为分类的估值。原文描如下:

  • Train a logistic regression classifier  for each class  to predict the probability that .
  • On a new input , to make a prediction, pick the class  that maximized .

七、过拟合问题

7.1 What is overfitting

Overfitting: If we have too many features, the learned hypothesis may fit the training set very well(), but fail to generalize to new example(predict on new examples).

当特征过多时就会出现过拟合问题,这里的特征过多指的是:

  • 特征的多项式维数过高

或者

  • 特征太多,

7.2 Addressing overfitting

Options:

1.Reduce number of feature:

  • Manually select which features to keep
  • Model selection algorithm(Later in course)

2.Regularization:

  • Keep all the features, but reduce magnitude / values of parameters
  • Works well when we have a lot of features, each of which contributes a bit to predicting y.

翻译一下,解决过拟合问题有两种可选的办法:

1.减少特征数量:

  • 人工选择要保留的特征(减少特征)
  • 模型选择算法(后面会讲到,这里暂不讨论)

2.正则化:

  • 保留所有特征,但减小参数的量级
  • 当有很多特征时正则化性能更好,每个特征都会在预测时体现价值

7.3 正则化后的代价函数

正则化就是想办法让变小,当时,就几乎不起作用了。线性回归代价函数变为如下形式。

经过正则化后的代价函数,多了一个,我们称为Regularization Parameter正则化参数。代价函数由两部分组成:

  • 前一部分用来适应训练集;从1到m共m个训练集
  • 后一部分用来减小参数的量级,防止过拟合;从1到n共n个特征。

为什么不限制呢?观察,其中不随特征的变化而改变的值,因此不限制

同理,逻辑回归的代价函数变为如下形式。

7.4 正则化线性回归 Regularized Linear Regression

由于代价函数中加入了,所代价函数的导数以及梯度下降都发生了变化。由于项不会因变化对造成影响,导数和梯度下降公式分为两类。

导数:

梯度下降:

或者写作

基于Normal Equation的矩阵式经过正则化以后变为

其中,后面的那个矩阵P,迹1,1位置为0,迹其他位置全部是1,除了迹以外其余元素为0的矩阵。

           

               

7.5 正则化逻辑回归 Regularized Logistc Regression

逻辑回归的梯度下降和现行回归的形式一样,这个5.2节中已经推导。增加了正则化项以后,逻辑回归梯度下降公式在形式上和线性回归梯度下降也是一致的,只是的含义不同了。

导数:

梯度下降:

机器学习02-分类、逻辑回归相关推荐

  1. 机器学习中二分类逻辑回归的学习笔记

    1 致谢 感谢 Andrew Ng的教导! 2 前言 逻辑回归是机器学习中很重要而且很基础的算法,它也代表了分类算法最基本的思想. 3 二分类逻辑回归逻辑回归算法 3.1 假设函数 假设函数的形式为: ...

  2. 吴恩达ex3_吴恩达机器学习 EX3 作业 第一部分多分类逻辑回归 手写数字

    1 多分类逻辑回归 逻辑回归主要用于分类,也可用于one-vs-all分类.如本练习中的数字分类,输入一个训练样本,输出结果可能为0-9共10个数字中的一个数字.一对多分类训练过程使用"一对 ...

  3. python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归 参考:http://blog.csdn.net/luanpeng825485697/article/details ...

  4. 【吴恩达】机器学习作业 ex3data1 -- 多分类逻辑回归(Python)

    一.前言 本次是多分类逻辑回归的代码,主题是让你预测5000个手写数字对应的真正数字,每张图片有400个特征值,可以用20*20的方阵表示出来,一共5000行数据,此次的数据集是.mat类型,和以往的 ...

  5. 机器学习算法 03 —— 逻辑回归算法(精确率和召回率、ROC曲线和AUC指标、过采样和欠采样)

    文章目录 系列文章 逻辑回归 1 逻辑回归介绍 1.1 逻辑回归原理 输入 激活函数 1.2 损失以及优化 2 逻辑回归API介绍 3 案例:肿瘤良性恶性预测 4 分类模型的评估 4.1 分类评估方法 ...

  6. 吴恩达机器学习课后习题——逻辑回归

    机器学习课后作业-逻辑回归 逻辑回归 逻辑回归算法,是一种给分类算法,这个算法的实质是:它输出值永远在0到 1 之间. 将要构建一个逻辑回归模型来预测,某个学生是否被大学录取.设想你是大学相关部分的管 ...

  7. 逻辑回归二分类算法python_多分类逻辑回归 (Multinomial Logistic Regression)

    前言 分类从结果的数量上可以简单的划分为: 二分类(Binary Classification) 多分类(Multinomial Classification). 其中二分类是最常见且使用最多的分类场 ...

  8. 机器学习笔记(5)——逻辑回归

    上一篇:机器学习笔记(4)--多变量线性回归 逻辑回归实际是一种有监督学习中的分类算法,称为回归是历史原因 前言 前面我们已经学习了线性回归,线性回归适用于预测一个连续值,就是说预测值可能的范围存在连 ...

  9. 吴恩达机器学习之线性逻辑回归实现部分

    C++实现 "linear_regression.h" //二分类逻辑回归模型 struct elem_log {double y;double* x; //用数组传入自变量数据( ...

  10. 多分类逻辑回归 MNLogit python

    多分类逻辑回归MNLogit 引言 实例及python实现 数据集 查看数据情况 Logistics回归 输出结果 模型评价 Precision.Recall.f1_score ROC曲线及AUC 混 ...

最新文章

  1. cookie共享子域名
  2. 程序员应当学会“偷懒”
  3. 计算机博士专业学位,河海大学计算机应用技术博士专业学位研究生培养方案
  4. java excel sheet页_Java导出Excel Sheet页
  5. 数字时代的抉择,金蝶 EBC 的破局
  6. 调用gensim库训练word2vec词向量
  7. Tomcat 添加为系统服务 开机自动启动
  8. 【报告分享】2021年95后医美人群洞察报告:颜值经济,95后“美力”来袭.pdf(附下载链接)...
  9. [BZOJ4621]Tc605
  10. DM9000驱动分析之发送
  11. 计算机网络—数据链路层 网络层 传输层 应用层
  12. Python(二):基本数据类型、序列的基本操作
  13. 计算机视觉论文-2021-03-10
  14. 采用Zigbee和Raspberry Pi的太阳能/燃气热水器自动控制系统
  15. FPGA——sdram控制器1
  16. 阿里云ace认证内容有哪些?
  17. 阅兵方阵-蓝桥杯国赛
  18. 弗吉尼亚理工大学计算机科学,美国弗吉尼亚理工大学计算机科学本科.pdf
  19. python好学么零基础_python编程好学吗 自学行吗
  20. 【虚拟化生态平台】虚拟化平台esxi挂载USB硬盘

热门文章

  1. 关于python缩进的描述中_关于Python程序中与“缩进”有关的说法中,以下选项中正确的是()...
  2. H5使用百度地图SDK获取用户当前位置并且标记显示在地图
  3. 快速构建Spring Cloud工程
  4. 新警达尼亚尔·迪力木拉提的春运一天
  5. cnblogs不愧为cnblogs
  6. Cross-validation
  7. zabbix监控windows(03,08)
  8. [LeetCode系列]最大连续子列递归求解分析
  9. 在Linux下编写Daemon
  10. [MFC]多线程传参问题 [AfxBeginThread]