这一周开始就要开始学习机器学习了。在这里记下我学习的一些过程。方便以后查阅。
1.1无监督学习和监督学习
监督学习:
数据集中每条数据已标明真确的答案。也就是说,每条数据有确定对应的标签。
无监督学习:
在无监督学习中没有任何的标签或者有相同的标签。我们有已知的数据集但是不知道如何处理。常见的有聚类算法。 我们无法告知,这一条数据是干什么的。我们只有数据。
1.2单变量的线性回归(Linear regression with one variable)
我们第一个学习线性回归算法。通过这个算法,能了解一个监督学习的流程。
训练集我们称为train set。回归问题的参数标记如下
参数 | 含义 |
---|---|
m | 训练集中实例的数量 |
x | 特征变量/输入变量 |
y | 目标变量/输出变量 |
(x,y) | 训练集中的实例 |
(xi,yi) | 代表第I个观察实例 |
h | 算法的解决方案或函数 |
我们使用数据集去“喂”给我们的算法,进而学习到一个假设函数h。所以h是一个从x到y的映射。
我们先来看简单的一种形式 h(x)=θ0+θ1x
这种问题称为单变量线性回归问题。
那么又出现一个问题,如何最有可能的直线来拟合我们的数据呢?
先引入一个概念,模型所预测值与训练集中实际值之间的差距就是建模误差
定义代价函数
我们只要让这个函数值最小。我们的目标就是 minimize J(θ0,θ1)
1.3 梯度下降
梯度下降是一个用来求函数最小值的方法。
那么这个算法具体如何更新呢?
以上就是更新规则。具体代码如何实现,那是后话。