任务:仅进行理论学习,不进行代码学习(日后补)
一、线性回归
根据已有数据进行预测并进行分析
“我有两组数据 Xi (输入)和 Yi (真实输出)。
我想找到一组最佳的参数 WW (权重)和 bb (偏置) ,构建一个线性公式 Y^=WX+bY^=WX+b 。
由于数据有噪声,这个公式无法对所有点都严格成立。
所以,我使用最小二乘法,通过最小化‘预测值与真实值之间差的平方和’,来同时计算出最优的 WW 和 bb ,从而使这条拟合直线尽可能贴近所有数据点。”
训练过程 (Training)
-
“我有一堆数据”
- 👉 训练数据集 (Training Data) :这是机器学习的“燃料”。没有数据,机器就无法学习。
-
“告诉机器我的目标是什么”
-
👉 定义损失函数 (Loss Function) / 优化目标:
- 在监督学习(如线性回归)中,目标通常是“让预测值尽可能接近真实值”(即最小化误差)。
- 在其他任务中,目标可能是“最大化分类准确率”或“最大化奖励”。
- 你并没有告诉机器具体的公式(比如 y=wx+by=wx+b 中的 ww 是多少),你只告诉了它评判标准(怎么做才算好)。
-
-
“机器自己去学”
-
👉 优化算法 (Optimization Algorithm) :
- 机器通过算法(如梯度下降)自动调整内部参数(权重和偏置)。
- 它不需要人类一步步教它怎么改参数,它根据“目标”和“当前表现”的差距,自己计算该怎么调整。
-
-
“结果每一次都去逼近目标”
-
👉 迭代优化 (Iterative Optimization) / 收敛 (Convergence) :
- 这是一个反复试错的过程:预测 -> 算误差 -> 调参数 -> 再预测 -> 误差变小...
- 直到误差小到一定程度,或者不再明显下降,我们就说模型“训练好了”或“收敛了”。
-
在实际应用中,我们还有一个最终目的:
“学会之后,遇到没见过的新数据,也能做出准确的预测。”
这就是泛化能力 (Generalization) 。
- 如果机器只是死记硬背了旧数据(每一次都逼近旧数据的目标),但遇到新数据就傻了,那叫过拟合 (Overfitting) ,这不是成功的机器学习。
- 真正的成功是:机器通过旧数据学到了规律,从而能搞定新数据。
| 你的通俗理解 | 专业术语对应 |
|---|---|
| 一堆数据 | 训练集 (Dataset) |
| 告诉目标 | 定义损失函数 (Loss Function) |
| 机器自己学 | 模型训练 / 参数优化 (Training / Optimization) |
| 每一次逼近目标 | 迭代更新 / 梯度下降 (Iteration / Gradient Descent) |
| (隐含) 学会后能用 | 泛化 (Generalization) |
误差:服从独立同分布,服从高斯分布 似然函数:什么样的参数和我们的数据组合后恰好是真实值 对数似然:把似然函数从乘法转换成加法 最大化对数似然 ≈≈ 最小化损失函数(Loss) 。
二、逻辑回归
分类(二分类)
Sigmoid,输入任意,输出[0,1]
逻辑回归的作用就是分类并输出判定中每个类别的概率
三、评价指标
1.交叉验证:
首先把训练集分成三份,克隆一下数据集的index,以备后续使用进行训练和验证。原始数据集是不变,干净的。每次训练和验证就是从训练集中按照划分的index把相应的图片取出。最后得到三组数据,这三组数据是训练集的数据分成三份,意味着有三个验证集,每个验证集进行验证的结果。
2.混淆矩阵:
TP=正确的样本=正例 FP=错误的样本=负例
四、决策树
可以分类,根节点使得熵值小。也可以回归,回归的时候,根节点用方差去算。
贪婪算法:依次分类,计算熵值
剪枝: 预剪枝:限制参数,调优 后剪枝:通过一定的衡量标准(Geni系数和叶子节点),
五、集成算法
随机森林:可解释强