没有合适的资源?快使用搜索试试~ 我知道了~
首页斯坦福机器学习v4.2个人笔记目录详解:从入门到正则化
斯坦福机器学习v4.2个人笔记目录详解:从入门到正则化
5星 · 超过95%的资源 需积分: 9 17 下载量 27 浏览量
更新于2024-07-19
收藏 1.54MB PDF 举报
这是一份详细的机器学习个人笔记,由斯坦福大学的课程整理而成,版本更新至v4.2。这份笔记覆盖了机器学习的基础和进阶主题,适合初学者和进阶者深入学习。以下是各部分的主要知识点概览: 第1周: - 1.2机器学习是什么?:介绍机器学习的基本概念,包括监督学习和无监督学习的区别,以及它们在实际问题中的应用。 - 单变量线性回归:讲解如何通过线性模型预测目标变量,涉及模型表示、代价函数、梯度下降算法及其直观理解。 - 线性代数回顾:对后续分析必不可少的数学工具进行复习,如矩阵和向量运算,以及矩阵乘法和逆运算。 第2周: - 多变量线性回归:扩展到多维度特征,探讨梯度下降法在不同场景下的应用,如特征缩放和学习率调整。 - Octave教程:教授使用 Octave 这种编程工具进行机器学习实践,包括基础操作、数据处理和绘图。 第3周: - 逻辑回归:针对分类问题,学习逻辑回归模型的构建、代价函数和梯度下降算法,以及多类别分类的方法。 - 正则化:介绍过拟合问题,以及如何通过正则化技术来防止过度拟合,包括线性和逻辑回归的正则化版本。 第4周: - 神经网络简介:可能包含对深度学习的入门介绍,如神经元和层的概念,以及简单的神经网络结构。 这份笔记的结构严谨,不仅涵盖了理论知识,还提供了实践操作和编程示例,使学习者能够通过动手实践加深理解。无论是初接触机器学习的学生,还是希望巩固理论并提升技能的工程师,这份笔记都是一个宝贵的资源。通过跟随笔记的目录和内容,学习者可以系统地掌握机器学习的基础和关键算法,为后续的专业发展打下坚实的基础。
资源详情
资源推荐
1.4无监督学习
参考视频:1-4-UnsupervisedLearning(14min).mkv
本次视频中,我们将介绍第二种主要的机器学习问题。叫做无监督学习。
上个视频中,已经介绍了监督学习。回想当时的数据集,如图表所示,这个数据集中每条数
据都已经标明是阴性或阳性,即是良性或恶性肿瘤。所以,对于监督学习里的每条数据,我
们已经清楚地知道,训练集对应的正确答案,是良性或恶性了。
在无监督学习中,我们已知的数据。看上去有点不一样,不同于监督学习的数据的样子,即
无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。所以我们已知数据集,
却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集。你能从数
据中找到某种结构吗?针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。这是
一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同的
簇。所以叫做聚类算法。事实证明,它能被用在很多地方。
聚类应用的一个例子就是在谷歌新闻中。如果你以前从来没见过它,你可以到这个URL网址
news.google.com去看看。谷歌新闻每天都在,收集非常多,非常多的网络的新闻内容。它
再将这些新闻分组,组成有关联的新闻。所以谷歌新闻做的就是搜索非常多的新闻事件,自
动地把它们聚类到一起。所以,这些新闻事件全是同一主题的,所以显示到一起。
事实证明,聚类算法和无监督学习算法同样还用在很多其它的问题上。
其中就有基因学的理解应用。一个DNA微观数据的例子。基本思想是输入一组不同个体,对
其中的每个个体,你要分析出它们是否有一个特定的基因。技术上,你要分析多少特
定基因已经表达。所以这些颜色,红,绿,灰等等颜色,这些颜色展示了相应的程度,即不
同的个体是否有着一个特定的基因。你能做的就是运行一个聚类算法,把个体聚类到不同的
类或不同类型的组(人)„„
所以这个就是无监督学习,因为我们没有提前告知算法一些信息,比如,这是第一类的人,
那些是第二类的人,还有第三类,等等。我们只是说,是的,这是有一堆数据。我不知道数
据里面有什么。我不知道谁是什么类型。我甚至不知道人们有哪些不同的类型,这些类型又
是什么。但你能自动地找到数据中的结构吗?就是说你要自动地聚类那些个体到各个类,我
没法提前知道哪些是哪些。因为我们没有给算法正确答案来回应数据集中的数据,所以这就
是无监督学习。
无监督学习或聚集有着大量的应用。它用于组织大型计算机集群。我有些朋友在大数据中心
工作,那里有大型的计算机集群,他们想解决什么样的机器易于协同地工作,如果你能够让
那些机器协同工作,你就能让你的数据中心工作得更高效。第二种应用就是社交网络的
机器学习个人笔记完整版v4.2
161.4无监督学习
分析。所以已知你朋友的信息,比如你经常发email的,或是你Facebook的朋友、谷歌+圈
子的朋友,我们能否自动地给出朋友的分组呢?即每组里的人们彼此都熟识,认识组里的所
有人?还有市场分割。许多公司有大型的数据库,存储消费者信息。所以,你能检索这些顾
客数据集,自动地发现市场分类,并自动地把顾客划分到不同的细分市场中,你才能自动并
更有效地销售或不同的细分市场一起进行销售。这也是无监督学习,因为我们拥有所有的顾
客数据,但我们没有提前知道是什么的细分市场,以及分别有哪些我们数据集中的顾客。我
们不知道谁是在一号细分市场,谁在二号市场,等等。那我们就必须让算法从数据中发现这
一切。最后,无监督学习也可用于天文数据分析,这些聚类算法给出了令人惊讶、有趣、有
用的理论,解释了星系是如何诞生的。这些都是聚类的例子,聚类只是无监督学习中的一
种。我现在告诉你们另一种。我先来介绍鸡尾酒宴问题。嗯,你参加过鸡尾酒宴吧?你可以
想像下,有个宴会房间里满是人,全部坐着,都在聊天,这么多人同时在聊天,声音彼此重
叠,因为每个人都在说话,同一时间都在说话,你几乎听不到你面前那人的声音。所以,可
能在一个这样的鸡尾酒宴中的两个人,他俩同时都在说话,假设现在是在个有些小的鸡尾酒
宴中。我们放两个麦克风在房间中,因为这些麦克风在两个地方,离说话人的距离不同每个
麦克风记录下不同的声音,虽然是同样的两个说话人。听起来像是两份录音被叠加到一起,
或是被归结到一起,产生了我们现在的这些录音。另外,这个算法还会区分出两个音频资
源,这两个可以合成或合并成之前的录音,实际上,鸡尾酒算法的第一个输出结果是:1,
2,3,4,5,6,7,8,9,10,
所以,已经把英语的声音从录音中分离出来了。
第二个输出是这样:
1,2,3,4,5,6,7,8,9,10。
看看这个无监督学习算法,实现这个得要多么的复杂,是吧?它似乎是这样,为了构建这个
应用,完成这个音频处理似乎需要你去写大量的代码或链接到一堆的合成器JAVA库,
处理音频的库,看上去绝对是个复杂的程序,去完成这个从音频中分离出音频。事实上,这
个算法对应你刚才知道的那个问题的算法可以就用一行代码来完成。就是这里展示的代码:
[W,s,v]=svd((repmat(sum(x.x,1),size(x,1),1).x)*x');
研究人员花费了大量时间才最终实现这行代码。我不是说这个是简单的问题,但它证明
了,当你使用正确的编程环境,许多学习算法是相当短的程序。所以,这也是为什么在本课
中,我们打算使用Octave编程环境。Octave,是免费的开源软件,使用一个像Octave或
Matlab的工具,许多学习算法变得只有几行代码就可实现。
后面,我会教你们一点关于如何使用Octave的知识,你就可以用Octave来实现一些算法
了。或者,如果你有Matlab(盗版?),你也可以用Matlab。事实上,在硅谷里,对大量机
器学习算法,我们第一步就是建原型,在Octave建软件原型,因为软件在Octave中可以令
人难以置信地、快速地实现这些学习算法。这里的这些函数比如SVM(支持向量机)函数,
机器学习个人笔记完整版v4.2
171.4无监督学习
奇异值分解,Octave里已经建好了。如果你试图完成这个工作,但借助C++或JAVA的话,
你会需要很多很多行的代码,并链接复杂的C++或Java库。所以,你可以实现这些算法,
借助C++或Java或Python,它只是用这些语言来实现会更加复杂。
我已经见到,在我教机器学习将近十年后的现在,发现,学习可以更加高速,如果使用
Octave作为编程环境,如果使用Octave作为学习工具,以及作为原型工具,它会让你对学
习算法的学习和建原型快上许多。
事实上,许多人在大硅谷的公司里做的其实就是,使用一种工具像Octave来做第一步的学
习算法的原型搭建,只有在你已经让它工作后,你才移植它到C++或Java或别的语言。事
实证明,这样做通常可以让你的算法运行得比直接用C++实现更快,所以,我知道,作为一
名指导者,我必须说“相信我”,但对你们中从未使用过Octave这种编程环境的人,我还是要
告诉你们这一点一定要相信我,我想,对你们而言,我认为你们的时间,你们的开发
时间是最有价值的资源。我已经见过很多人这样做了,我把你看作是机器学习研究员,或机
器学习开发人员,想更加高产的话,你要学会使用这个原型工具,开始使用Octave。
最后,总结下本视频内容,我有个简短的复习题给你们。我们介绍了无监督学习,它是学习
策略,交给算法大量的数据,并让算法为我们从数据
中找出某种结构。好的,希望你们还记得垃圾邮件问题。如果你有标记好的数据,区别好是
垃圾还是非垃
圾邮件,我们把这个当作监督学习问题。
新闻事件分类的例子,就是那个谷歌新闻的例子,我们在本视频中有见到了,我们看到,
可以用一个聚类算法来聚类这些文章到一起,所以是无监督学习。细分市场的例子,我在更
早一点的时间讲过,你可以当作无监督学习问题,因为我只是
拿到算法数据,再让算法去自动地发现细分市场。最后一个例子,糖尿病,这个其实就像是
我们的乳腺癌,上个视频里的。只是替换了好、
坏肿瘤,良性、恶性肿瘤,我们改用糖尿病或没病。所以我们把这个当作监督学习,我们能
够解决它,作为一个监督学习问题,就像我们在乳腺癌数据中做的一样。
好了,以上就是无监督学习的视频内容,在下一个视频中,我们将深入探究特定的学习算
法,开始介绍这些算法是如何工作的,和我们还有你如何来实现它们。
机器学习个人笔记完整版v4.2
181.4无监督学习
二、单变量线性回归(LinearRegressionwithOne
Variable)2.1模型表示
参考视频:2-1-ModelRepresentation(8min).mkv
我们的第一个学习算法是线性回归算法。在这段视频中,你会看到这个算法的概况,更重要
的是你将会了解监督学习过程完整的流程。
让我们通过一个例子来开始:这个例子是预测住房价格的,我们要使用一个数据集,数据集
包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我
的数据集。比方说,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖
多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来
看,也许你可以告诉你的朋友,他能以大约220000(美元)左右的价格卖掉这个房子。这就是
监督学习算法的一个例子。
它被称作监督学习是因为对于每个数据来说,我们给出了“正确的答案”,即告诉我们:根据
我们的数据来说,房子实际的价格是多少,而且,更具体来说,这是一个回归问题。回归一
词指的是,我们根据之前的数据预测出一个准确的输出值,对于这个例子就是价格,同时,
还有另一种最常见的监督学习方式,叫做分类问题,当我们想要预测离散的输出值,例如,
我们正在寻找癌症肿瘤,并想要确定肿瘤是良性的还是恶性的,这就是0/1离散输出的
问题。更进一步来说,在监督学习中我们有一个数据集,这个数据集被称训练集。
我将在整个课程中用小写的m来表示训练样本的数目。
以之前的房屋交易问题为例,假使我们回归问题的训练集(TrainingSet)如下表所示:
我们将要用来描述这个回归问题的标记如下:m代表训练集中实例的数量
x代表特征/输入变量
y代表目标变量/输出变量(x,y)代表训练集中的实例(x(i),y(i))代表第i个观察实例
h代表学习算法的解决方案或函数也称为假设(hypothesis)
这就是一个监督学习算法的工作方式,我们可以看到这里有我们的训练集里房屋价格我们把
它喂给我们的学习算法,学习算法的工作了,然后输出一个函数,通常表示为小写h表示。h
代表hypothesis(假设),h表示一个函数,输入是房屋尺寸大小,就像你朋友想出售的房
屋,因此h根据输入的x值来得出y值,y值对应房子的价格因此,h是一个从
x到y的函数映射。
机器学习个人笔记完整版v4.2
19二、单变量线性回归(LinearRegressionwithOneVariable)2.1模型表示
我将选择最初的使用规则h代表hypothesis,因而,要解决房价预测问题,我们实际上是要
将训练集“喂”给我们的学习算法,进而学习得到一个假设h,然后将我们要预测的房屋的尺寸
作为输入变量输入给h,预测出该房屋的交易价格作为输出变量输出为结果。那么,对于我
们的房价预测问题,我们该如何表达h?
一种可能的表达方式为:h x _0 1_x,因为只含有一个特征/输入变量,因此这样的问题
叫作单变量线性回归问题。
机器学习个人笔记完整版v4.2
20二、单变量线性回归(LinearRegressionwithOneVariable)2.1模型表示
剩余196页未读,继续阅读
veigarV
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Lombok 快速入门与注解详解
- SpringSecurity实战:声明式安全控制框架解析
- XML基础教程:从数据传输到存储解析
- Matlab实现图像空间平移与镜像变换示例
- Python流程控制与运算符详解
- Python基础:类型转换与循环语句
- 辰科CD-6024-4控制器说明书:LED亮度调节与触发功能解析
- AE particular插件全面解析:英汉对照与关键参数
- Shell脚本实践:创建tar包、字符串累加与简易运算器
- TMS320F28335:浮点处理器与ADC详解
- 互联网基础与结构解析:从ARPANET到多层次ISP
- Redhat系统中构建与Windows共享的Samba服务器实战
- microPython编程指南:从入门到实践
- 数据结构实验:顺序构建并遍历链表
- NVIDIA TX2系统安装与恢复指南
- C语言实现贪吃蛇游戏基础代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功