机器学习笔记
Coursera上吴恩达的机器学习视频笔记,防止忘记,也算总结,温故知新吧
shiyongraow
冷暖自知
展开
-
机器学习第十一周--照片OCR
ML Pipeline照片OCRML pipeline滑动窗人工合成数据创造新数据通过已有的样本创造新的样本上限分析ML PipelineOCR指光学字符识别,作者这里介绍照片OCR技术的目的主要有三个: 1、展示一个复杂的机器学习系统是如何被组合起来的。 2、介绍机器学习流水线(ML pipeline)的有关概念以及决定下一步如何分配资源。 3、通过介绍照片OCR问题原创 2017-10-12 13:48:44 · 1112 阅读 · 1 评论 -
机器学习第十周(二)--在线学习、Map reduce
在线学习运输服务搜索Map reduceMap-reduce原理使用Map-reduce的条件Map-reduce处理逻辑回归在线学习在拥有连续一波数据或连续的数据流涌进来,而我们又需要一个算法来从中学习的时候来模型化问题时,我们就需要用到在线学习机制。 如果你有一个由连续的用户流引发的连续的数据流,用户流进入你的网站,你能做的是使用一个在线学习机制,从数据流中学习用户的偏好,然后使用原创 2017-10-12 10:03:01 · 608 阅读 · 0 评论 -
机器学习第十周(一)--随机梯度下降
大数据随机梯度下降小批量梯度下降随机梯度下降的收敛大数据机器学习中约定俗成有这么一句话:更多的数据决定算法的好坏。 但是数据变多时,计算量也就相应增多。当我们的训练集大小为一亿时,训练集就非常大了。当我们训练集非常大时,我们会随机选取几千条数据来验证我们的算法是否合适。这里随机取1000个数据。画出学习曲线,左边处于高方差状态,我们需要增加训练集。右边处于高偏差状态,增加特征或是一个不错的方原创 2017-10-11 22:02:20 · 907 阅读 · 0 评论 -
机器学习第九周(四)--推荐系统
预测电影评分基于内容的推荐构造特征向量参数向量theta的计算梯度下降协同过滤特征向量矛盾协同过滤的优化协同过滤的优化协同过滤过程低秩矩阵分解协同过滤的向量化实现找相关电影均值归一化均值归一化的引入均值归一化预测电影评分推荐系统的引入主要有俩个原因: 1、推荐系统是机器学习中一个很重要的应用,一些大的商业公司会利用推荐系统来提高商业效益,这是很重要的。 2、原创 2017-10-01 10:18:34 · 909 阅读 · 0 评论 -
机器学习第九周(三)--多元高斯分布
以一个例子引入: 把这俩个特征单独拿出来都是符合高斯分布的,现有一个绿色的异常点,我们很难从x1和x2这俩个维度下去判别是否是异常点。 因为从左图看,正常数据是分布在椭圆范围内,我们使用的异常检测算法是从中心区域向外以正圆的形式扩展的,当我们碰到左上角的绿色点时,很有可能就处于正常数据等同的同心圆内,所以就不能判定异常。 所以我们需要改良版的异常检测算法—-多元高斯分布 在多元高斯分布中,原创 2017-09-29 22:59:07 · 5894 阅读 · 2 评论 -
机器学习第九周(二)--构建异常检测系统
异常检测系统的开发与评估异常检测 or 监督学习如何选择特征特征选择的建议异常检测系统的开发与评估 前面内容中,我们已经提到了使用实数评估法的重要性。这样做的想法是,当你在用某个学习算法来开发一个具体的机器学习应用时,你常常需要做出很多决定,比如说选择用什么样的特征等等。而如果你找到某种评估算法的方式,比如直接返回一个数字,来告诉你算法的好坏,那么你做这些决定就显得更容易了。有了这样的数字,原创 2017-09-29 16:44:48 · 596 阅读 · 0 评论 -
机器学习第九周(一)--异常检测
1、异常检测问题 异常检测问题虽然主要用于非监督学习问题,但从某些角度看,又类似于一些监督学习问题。以飞机引擎的QA测试为例,我们需要采集一些飞机引擎的特征,如 x1 \ x_1\ 和 x2 \ x_2\ ,如果生产了m个引擎的话就有了m个数据集,我们需要对一个新生产的引擎 xtest \ x_{test} \ 判断是否有异常?2、异常问题定义 假设我们有m个正常的样本数据 x(1),x(2原创 2017-09-29 08:57:54 · 669 阅读 · 0 评论 -
机器学习第八周(三)--PCA
PCA主成分分析PCA介绍PCA引入PCA 与 linear regressionPCA Algorithm预处理PCA 具体细节应用PCA重构reconstruction如何选择K应用PCA的建议PCA应用场景PCA的错用 overfittingPCA的使用建议PCA(主成分分析)PCA介绍PCA引入我们仍然以俩个feature为例。 对于黑色叉点,也就是拥有俩原创 2017-09-15 20:02:19 · 1810 阅读 · 0 评论 -
机器学习第八周(二)--降维
降维数据压缩 Data Compression可视化数据 Data Visualization前面我们说了无监督学习的第一个问题K-means算法,这里我们说第二个问题——降维。降维我们使用降维的第一个原因就是数据压缩。对数据进行压缩不仅能够使数据占用更少的计算机内存和硬盘空间。还能提高算法效率。数据压缩 (Data Compression)作者这里给了一个从二维降到一维的例子。 原原创 2017-09-15 16:42:14 · 421 阅读 · 0 评论 -
机器学习第八周(一)--K-means
聚类Clustering无监督介绍和聚类引入K-means算法K-means规范表述更具体的K-means处理未分离的簇目标优化K-means优化函数目的K-means的优化函数随机初始化随机初始化注意选择簇的数量肘部法则通过后续目的来判定聚类(Clustering)无监督介绍和聚类引入正如我们前面所说,监督学习问题的数据带有标签,目的是找到一个分界面使带标签的数据分隔开。原创 2017-09-14 15:38:39 · 785 阅读 · 0 评论 -
机器学习第七周(三)--using SVM
Using SVM几种常见核函数线性核函数高斯核函数多项式核函数多分类Logistic Regression vs SVMSVM vs NNSVM vs NNUsing SVM使用SVM中需要确定参数C以及核函数。 前一讲中我们提到标记点的选取和核函数的选择尤为重要。作者这里列举了一些核函数,但只推荐线性核函数和高斯核函数,其它用的都较少。几种常见核函数线性核函数线性核函数也叫无原创 2017-09-08 22:52:10 · 556 阅读 · 0 评论 -
机器学习第七周(二)--Kernels
Kernels I构建新特征核的作用高斯核表现形式决策边界Kernels IISVM with KernelsSVM ParametersC的变化2的变化Kernels I构建新特征 如图,我们希望能在这堆训练集中找到一个非线性分界面。按照惯例,我们构建假设函数,可以看到假设函数的项数非常多,如果全部使用计算量非常大,所有我们要选择有用的项目,也就是有用的特征变量。 作者这原创 2017-09-08 19:31:29 · 497 阅读 · 0 评论 -
机器学习第七周(一)--SVM
优化目标支持向量机的引入构建支持向量机支持向量机的假设函数大间距分类安全距离因子SVM决策边界线性分割异常点大间距分类的数学原理向量内积决策边界优化目标支持向量机的引入作者从逻辑回归开始向我们一点点引入。 在逻辑回归中,假设函数和图像如下: 如果y=1,那么我们想要的结果就是假设函数无限近似1,对应的Z就要远大于0,同理,如果y=0,那么Z就需要远小于0。 而且我们有损原创 2017-09-07 11:10:08 · 1551 阅读 · 1 评论 -
机器学习第六周(四)
处理偏移数据查准率precision和召回率recall查准率Precision召回率Recall权衡精确度和召回率高查准率低召回率情况高召回率低查准率情况临界值的选取权衡不同算法的查准率和召回率F值机器学习的数据 处理偏移数据在前面的课程中,作者提到了误差分析以及设定误差度量值的重要性。那就是设定某个实数来评估你的学习算法,并衡量它的表现。有了算法的评估和误差度量值,有一件重要的原创 2017-09-01 22:43:19 · 557 阅读 · 0 评论 -
机器学习第六周(三)
构建垃圾分类器错误分析Error Analysis数值计算来评估你的机器学习算法构建垃圾分类器判断邮件是否为垃圾邮件,从邮件中的字母来分析。 1)、给出能分辨垃圾邮件和非垃圾邮件的一些单词。 2)、在要求评定的emil遍历找出最频繁的单词。 3)、当1)中的单词能在2)中找到,输入1,否则0,构建向量。怎样分类的降低错误率呢???作者这里给出四种方法: 因为每种方法实验的时间成本很原创 2017-09-01 10:49:22 · 395 阅读 · 0 评论 -
机器学习第六周(二)
偏差(bias)与方差(Variance)以熟悉的三个例子开始: 在上一讲中引入了测试误差和多项式次数。在这里,计算训练误差和交叉验证误差。 更详细如下: 即随着多项式次数d的不断增大,训练误差是不断减小的,验证误差再到达最佳多项式次数前也是不断减小,随后不断增加,为一个凸函数形式。由这个图我们得到: 即当训练误差和验证误差近似相等且都比较大时,判断为高偏差、欠拟合(high原创 2017-08-31 21:36:42 · 1259 阅读 · 0 评论 -
机器学习第六周(一)
仍然以预测房价为例,为了提高模型表现,通常会有如下几个措施: 评估hypothesis(机器学习诊断法) 从模型得出的hypothesis可能会很好拟合当前数据,但泛化性能太差,即overfit。所以为了更好评估hypothesis,作者这里将数据分成俩部分。 一般取数据的前70%作为训练集,剩下的作为测试集。 以线性回归为例: 1)、对训练集进行学习,得到参数theta 2)、计算原创 2017-08-31 18:16:41 · 313 阅读 · 0 评论 -
机器学习第五周(二)
1、Unrolling parameters 2、Gradient checking 梯度检验是对反向传播算法求得的偏导数的一种检验。公式如下: 应用到theta矩阵: 这里作者给出一个循环求每个梯度检验值,并将epsilon = 1e-4; 一般步骤: 记住,在用反向传播算法学习前,一定要关掉梯度检验,因为梯度检验运行效率非常慢。3、Random initializat原创 2017-08-15 11:01:31 · 530 阅读 · 0 评论 -
机器学习第五周(一)
1、Cost function 神经网络进行多分类结果的输出是以向量的形式,给出Cost function 并同逻辑回归做对比。 L是神经网络的层数;SL是L层的结点数(不包括偏置结点);K代表几分类。2、Backpropagation Algorithm 同线性回归和逻辑回归用梯度下降来求解损失函数的最小值一样,我们用BP算法(反向传播算法)来求解神经网络中损失函数的最小值。 首先,以原创 2017-08-14 12:06:11 · 380 阅读 · 0 评论 -
机器学习第四周(二)
1、Examples 神经网络应用到逻辑运算上 AND theta(1)=[-30,20,20],给出g(z)的图像,并假定g(4.6)=0.99,g(-4.6)=0.01,x1、x2分别取0,1,据theta值和x值代入g求得h的值,可以验证h的值是等于x1 and x2的。 同样运算,验证OR NOT XNOR 红线表示AND运算,蓝线表示(NOT x1)AND(N原创 2017-08-03 11:20:59 · 433 阅读 · 0 评论 -
机器学习第四周(一)
1、Non-linear hypotheses,引入课程中的一幅图片 对于图中的数据,只有俩个feature,分类效果尚能令人满意,但当feature数量不断增大时,假设函数中二次项数会剧增,比如feature为100时,此时二次项数为(100*100)/2=5000个 作者后面又举了一个识别汽车的例子,在一幅50*50像素的图片中,特征量能达到2500个,那么二次项就有(2500*2500原创 2017-08-02 17:08:37 · 406 阅读 · 0 评论 -
Fminunc函数和Optimset函数
costFunction函数是自定义函数;输入是theta,输出是jVal和gradient,其中jVal是对照左边求损失函数的,gradient是对照左边求损失函数的偏导。Optimset函数:‘Gradobj’指用户自定义的目标函数梯度;‘MaxITer’指最大迭代次数,‘100’也就是最大迭代次数,这一项只能为整数。Fminunc函数:有三个输入,第一个输入为costfunction函数的句柄原创 2017-08-03 12:02:58 · 12050 阅读 · 3 评论 -
机器学习第三周(三)--正则化
1、过拟合问题(overfitting) 第一幅图片能看到模型能大致拟合数据,但效果不是很好;第二幅相比效果就好很多;第三幅图片也能很好的拟合当前数据,但是预测数据效果不行。我们将第一幅图片中的现象称为“欠拟合”( underfitting)也叫“高偏差”(high bias),第三幅中的现象称作“过拟合”(overfitting)也叫“高方差”(high variance)。图片2中的模型是我们原创 2017-08-02 21:44:17 · 398 阅读 · 0 评论 -
机器学习第三周(二)--Cost function--Gradient descent
损失函数:逻辑回归如果使用和线性回归相同的损失函数,那得到的损失函数图像如下: 由函数图像看出,这是一个非凸函数(凸函数最重要的特征是局部最优解同时也是全局最优解),并不适用于做逻辑回归的损失函数。 我们对损失函数作出改变,得到全新的损失函数并得到其图像: 从图像看出,函数只有一个最小值,这个最小值是局部最小值同时也是全局最小值。这个损失函数是一个凸函数。 以二分类为例,输入结果原创 2017-08-01 11:19:39 · 643 阅读 · 0 评论 -
机器学习第三周(一)--逻辑回归引入
逻辑回归的引入:监督学习中我们遇到的不仅有回归问题,还有分类问题,对于回归问题常用线性回归做假设预测,那对于分类问题是否也能采用线性回归呢?如下例 图中8个数据,根据肿瘤大小来判断肿瘤是良性还是恶性的,对这8个数据做线性回归分类,更好地进行分类,引用阈值(假设函数如图中所示),当假设函数大于等于0.5时,称肿瘤恶性,即y=1表示;记纵轴等于0.5时对应肿瘤大小的值P,从横轴看,当Size大于P原创 2017-07-30 12:09:15 · 474 阅读 · 0 评论 -
机器学习第二周--Multiple features & Normal equation
第一周内容针对单变量,也就是一个feature。这此考虑多变量,即多个features。 仍然与预测房价为例,影响房价的因素不只有面积,我们加入卧室数量、楼层、房龄,这些可看作新加入的feature。由此我们有以下表示: m是样本数目,n是特征数目,X的上标表示第i个训练样本X的下标表示第j个特征。 相应的推导多特征下的各种函数如下: (为了方便向量化运算,取x0=1) 把损失原创 2017-07-29 14:02:26 · 513 阅读 · 0 评论 -
机器学习第一周(二)--模型引入
假设函数Hypothesis损失函数Cost function梯度下降学习速率梯度下降应用到线性回归梯度下降表达式涉及到的计算回顾监督学习的流程 假设函数–Hypothesis以预测房价作为问题的引入: X轴为房子面积,Y轴为价格 这里X可看作数据的输入,也就是一个feature;Y看做输出,也就是房价。(这个例子只有一个特征) 我们要做的就是针对给定一个输入X,也就是房子面原创 2017-07-27 13:27:45 · 484 阅读 · 0 评论 -
机器学习第一周(一)--机器学习引入
1、机器学习算法主要分为俩大类,监督学习(Supervised Learning)和无监督学习(Unsupervised Learning). 监督学习与无监督学习一个最大不同是监督学习的数据是带标签的,而无监督学习的数据是不带标签的。 监督学习又分为分类问题和回归问题,分类问题是对给定带标签的数据集进行分类,如二分类,三分类等。 回归问题是根据所给的数据进行预测,如对房价的预测。 下面以预原创 2017-07-27 11:21:36 · 742 阅读 · 1 评论