本作业使用逻辑回归(logistic regression)和神经网络(neural networks)识别手写的阿拉伯数字(0-9) 关于逻辑回归的一个编程练习,可参考:http://www.cnblogs.com/hapjin/p/6078530.html 下面使用逻辑回归实现多分类问题:识别手写的阿拉伯数字(0-9),使用神经网络实现:识别手写的阿拉伯数字(0-9),请参考:神经网络实现 数据加载到Matlab中的格式如下: 一共有5000个训练样本,每个训练样本是400维的列向量(20X…
在本练习中,先介绍了SVM的一些基本知识,再使用SVM(支持向量机 )实现一个垃圾邮件分类器. 在开始之前,先简单介绍一下SVM ①从逻辑回归的 cost function 到SVM 的 cost function 逻辑回归的假设函数如下: hθ(x)取值范围为[0,1],约定hθ(x)>=0.5,也即θT·x  >=0时,y=1:比如hθ(x)=0.6,此时表示有60%的概率相信 y 等于1 显然,要想让y取值为1,hθ(x)越大越好,因为hθ(x)越大,y 取值为1的概率也就越大,也即:更…
本文根据水库中蓄水标线(water level) 使用正则化的线性回归模型预 水流量(water flowing out of dam),然后 debug 学习算法 以及 讨论偏差和方差对 该线性回归模型的影响. ①可视化数据集 本作业的数据集分成三部分: ⓐ训练集(training set),样本矩阵(训练集):X,结果标签(label of result)向量 y ⓑ交叉验证集(cross validation set),确定正则化参数 Xval 和 yval ⓒ测试集(test set)…
本作业使用神经网络(neural networks)识别手写的阿拉伯数字(0-9) 关于使用逻辑回归实现多分类问题:识别手写的阿拉伯数字(0-9),请参考:http://www.cnblogs.com/hapjin/p/6085278.html 由于逻辑回归是线性分类(它的假设函数是一个线性函数,就是划一条直线,把数据分成了两类.可参考这篇文章中的:②使用逻辑回归来实现多分类问题(one-vs-all) 部分 的图片) 对于一些复杂的类别,逻辑回归就解决不了了.比如下面这个图片中的分类.(无法通…
1. 优化目标 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比如:你为学习算法所设计的 特征量的选择,以及如何选择正则化参数,诸如此类的事.还有一个更加强大的算法广泛的应用于工业界和学术界,它被称为支持向量机(Support Vector Machine).与逻辑回归和神经网络相比,支持向量机,或者简称SVM,在学习复杂的非线性方程时提供了一种更为清晰…
在这篇文章中,会实现一个BP(backpropagation)算法,并将之应用到手写的阿拉伯数字(0-9)的自动识别上. 训练数据集(training set)如下:一共有5000个训练实例(training instance),每个训练实例是一个400维特征的列向量(20*20 pixel image).用 X 矩阵表示整个训练集,则 X 是一个 5000*400 (5000行 400列)的矩阵 另外,还有一个5000*1的列向量 y ,用来标记训练数据集的结果.比如,第一个训练实例对应的输出…
支持向量机(Support Vector Machines) 优化目标(Optimization Objective) 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用算法 A 还是算法 B ,其实一个算法的表现通常依赖于你的水平.例如:你为算法所设计或选择的特征.正则化参数的选取.学习曲线.误差分析.算法评估,等等诸如此类的细节决定了一个算法的性能. 在机器学习领域中,还有一个更加强大的监督学习算法被广泛地应用于工业界和学术界…
本栏目内容来源于Andrew NG老师讲解的SVM部分,包括SVM的优化目标.最大判定边界.核函数.SVM使用方法.多分类问题等,Machine learning课程地址为:https://www.coursera.org/course/ml 大家对于支持向量机(SVM)可能会比较熟悉,是个强大且流行的算法,有时能解决一些复杂的非线性问题.我之前用过它的工具包libsvm来做情感分析的研究,感觉效果还不错.NG在进行SVM的讲解时也同样建议我们使用此类的工具来运用SVM. (一)优化目标(Opt…
12.1  优化目标 12.2  大边界的直观理解 12.3  数学背后的大边界分类(可选) 12.4  核函数 1 12.5  核函数 2 12.6  使用支持向量机 12.1  优化目标 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法 A 还是学习算法 B,而更重要的是, 应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比 如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,…
12.1 优化目标 参考视频: 12 - 1 - Optimization Objective (15 min).mkv 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,诸如此类的事.还有一个更加强大的算法广泛的应用于工业界和学术界,它被称为支持向量…
与逻辑回归和神经网络相比,支持向量机或者简称 SVM,更为强大. 人们有时将支持向量机看作是大间距分类器. 这是我的支持向量机模型代价函数 这样将得到一个更好的决策边界 理解支持向量机模型的做法,即努力将正样本和负用最大间距分开. 实际上应用支持向量机的时候, 当…
SVM被许多人认为是最强大的“黑箱”学习算法,并通过提出一个巧妙选择的优化目标,今天最广泛使用的学习算法之一. Optimization Objective 根据Logistic Regression,有如下表述: 为了达到尽量好的分类效果,我们需要theta‘*x >> 0 or theta‘*x << 0,根据上面的函数图象,这时候的h(x)->1 or h(x)->0,可以看出这时我们的分类效果是最具说服力的. 根据逻辑回归的Cost Function我们可以得到…
7 核函数(Kernels) 最初在“线性回归”中提出的问题,特征是房子的面积x,结果y是房子的价格.假设从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点.那么首先需要将特征x扩展到三维,然后寻找特征和结果之间的模型.将这种特征变换称作特征映射(feature mapping).映射函数称作,在这个例子中 我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征.这样,需要将前面公式中的内积从,映射到. 至于为什么需要映射后的特征而不是最初的特征来…
1 目录 支持向量机基本上是最好的有监督学习算法了,从logistic回归出发,引出了SVM,揭示模型间的联系,过渡自然. 2 重新审视logistic回归 Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特征的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷.因此,使用logistic函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率. 假设函数其中x是n维特征向量,函数g就是logistic函数.的图像是 可以看到,…
11 SMO优化算法(Sequential minimal optimization) SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优.关于SMO最好的资料就是他本人写的<Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines>. 首先回到前面一直悬而未解的问题,对…
Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machine) 是一个更加强大的算法,广泛应用于工业界和学术界.与逻辑回归和神经网络相比, SVM在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式.我们通过回顾逻辑回归,一步步将其修改为SVM. 首先回顾一下逻辑回归: 其 cost function 公式如下(这里稍微有点变化,将负号移到了括号内…
作业: machine-learning-ex6 1. 支持向量机(Support Vector Machines) 在这节,我们将使用支持向量机来处理二维数据.通过实验将会帮助我们获得一个直观感受SVM是怎样工作的.以及如何使用高斯核(Gaussian kernel ).下一节我们将使用SVM建立一个垃圾邮件分类器. 1.1 样本数据1 以二维线性可分数据开始.下面代码部分将会可视化此数据集如图1所示.在这个数据集中,正样本使签为1使用+表示,负样本标签为0使用o表示,由一条间隙隔开.注意有一…
7 Support Vector Machines7.1 Large Margin Classification7.1.1 Optimization Objective支持向量机(SVM)代价函数在数学上的定义. 复习一下S型逻辑函数: 那么如何由逻辑回归代价函数得到支持向量机的代价函数(对于一个示例): 其实就是将逻辑回归的代价函数中的log(1/(1+e^(-ΘTx)))和log(1-1/(1+e^(-ΘTx)))分别替换为cost1(ΘTx)和cost0(ΘTx)(cost0和cost1分…
SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习.分类和预测(有时也叫回归)的一种方法,能解决神经网络不能解决的过学习问题.作者以为,类似的根据样本进行学习的方法还有基于案例的推理(Case-Based Reasoning),决策树归纳算法C4.5等,以后将详细阐述这两种方法. (2)过学习问题:训练误差过小导致推广能力下降,即真实风险的增加. (…
Support Vector Machines 引言 内核方法是模式分析中非常有用的算法,其中最著名的一个是支持向量机SVM 工程师在于合理使用你所拥有的toolkit 相关代码 sklearn-SVM 本文要点 1.Please explain Support Vector Machines (SVM) like I am a 5 year old - Feynman Technique 2.kernel trick 一.术语解释 1.1 what is support vector? 从名词…
引言 这一讲及接下来的几讲,我们要介绍supervised learning 算法中最好的算法之一:Support Vector Machines (SVM,支持向量机).为了介绍支持向量机,我们先讨论"边界"的概念,接下来,我们将讨论优化的边界分类器,并将引出拉格朗日数乘法.我们还会给出 kernel function 的概念,利用 kernel function,可以有效地处理高维(甚至无限维数)的特征向量,最后,我们会介绍SMO算法,该算法说明了如何高效地实现SVM. Margi…
编程作业有两个文件 1.machine-learning-live-scripts(此为脚本文件方便作业) 2.machine-learning-ex1(此为作业文件) 将这两个文件解压拖入matlab工作区内并将machine-learning-live-scripts内的ex1.mlx拖入到machine-learning-ex1\ex1中 在命令提示符区输入subimit命令,并填写邮箱与提交凭证来提交作业. 1.A simple MATLAB function 修改warmUpExerc…
课程笔记 Coursera—Andrew Ng机器学习—课程笔记 Lecture 9_Neural Networks learning 作业说明 Exercise 4,Week 5,实现反向传播 backpropagation神经网络算法, 对图片中手写数字 0-9 进行识别. 数据集 :ex4data1.mat.手写数字图片数据,5000个样例.每张图片20px * 20px,也就是一共400个特征.数据集X维度为5000 * 400 ex4weights.mat.神经网络每一层的权重. 文件…
作业说明 Exercise 1,Week 2,使用Octave实现线性回归模型.数据集  ex1data1.txt ,ex1data2.txt 单变量线性回归必须实现,实现代价函数计算Computing Cost 和 梯度下降Gradient Descent. 多变量线性回归可选,实现 特征Feature Normalization.代价函数计算Computing Cost . 梯度下降Gradient Descent  和 Normal Equations . 文件清单 ex1.m ex1_m…
作业说明 Exercise 2,Week 3,使用Octave实现逻辑回归模型.数据集  ex2data1.txt ,ex2data2.txt 实现 Sigmoid .代价函数计算Computing Cost 和 梯度下降Gradient Descent. 文件清单 ex2.m - Octave/MATLAB script that steps you through the exercise ex2 reg.m - Octave/MATLAB script for the later part…
作业说明 Exercise 3,Week 4,使用Octave实现图片中手写数字 0-9 的识别,采用两种方式(1)多分类逻辑回归(2)多分类神经网络.对比结果. (1)多分类逻辑回归:实现 lrCostFunction 计算代价和梯度.实现 OneVsAll 使用 fmincg 函数进行训练.使用 OneVsAll 里训练好的 theta 对 X 的数据类型进行预测,得到平均准确率. (2)多分类神经网络:两层 theta 权重值在 ex3weights 里已提供.参数不需要调,只需要在 pr…
保存在github上供广大网友下载:点击 8个zip,原文件,没有任何改动. 另外,不定期上传我自己关于这门课的学习过程笔记和心得,有兴趣的盆友可以点击这里查看.…
编程作业文件: machine-learning-ex2 1. Logistic Regression (逻辑回归) 有之前学生的数据,建立逻辑回归模型预测,根据两次考试结果预测一个学生是否有资格被大学录取. 载入学生数据,第1,2列分别为两次考试结果,第3列为录取情况. % Load Data % The first two columns contain the exam scores and the third column contains the label. data = load(…
作业文件: machine-learning-ex5 1. 正则化线性回归 在本次练习的前半部分,我们将会正则化的线性回归模型来利用水库中水位的变化预测流出大坝的水量,后半部分我们对调试的学习算法进行了诊断,并检查了偏差和方差的影响. 1.1 可视化数据集 x表示水位变化,y表示水流量.整个数据集分成三个部分 模型的训练集,用来从X,y中学习参数. 交叉验证集,从Xval, yval中决定正则化参数 测试集,用来预测的样本,从数据集为 Xtest, ytest. 绘制的图像如图1 1.2 正则化…
问题描述:使用SVM(支持向量机 )实现一个垃圾邮件分类器. 在开始之前,先简单介绍一下SVM ①从逻辑回归的 cost function 到SVM 的 cost function 逻辑回归的假设函数如下: hθ(x)取值范围为[0,1],约定hθ(x)>=0.5,也即θT·x  >=0时,y=1:比如hθ(x)=0.6,此时表示有60%的概率相信 y 等于1 显然,要想让y取值为1,hθ(x)越大越好,因为hθ(x)越大,y 取值为1的概率也就越大,也即:更好把握相信 y 等于1.而要想hθ…