跟着Andrew Ng挑战Machine Learning(第三周)Part 1:逻辑回归简介
2017-06-05 17:53
267 查看
注意:
我发现当我在阅读其他大神&前辈们发表的文章时,往往只有前二十分钟能够集中注意力。之后就慢慢的会有些懈怠了,而往往他们付出的心血可能主要就集中在中后半部分⊙﹏⊙‖∣° 。
有鉴于此,我决定以后发的博文尽可能的短。呵呵呵呵呵呵……
建议有条件的童鞋去Coursera上学习,不仅免费还精心准备了很多联系帮助理解,以下是链接(看视频需要翻墙):
https://www.coursera.org/learn/machine-learning/
举个栗子:“分辨各位电子邮箱中的邮件是否是垃圾邮件”就是一个分类问题,结果只有是或者不是,或者说结果不是零就是一,即 y∈{0,1}。
再举一个栗子:“辨别肿瘤是否为恶性肿瘤”也是一个分类问题。如果我们用前面两章讲的回归方法来预测就有点不讲理了,请看下图。
我们先从最简单的问题说起,仅讨论前面举得例子这种只用分两类的问题(不是0就是1),即二分类问题(Binary Classification)。
这类问题中输出的值 y∈{0,1},与回归问题一样我们还需要一个拟合函数 h(x⃗ )。
hθ(x⃗ ) 与线性回归所用的是有差别的。我们需要让 hθ(x⃗ )∈(0,1),这样就可做如下定义了:
y={1, hθ(x⃗ )≥0.50, hθ(x⃗ )≤0.5
所以,从新定义 h(x⃗ ) 的形式(别问我为什么要这样定义 O__O” ,我只知其然不知其所以然):
z=θ0x0+θ1x1+⋯+θnxng(z)=11+e−zhθ(x⃗ )=g(z)
为了方便记录,让公式更简洁,后文中我会用向量的形式表示 z,即 z=θ⃗ Tx⃗ 。
g(z) 坐标图如下:
那么,接下来要做的事情就很容易理解了。和线性回归一样,我们接下来要做的事情就是找到一组最佳的特征系数 θ⃗ =(θ0,θ1,⋯,θn) 来进行分类预测。
就上述的判断肿瘤是良性还是恶性的例子,假设我们已经找到了一组最佳的特征系数 θ⃗ =(θ0,θ1), 现在我们要判断一个特征值为 x⃗ 的案例是可能为恶性还是可能为良性。很简单,只用把 x⃗ 带入拟合函数中判断就行。
假如 hθ(x⃗ )≥0.5 我们就预测“y=1,即是恶性肿瘤”,反之,hθ(x⃗ )≤0.5 我们就预测“y=1,即是良性肿瘤”。根据上图,我们还可以按下面所述的方法进行判断。
假如 θ⃗ Tx⃗ ≥0 我们就预测“y=1,即是恶性肿瘤”,反之,θ⃗ Tx⃗ ≤0 我们就预测“y=1,即是良性肿瘤”。
如下图所示,将左边的多重分类问题,分解成右边的三个二分类问题:
用训练集 X 分别训练每一个类对应的拟合函数 h(i)θ(x⃗ ),例如上图中,Class 1 对应的拟合函数为 h(1)θ(x⃗ ),Class 2 对应的拟合函数为 h(2)θ(x⃗ ), Class 3 对应的拟合函数为 h(3)θ(x⃗ )。
最后,我们用这 3 个分类分别计算测试用例 x⃗ test 对应的概率,取其最大者为对应的 ytest。即
ytest=maxih(i)θ(x⃗ test)
我发现当我在阅读其他大神&前辈们发表的文章时,往往只有前二十分钟能够集中注意力。之后就慢慢的会有些懈怠了,而往往他们付出的心血可能主要就集中在中后半部分⊙﹏⊙‖∣° 。
有鉴于此,我决定以后发的博文尽可能的短。呵呵呵呵呵呵……
建议有条件的童鞋去Coursera上学习,不仅免费还精心准备了很多联系帮助理解,以下是链接(看视频需要翻墙):
https://www.coursera.org/learn/machine-learning/
逻辑回归(Logic Regression)其实解决的是分类问题
虽然叫逻辑回归,但确实是一个分类问题,引用Coursera的原话“少年们,请不要在这里迷茫!”(好吧这绝对不是原话)什么是分类问题咧?
举个栗子:“分辨各位电子邮箱中的邮件是否是垃圾邮件”就是一个分类问题,结果只有是或者不是,或者说结果不是零就是一,即 y∈{0,1}。
再举一个栗子:“辨别肿瘤是否为恶性肿瘤”也是一个分类问题。如果我们用前面两章讲的回归方法来预测就有点不讲理了,请看下图。
本章所述的逻辑回归要怎样解决这类问题呢?
我们先从最简单的问题说起,仅讨论前面举得例子这种只用分两类的问题(不是0就是1),即二分类问题(Binary Classification)。
这类问题中输出的值 y∈{0,1},与回归问题一样我们还需要一个拟合函数 h(x⃗ )。
hθ(x⃗ ) 与线性回归所用的是有差别的。我们需要让 hθ(x⃗ )∈(0,1),这样就可做如下定义了:
y={1, hθ(x⃗ )≥0.50, hθ(x⃗ )≤0.5
所以,从新定义 h(x⃗ ) 的形式(别问我为什么要这样定义 O__O” ,我只知其然不知其所以然):
z=θ0x0+θ1x1+⋯+θnxng(z)=11+e−zhθ(x⃗ )=g(z)
为了方便记录,让公式更简洁,后文中我会用向量的形式表示 z,即 z=θ⃗ Tx⃗ 。
g(z) 坐标图如下:
那么,接下来要做的事情就很容易理解了。和线性回归一样,我们接下来要做的事情就是找到一组最佳的特征系数 θ⃗ =(θ0,θ1,⋯,θn) 来进行分类预测。
就上述的判断肿瘤是良性还是恶性的例子,假设我们已经找到了一组最佳的特征系数 θ⃗ =(θ0,θ1), 现在我们要判断一个特征值为 x⃗ 的案例是可能为恶性还是可能为良性。很简单,只用把 x⃗ 带入拟合函数中判断就行。
假如 hθ(x⃗ )≥0.5 我们就预测“y=1,即是恶性肿瘤”,反之,hθ(x⃗ )≤0.5 我们就预测“y=1,即是良性肿瘤”。根据上图,我们还可以按下面所述的方法进行判断。
假如 θ⃗ Tx⃗ ≥0 我们就预测“y=1,即是恶性肿瘤”,反之,θ⃗ Tx⃗ ≤0 我们就预测“y=1,即是良性肿瘤”。
用一对多的方法解决多重分类的问题
一对多是一种非常简单的方法,其核心就是不断的使用Part1、Part2介绍的二分类问题,然后在多个二分类机的预测结果中选择可能性最大的那一个。如下图所示,将左边的多重分类问题,分解成右边的三个二分类问题:
用训练集 X 分别训练每一个类对应的拟合函数 h(i)θ(x⃗ ),例如上图中,Class 1 对应的拟合函数为 h(1)θ(x⃗ ),Class 2 对应的拟合函数为 h(2)θ(x⃗ ), Class 3 对应的拟合函数为 h(3)θ(x⃗ )。
最后,我们用这 3 个分类分别计算测试用例 x⃗ test 对应的概率,取其最大者为对应的 ytest。即
ytest=maxih(i)θ(x⃗ test)
小结
简介部分就到这里,下一章介绍逻辑回归算法中的代价函数,以及如何得到特征向量 θ⃗ 的最优解。送一个定心丸,如果觉得前面所讲的线性回归难度不大,那么下一章将同样没有多大难度(☆_☆)。相关文章推荐
- 跟着Andrew Ng挑战Machine Learning(第三周)Part 2:逻辑回归的代价函数
- 跟着Andrew Ng挑战Machine Learning(第三周)Part 3:过拟合问题
- 跟着Andrew Ng挑战Machine Learning(第二周):多元线性回归+特征缩放
- 逻辑回归Softmax简介
- 【原】Andrew Ng斯坦福机器学习 Coursera—Programming Exercise 3 逻辑回归多分类和神经网络
- Spark LogisticRegression 逻辑回归之简介
- 逻辑回归Logistic Regression 模型简介
- 斯坦福机器学习-第三周(分类,逻辑回归,过度拟合及解决方法)
- Coursera Machine Learning 课程笔记之第三周:逻辑回归(Logistic Regression)
- Andrew Ng机器学习笔记ex5 正则化的逻辑回归、偏差和方差
- 斯坦福机器学习Coursera课程:第三周作业--逻辑回归
- 机器学习系列-逻辑回归简介
- 机器学习—逻辑回归理论简介
- 深度学习入门(二) 线性回归、逻辑回归、正则化过程、神经网络简介
- Andrew NG 机器学习 笔记-week3-逻辑回归
- 【机器学习入门】Andrew NG《Machine Learning》课程笔记之四:分类、逻辑回归和过拟合
- 逻辑回归简介
- Coursera 机器学习(by Andrew Ng)课程学习笔记 Week 3——逻辑回归、过拟合与正则化
- 逻辑回归算法简介及用python实现
- 逻辑回归(Logistic Regression)简介及C++实现