试验了好多天,总算找到适合自己的学习路径。先看吴恩达的机器学习视频,然后整理总结笔记。话说为了在obsidian里敲出数学公式,也是难为我。笔记如下:
1. 机器学习定义
- 一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。eg. Samuel 的西洋棋程序,E是程序上万次的自我练习的经验,任务T是下棋,性能P是它在与一些新的对手比赛时,赢得比赛的概率。
- 主要的两种类型:监督学习和无监督学习。
2.监督学习
- eg.预测房价:给定一些房价的数据,基于这组数据,当给出一套想要出售的房子的尺寸,预测房价。
我们可以拟合一条直线,然后根据这条线推测出,这套房子可能出售的价格,也可以用二次方程去拟合可能效果会更好。然后我们将讨论如何选择学习算法,如何决定用直线还是二次方程来拟合,让房子出售的更合理。
-
监督学习:我们给学习算法一个数据集,这个数据集由“正确答案”组成,然后选择运用学习算法,算出更多的正确答案。房子出售问题被称为回归问题。回归的意思是我们在试着推测出这一系列连续值属性。
-
eg.通过病历来推测乳腺癌良性与否
在数据集中,横轴表示肿瘤大小,纵轴1&0表示是或不是恶性肿瘤。给一些肿瘤样本,并基于此,针对给出的一个检查结果,来估算是否是恶性的概率,这是一个分类问题,即我们试着推测出离散的输出值。
在一些机器学习问题中,有可能将有无限多种特征都将处理,后面会有一个算法,叫[[支持向量机]],设置了一个巧妙的数学技巧,能让计算机处理无限多个特征。
3.无监督学习
- eg.聚类应用的例子:谷歌新闻,每天都在收集非常多的网络的新闻内容,再将这些新闻分组,组成有关联的新闻,这个自动分组则是聚类
- eg.基因学应用:输入一组不同个体,对其中的每个个体,要分析出它们是否有一个特定的基因。运行一个聚类算法,把个体聚类到不同的类或不同类型的组(人)。。。
- 无监督学习:值提供一堆数据,不知道正确答案,由算法自动找出其中的规律,自动聚类个体到各个类。有着大量的应用,如组织大型计算机集群,社交网络的分析,市场分割、天文数据分析。
- 鸡尾酒宴会问题:
- 将使用Octave编程环境。
4.单变量线性回归
4.1模型表示
- 预测住房:给定一些已经特征&售价的房屋数据,基于数据集(训练集),选择合适算法推测其他样本特征情况下的房价可能情况。
用小写m来表示训练样本的数目:
| size in feet^2(x) | price($) in 1000's (y) |
|---|---|
| 2104 | 460 |
| 1416 | 232 |
| 1534 | 315 |
| 852 | 178 |
| ... | ... |
| 用来描述这个回归问题的标记如下: |
m 代表训练集中实例的数量
x 代表特征/输入变量
y 代表目标变量/输出变量
(x,y)代表训练集中的实例
$(x^{(i)},y^{(i)})$ 代表第 i 个观察实例
h代表学习算法的结算方案或函数,也称为假设(hypothesis),是一个从x到y的函数映射
因为只有一个特别/输入变量,因此这样的问题叫做单变量线性回归问题,一种更可能的h表达方式为:
4.2代价函数
- 我们要做的是为我们的模型选择合适的参数(parameters),在房价问题中便是直线在y轴上的截距和斜率。
- 参数不同,得到的直线相对于我们的训练集的准确程度不同,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差(modeling error)
- 目标便是选择出使得建模误差的平方和最小的模型参数。即使得代价函数 绘制一个等高线图,三个坐标分别为,在三维空间中存在一个使得最小的点。
- 故代价函数也被称为平方误差函数,或平方误差代价函数
4.3代价函数的直观理解1
i=1:
=2.3
i=2:
i=3: