机器学习笔记
# 机器学习笔记
# 前言
# 什么是机器学习
机器学习定义为让计算机在没有明确编程的情况下学习的领域研究
# 监督学习
回归问题
有监督学习中,你的训练集存在一个输入数据 和一个正确的答案 ,算法根据训练集训练,然后给出一个位置的 来预测一个新的
这里我们根据 ,从无数个数中预测
分类问题
上面的回归问题是从无数的数中预测一个 ,分类问题是根据训练数据训练算法,然后对于一个新的 ,把这个 分到规定的几类中
例如:根据肿瘤的大小来判断肿瘤是恶性的还是良性的
# 无监督学习
无监督学习对于数据 不会给出对应的正确输出 ,需要程序自己去发现数据中一些特殊的结构或者规律
聚类算法

在图中,我们可以发现一类人有相似的一些特征,所以我们把他们归为一类
Anomaly detection
异常值检测
# 线性回归
# 一元线性回归
观察一条直线,,我们给定一个 就能得到一个
当我们用一个 来预测 ,就是一元线性回归模型
我们现在有一堆数据集 ,然后我需要找到合适的 来拟合这些点

于是,当来了一个新的 ,就能得到一个 了
我们需要一个评价标准来评判一条直线的拟合程度,于是就有了损失函数
定义真实值和预测值之间的差值为残差:
那么误差就是残差平方和,叫 损失函数
我们的目标就是需要找到最小化 ,即:
求解 和 使得 被称为最小二乘估计,对 分别求偏导数,得到:
两个偏导数等于 就可以得到 和 对最优解
其中 为 的均值
# 多元线性回归
给定数据集 ,其中 ,这里的 是一个向量的形式,我们试图得到一个矩阵
类似的,我们可以用最小二乘法来对 和 进行估计,我们把 写成一个 ,把数据集表示成一个 大小大矩阵 ,其中每一行对应一个示例,最后一个元素恒为
把标记也写成向量形式 ,那么多位的损失函数就可以写成:
令 ,对 求导得到
当 为满秩矩阵或正定矩阵时
令 可得,多元线性回归模型为
# 梯度下降
假设你有一个代价函数 ,你需要找到
基本算法思想是:
- 给 一个初始,通常是
- 稍微改变一点 来减少
- 直到 稳定在最小值附近

假设你站在这个山顶上,你要往前试探性的走一步,然后看往那个方向走能让你更快得降到山谷中,然后就往那个方向走一步,以此类推
接下来我们来看一下如何具体实现梯度下降算法,这里实现了 的同时更新 $$ \begin{aligned} w&=w-\alpha \frac{\partial}{\partial w} J(w,b)\ b&=b-\alpha \frac{\partial}{\partial b} J(w,b) \end{aligned} $$
- 这里的 是学习率,其决定了梯度下降的步伐大小
如果学习率 特别小,梯度下降算法会起作用,但是需要很长的时间
如果学习率 太大,梯度下降算法可能无法找到最小值