1 逻辑回归

1. classification 分类

eg:垃圾邮件分类、交易是否是欺诈、肿瘤类别。分类的结果是离散值。

2. sigmoid函数

  使用线性方法来判断分类问题,会出现上图中的问题,需要人工判断分界点。有些特殊的样本点,也会使得分界点发生漂移,影响准确性。我们希望我们的分类器输出范围在0~1之间,此时分类问题转化为边界问题。sigmoid函数能保证数据在0~1之间,并且越趋近于无穷大,输出趋近于1。

假设函数预测的是对于输入x,输出为1的概率。

3. cost function

如果代价函数依然采用平方误差函数,得到的是一个non-convex函数,此时梯度下降无法保证收敛得到全局最优值。因此我们用另一种方式表示cost function,使它作为convex函数,易于求解。

如果把代价函数定义为上述形式,当真实的值是1时,我们预测的值越靠近1,cost的值越小,误差越小。如果真实值是0,那么预测的值越靠近1,cost的值越大。

简化公式:


4. 梯度下降

一般形式:

计算微分部分得到:

5. 高级优化方法

“共轭梯度Conjugate gradient”,“BFGS”和“L-BFGS” 是可以用来代替梯度下降来优化θ的更复杂,更快捷的方法。 
都是求J函数和偏导数,然后进行优化。后三个算法优点:都不需要手动选择学习率阿尔法(他们有内部循环,线性搜索算法,可以自动尝试学习率,并选择最好的学习率);它们的收敛速度往往比梯度下降要快。缺点:更复杂

6. 多分类问题

可以理解为采用多个Losgistic分类器进行分类,针对每个样本点进行一次预测,选择概率值最大的那个。

2 正则化

1. 过拟合


图一 欠拟合,高偏差。图三 过拟合,高方差。
2 解决方法
                  1. 减少特征的数量,可以通过一些特征选择的方法进行筛选。
                  2. 正则化,通过引入一个正则项,限制参数的大小。

3 正则化用于线性回归

4 正则化用于逻辑回归

比如下面的曲线,针对高次项的参数,在后面多加一项乘以1000。这样在优化损失函数的时候,会强制θ3和θ4不会很大,并且趋近于0,只有这样才会保证损失函数的值足够小。

得到的公式如下,注意只会针对x1开始,θ0相当于只是针对偏置项设置的,因此不需要加正则项。

但是如果λ设置的过大,相当于所有的θ都变成了0,损失函数的曲线相当于一条直线,就没有任何意义了,因此选择适合的λ很重要,后面也会讲解如何选择正确的λ。
5 梯度下降

添加正则项之后,梯度下降的公式就发生了变化:

 3 编程作业——实现logistic regression

还有很多看不懂的地方,这两篇博文说的很详细:

https://blog.csdn.net/Cowry5/article/details/80247569

https://blog.csdn.net/u012052268/article/details/78653293

coursera-斯坦福-机器学习-吴恩达-笔记week3的更多相关文章

  1. coursera-斯坦福-机器学习-吴恩达-笔记week1

    1 Introduction 1.1 概念:一个程序被认为能从经验E中学习,解决任务 T,达到性能度量值P,当且仅当, 有了经验E后,经过P评判, 程序在处理 T 时的性能有所提升. 1.2 机器学习 ...

  2. coursera-斯坦福-机器学习-吴恩达-笔记week4

    1 神经网络的提出 线性回归和逻辑回归能很好的解决特征变量较少的问题,但对于变量数量增加的复杂非线性问题,单纯增加二次项和三次项等特征项的方法计算代价太高. 2 神经网络算法 2.1 神经元 模拟神经 ...

  3. coursera-斯坦福-机器学习-吴恩达-笔记week2

    1 多元线性回归 1.1 假设函数 多元线性回归是指有多个特征特征变量的情况.此时我们修改假设函数hθ(x)=θ0+θ1∗x为hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn.设x0=1,x为特征向 ...

  4. 第19月第8天 斯坦福大学公开课机器学习 (吴恩达 Andrew Ng)

    1.斯坦福大学公开课机器学习 (吴恩达 Andrew Ng) http://open.163.com/special/opencourse/machinelearning.html 笔记 http:/ ...

  5. 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程

    上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matl ...

  6. 笔记:《机器学习训练秘籍》——吴恩达deeplearningai微信公众号推送文章

    说明 该文为笔者在微信公众号:吴恩达deeplearningai 所推送<机器学习训练秘籍>系列文章的学习笔记,公众号二维码如下,1到15课课程链接点这里 该系列文章主要是吴恩达先生在机器 ...

  7. 吴恩达(Andrew Ng)——机器学习笔记1

    之前经学长推荐,开始在B站上看Andrew Ng的机器学习课程.其实已经看了1/3了吧,今天把学习笔记补上吧. 吴恩达老师的Machine learning课程共有113节(B站上的版本https:/ ...

  8. ML:吴恩达 机器学习 课程笔记(Week1~2)

    吴恩达(Andrew Ng)机器学习课程:课程主页 由于博客编辑器有些不顺手,所有的课程笔记将全部以手写照片形式上传.有机会将在之后上传课程中各个ML算法实现的Octave版本. Linear Reg ...

  9. Coursera课程《Machine Learning》吴恩达课堂笔记

    强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...

随机推荐

  1. numpy 性能提升

    a = np.array([1,2,3,4,5,1,2,2,2])c = np.unique(a)print(c) 对于很大的稀疏矩阵,我们不能用a[a>0]去取大于0的元素,而应该使用np.w ...

  2. python列表常用内建方法

    python列表常用内建方法: abc = ['a',1,3,'a'] #abc.pop(1) #删除索引1的值.结果['a', 3] #abc.append([123]) #结果:['a', 1, ...

  3. JavaScript知识精简

      JS单线程,同步,一次执行某一段代码,等到前一个程序执行完毕再执行.,阻塞,安全. 多线程,异步,不用等到前一个程序执行完毕就执行. 数据类型 JavaScript 是 弱类型 语言,但并不是没有 ...

  4. vim代码格式化插件clang-format

    title: vim代码格式化插件clang-format date: 2017-12-12 20:28:26 tags: vim categories: 开发工具 安装vim-clang-forma ...

  5. 让sublime可以和visual studio一样自动在运算符前后添加空格的插件

    用过vs的人都知道,vs会自动在代码中运算符的前后加空格,比如 i=1; 换行后会自动变成i = 1; 开始觉得这个挺烦的,后来习惯了,发现这个功能还是挺好的,然代码更清晰. 最近换了sublimet ...

  6. python 减少可调用对象的参数个数

    有一个被其他python 代码使用的callable 对象,可能是一个回调函数或者是一个处理器,但是它的参数太多了,导致调用时出错 如果需要减少某个函数的参数个数, 你可以使用functools.pa ...

  7. C#计算重重字符串,出现的次数

    int bac = System.Text.RegularExpressions.Regex.Matches(“字符串”, @"要计算的").Count;        //字符串 ...

  8. 8、Spring-Kafka Recving Messages

    Record Listeners The @KafkaListener annotation provides a mechanism for simple POJO listeners. The f ...

  9. Docker Swarm 高可用详解

    Docker Swarm 高可用详解 Manager管理节点宕机后其他管理节点仍然可以使用管理 intermal distributed state store:内部分布式状态存储同步共享到每个节点. ...

  10. openwrt修改hosts

    不同于标准linux主机,openwrt使用dnsmasq来管理dns和dhcp. 修改dnsmasq的配置文件 vi /etc/config/dhcp 在config dnsmasq这组下面添加 l ...