Coursera上Andrew Ng机器学习课程总结(一)
来源:互联网 发布:ultrawebgrid绑定数据 编辑:程序博客网 时间:2024/05/17 02:15
利用大约一个月的时间把coursera公开课Andrew Ng讲授的机器学习课程看完了,并且把8个编程联系也实现了,写篇总结来归纳下知识点。客观的来说,这门公开课很偏工程,老师对于数学知识能省则省,对于那些想初窥机器学习的同学,倒是很推荐看下。
机器学习按照训练集有无标签分为监督学习和无监督学习。监督学习,我们经常用它处理回归问题、分类问题,而课程里介绍的有:线性回归模型、logistics回归模型、神经网络及SVM模型;无监督学习,主要处理聚类的问题,课程里主要介绍的是K-means模型。
线性回归
线性回归问题,简单来说就是给出训练集,用线性函数来拟合这些数据,最后这个线性函数来计算给定自变量对应的因变量的值。
单变量的线性回归
我们的假设函数是
为了使我们的假设函数能够更好的拟合训练集的数据,我们使用最小二乘法来定义代价函数
那么下面我们就需要极小化公式[1]
这里我们采用的方法即是梯度下降法(又叫做批量梯度法),给定一个学习速率或者说是步长
为了能够使梯度下降法每次迭代,代价函数都能够减少,我们往往会画图来观察代价函数值是否每次都在减少。我们上面说的
多变量的线性回归
特征向量标准化
之所以要进行特征向量的标准化,是因为各个特征变量的值往往差距比较大,在进行梯度下降法的时候,速度慢。一般而言,我们标准化是特征值减去特征向量的均值最后在除以特征向量的标准差。
多变量线性回归
在梯度下降时,每个
梯度下降法,有时候需要做特征向量的标准化,是不是感觉有些麻烦,那么下面介绍的方法就不需要做这样的数据预处理工作了,它就是标准公式法:
Logistics回归
对于分类问题而言,假如使用线性回归模型,那么很可能存在噪声数据,导致我们的假设函数非常倾斜,那么就容易把正类判断为负类。
Logistics回归模型
want
where function g is the sigmoid function
当我们预测的时候,假如[3]的值大于0.5,那我们就可以认为预测值是正类,反之,负类。
定义代价函数如下:
代价函数对
正则化Logistics回归
对训练集的数据进行拟合,欠拟合(Underfitting),称作高偏差(high bias),过拟合(Overfitting),称作高方差(high variance)。我们使用正则化来减少过拟合。
对于公式[4],正则化话后公式变为:
同样的,对
当j=0时,
当
注意:我们通常不正则化
多类分类器
我们使用one-vs-all分类方法来进行多类的模型建立:先把1个类看做正类,把剩下的类看做负类,按照这个方法,分别对这些多类建立logistics回归模型,预测的时候把特征值分别带入到这些训练好的logistics函数里,预测的类别就是函数输出的最大概率值。
神经网络
上图的模型是比较简单的。基本上一个神经网络要包括一个输入层(Input Layer)、一个输出层(Output Layer)及K个隐藏层(Hidden layer)。
正向传播
代价函数如下:
注意:这里的大K的值是输出层的数量,即最后的分类类别数量。
当我们使用神经网络时,很重要的是随机初始化每层的
反向传播
我们使用反向传播算法来计算神经网络的代价函数的导数。(为什么不再正向传播来计算?)
反向传播算法
假设训练集为
设置
For i=1 to m
Set
Perform forward propagation to compute
Using
Compute
————————————————————————————————
训练模型评价
通常我们把样本集按照6:2:2的比例分为:训练集、验证集和测试集。
只介绍两种作图分析方法:
lambda曲线
正则化后,横轴为
从上图可以看到,随着
学习曲线
横轴为样本数量m,纵轴为不带正则化的代价函数,同样的需要绘制训练集和验证集来分析高偏差和高方差情况。
上图是高偏差情况,随着样本数量的增加,训练集和验证集趋于稳定并且相差不大。这种情况,盲目的增加样本数量是起不来作用的(想想为什么)。
上图是高方差的情况,随着样本数量的增加,训练集和验证集趋于稳定但是相差较大。这种情况,增加样本数量是能够减少误差。
单值分析
通常我们把y=1的标签给那些不常出现的类,即偏斜类。为了能用单值衡量我们系统的优劣,我们引入F值,再讲F值之前,我们先看下什么是查准率和召回率。
设tp=正类and预测为正类的数量,
fp=负类and预测为正类的数量,
fn=正类and预测为负类的数量。
查准率 P=tp/(tp+fp)
召回率 R=tp/(tp+fn)
一个系统P值和R值不可能同时很大。举个例子,logistics回归,我们把0.5阀值设置的大点,改为0.7,那么tp减少,fp减少,fn增大,那我们的P增大,R减小,也就是说我们预测的更准确了。反之,R高,P低。
通常我们使用它们的调和平均数来衡量,即F = 2(P*R)/(P+R) , F值大,较好。
支持向量机
支持向量机(support vector machine),简称SVM。
不打算按照公开课的思路来讲,发个牛人写的SVM三境界支持向量机通俗导论
我只来整理下公开课上logistics回归和SVM的使用情形。
设n为特征向量,m为训练集样本量
当n相对于m很大时,比如n=10000,m=10-1000。使用logistics回归或者是不带核函数的SVM。
当n很小,m中等程度时,比如n=1-1000,m=10-10000。使用带高斯核函数的SVM。
当n很小,m很大时,比如n=1-1000,m=50000以上。增加更多的特征量,然后使用logistics回归或者不带核函数的SVM。
- Coursera上Andrew Ng机器学习课程总结(一)
- Coursera上Andrew Ng机器学习课程总结(二)
- 机器学习:推荐系统(Andrew Ng Coursera课程)
- Coursera 机器学习(by Andrew Ng)课程学习笔记(四)——神经网络(一)
- Coursera 的机器学习 (Andrew Ng) 课程 视频百度云
- Andrew Ng机器学习课程总结
- Andrew NG 机器学习课程笔记(一)
- Andrew Ng机器学习课程笔记(一)
- Coursera上的Andrew Ng《机器学习》学习笔记Week1
- Coursera上的Andrew Ng《机器学习》学习笔记Week2
- Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 1)Python3.x (补)
- Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 1)Python3.x
- Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 2)Python3.x
- Andrew Ng coursera上的《机器学习》ex1
- Andrew Ng coursera上的《机器学习》ex2
- Andrew Ng coursera上的《机器学习》ex3
- Andrew Ng coursera上的《机器学习》ex4
- Andrew Ng coursera上的《机器学习》ex5
- VC对话框大小和位置设置
- Binary Tree Level Order Traversal II 从下向上按层遍历二叉树
- A program to compute word length of a machine
- iOS中动画实现技术主要是:Core Animation。
- [csu oj]1553: Good subsequence(水题)
- Coursera上Andrew Ng机器学习课程总结(一)
- Balanced Binary Tree 平衡二叉树的判断
- String to Integer
- [图像]摄像机标定(2) 张正友标定推导详解
- Thinkphp学习笔记
- Minimum Depth of Binary Tree 二叉树的最小深度
- JQuery学习笔记之一
- HDU 5196 DZY Loves Inversions(离线+线段树)
- Python列表 元组 和字典