关键词:
我们将学习如何系统地提升机器学习算法,告诉你学习算法何时做得不好,并描述如何'调试'你的学习算法和提高其性能的“最佳实践”。要优化机器学习算法,需要先了解可以在哪里做最大的改进。 我们将讨论如何理解具有多个部分的机器学习系统的性能,以及如何处理偏斜数据。
Evaluating a Hypothesis
设想当你训练的模型对预测数据有很大偏差的时候,接下来你会选择怎么做?
这个需要花时间去实现,但是对你的帮助也会很大,使你不盲目的做一些决定来提升算法,而是直观地看出哪些是对提升算法是有效的。
我们将数据分为两个集合,Training Set(70%),Test set(30%)
算法评估过程如下:
1.从Training Set学习参数(通过最小化误差J(theta)实现);
2.计算测试误差J(test).
下面是线性回归和分类问题的误差计算方式:
Model Selection and Train/Validation/Test Sets
从多个假设中选择一个训练误差最小的,只能说明它对Training Set有很好的拟合效果,它也可能是Overfit,然后导致Prediction很差。
所以我们下面将数据集分为3个:
这里以之前的房价预测作为例子。
每种误差类型的计算方法如下:
模型选择方法:
1.使用Training Set 最小化 Jtrain(theta)学习得到参数theta;
2.使用训练得到的参数,在Cross Validation Set上计算误差,找到使Jcv(theta)最小的模型,作为训练的最终模型;
3.在训练出的模型上使用test Set计算泛化误差,评价算法好坏。
Diagnosing Bias vs. Variance
在这之前我们都已经讨论过关于underfit和overfit了。那么当你的模型结果不理想时,怎么判断到底是出现了哪种情况呢。
High Bias(underfit):训练误差Jtrain和交叉验证Jcv都很高,Jcv~Jtrain
High Variance(overfit):Jtain很小,Jcv很大且>>Jtrain.
Regularization and Bias/Variance
下面讲解如何选择regularization parameter避免underfit和overfit。
这里除了我们的objective function使用lambda参数外,其他的Jtrain、Jcv和Jtest都不使用lambda进行计算,计算公式如上面。
选择过程:
1.列出所有可能的lambda取值,老师建议每次增加2倍的取值。
2.建立假设模型,h(theta)。
3.遍历所有的lambda,通过minJ(theta)学习参数。
4.在cv集合使用训练的参数theta计算误差Jcv,选择使Jcv最小的theta;
5.用学习到的theta参数,在test set上测试泛化误差。
下面是Jcv和Jtrain关于lambda的函数图象。注意:我们只是在objective funtion J(theta)中使用了lambda,而非Jtrain和Jcv。
可以看出:随着lambda增大,Jtrain是单调增大的;而Jcv先是减小到一个拐点,然后增大。
而我们需要算法有一个小的Jcv,这里就有一个“just right”,也就是那个Jcv的最小值点,就是我们需要选择的lambda。
Learning Curves
以error和training set size作函数图象,作为learning cruvers。
下面是算法处于高偏差(underfit)的情况。
判断模型处于High Bias:
样本少:Jtrain低,Jcv高;
样本多:Jtrain、Jcv都高,且Jtrain ~Jcv
若算法处于High bias,增加更多的训练样本对模型提高不会有太大帮助。
下面是算法处于High variance(overfit)的情况
算法处于High variance:
样本少:Jtrain 低,Jcv高;
样本多:Jtrain升高且会一直升高,Jcv降低且一直降低,Jtrain < Jcv且大小明显。
若算法处于high variance,增加训练样本会有帮助。
Deciding What to Do Next Revisited
回顾一下本课开头提出的问题,如何提高你的算法?经过上面的讨论,我们可以得到以下结论:
关于神经网络的underfit和overfit及其解决。
以上所谈对建立一个好的机器学习算法至关重要,而且可以节约不少时间,少走弯路。
斯坦福大学andrewng-机器学习笔记--机器学习算法的选择与评估
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福机器学习视频笔记week9异常检测和高斯混合模型anomalydetection
异常检测,广泛用于欺诈检测(例如“此信用卡被盗?”)。给定大量的数据点,我们有时可能想要找出哪些与平均值有显着差异。例如,在制造中,我们可能想要检测缺陷或异常。我们展示了如何使用高斯分布来建模数据集,... 查看详情
斯坦福大学andrewng-机器学习笔记--异常检测
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福大学andrewng-机器学习笔记--神经网络模型
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福大学andrewng-机器学习笔记--聚类&降维
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福机器学习视频笔记week3logisticregressionandregularization
我们将讨论逻辑回归。逻辑回归是一种将数据分类为离散结果的方法。例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件。在本模块中,我们介绍分类的概念,逻辑回归的损失函数(costfuncton),以及逻辑回... 查看详情
斯坦福2014机器学习笔记一----基本概念
一、纲要 机器学习的定义 监督学习(supervisedlearning)和无监督学习(unsupervisedlearning) 回归问题(regressionproblem)与分类问题(classificationproblem) 鸡尾酒宴问题 单变量线性回归问题 二... 查看详情
斯坦福大学andrewng-机器学习笔记--支持向量机(svm)
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福大学andrewng-机器学习笔记--推荐系统&大规模机器学习&图片文字识别
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福大学andrewng-机器学习笔记--逻辑回归&正则化
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福机器学习视频笔记week2linearregressionwithmultiplevariables
相比于week1中讨论的单变量的线性回归,多元线性回归更具有一般性,应用范围也更大,更贴近实际。MultipleFeatures上面就是接上次的例子,将房价预测问题进行扩充,添加多个特征(features),使问题变成多元线性回归问题。多... 查看详情
吴恩达-coursera-机器学习-week6
十、应用机器学习的建议(AdviceforApplyingMachineLearning)10.1决定下一步做什么10.2评估一个假设10.3模型选择和交叉验证集10.4诊断偏差和方差10.5正则化和偏差/方差10.6学习曲线10.7决定下一步做什么十一、机器学习系统的设计(MachineLearnin... 查看详情
斯坦福大学andrewng-机器学习笔记--单变量&多变量线性回归
大概用了一个月,AndrewNg老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结。笔记难免有遗漏和误解,欢迎讨论。 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深表感谢... 查看详情
斯坦福机器学习课程笔记
模型(如何模拟)---策略(风险函数)--算法(最优化方法)第一节:机器学习的基本概念和分类第二节:线性回归,最小二乘批梯度下降(bgd)和随机梯度下降(sgd)第三节:过拟合,欠拟合非参数学习算法:局部加权回归概率角度解... 查看详情
(笔记)斯坦福机器学习第五讲--生成学习算法
本讲内容1.Generativelearningalgorithms(生成学习算法)2.GDA(高斯判别分析)3.NaiveBayes(朴素贝叶斯)4.LaplaceSmoothing(拉普拉斯平滑) 1.生成学习算法与判别学习算法判别学习算法:直接学习 或者学习一个假设&n... 查看详情
coursera公开课笔记:斯坦福大学机器学习第七课“正则化”
Coursera公开课笔记:斯坦福大学机器学习第七课“正则化”NLPJob斯坦福大学机器学习第七课”正则化“学习笔记,本次课程主要包括4部分:1)TheProblemofOverfitting(过拟合问题)2)CostFunction(成本函数)3)RegularizedLinearRegression(线性回归的正... 查看详情
斯坦福2014机器学习笔记九----支持向量机
一、纲要 支持向量机基础及优化目标 支持向量机的直观理解 核函数二、内容详述 1、支持向量机基础以及优化目标 支持向量机(SupportVectorMachine)与逻辑回归和神经网络相比,在学习复杂的非线性方程时提供了... 查看详情
(笔记)斯坦福机器学习第六讲--朴素贝叶斯
本讲内容1.NaiveBayes(朴素贝叶斯)2.Eventmodels(朴素贝叶斯的事件模型)3.Neuralnetwork(神经网络)4.Supportvectormachines(支持向量机) 1.朴素贝叶斯上讲中的垃圾邮件问题有几个需要注意的地方:(1) 一个单词只有出现... 查看详情