什么是Overfitting
算法在训练集上表现好,但在测试集上表现不好,泛化性能差。
引起过拟合的原因
模型本身过于复杂,以至于拟合了训练样本集中的噪声。
如何解决过拟合
- 交叉验证。
- 用更多的数据进行训练。
- 数据增强。
- 特征选择。
- Early Stop。
- 正则化 Regularization。
什么是Underfitting
模型复杂度低,模型在训练集上就表现很差,没法学习到数据背后的规律。
引起欠拟合的原因
通常,它发生在训练数据或时间不足的情况下。
如何解决欠拟合
- 加入更多的特征
- 减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
Cross Validation
在交叉验证中,数据被分割为k个fold,其中一个被用作为验证集,其余的用来训练模型。一直重复这个步骤,直到每个fold都被用作验证集一次。
得到的结果的均值被用于评估模型性能,这种方法被称为k-fold。
L1 VS L2
L1的正则化项使用的是权重的绝对值之和,L2使用的则是平方和。
L1正则化将不太重要的特征系数缩减为零,因此适合于特征选择。
直观地讲,L1试图估计数据的中位数,而L2试图估计数据的平均数。
为何 L1正则化比L2更容易导致稀疏性?
因为L1正则化使用的是L1范数,只要使L1范数尽可能地小,也就是有更多的0,就会让结果更为稀疏
为什么正则化可以减轻过拟合
在一个模型中,自由度,也就是可以调节的 weight - \theta 越多,越容易过拟合。因此需要约束这个模型,正则化通过惩罚权重系数为0来避免模型过于复杂。
给定数据集,模型预测的正样本总数?
数据集里真正的正样本总数有多少?
Precision & Recall
由Confusion Matrix的结果得来,用于描述分类性能:
Precision:
注:以考试为例,5张卷子没做完,就做了3张。做的里面对了多少?
Recall:
注:以安检为例,据线报,今天有5名恐怖分子将入境,能不能都给查出来?
Precision 提高,则Recall 下降;反之亦然。
扫盲:Precision, Recall, TPR, FPR - 知乎 (zhihu.com)
F1-Score
label不平衡时使用此metric
F1-Score 会均衡考虑 recall 以及 precision ,是他们的加权平均数。如果想在 recall 和 precision 取得平衡,就会用到 F1-Score。
ROC和AUC
ROC 是一条概率曲线。横轴为FP rate,纵轴为TP rate。
真阳性:
假阳性:
AUC是ROC曲线在横轴投影的面积。
分类问题可以使用MSE(均方误差)作为损失函数吗
欧式距离不是凸函数;交叉熵是凸函数。
从损失函数的角度来说,假设一个3分模型中,输出结果为 (a,b,c),但是实际结果为 (1,0,0)
那么MSE为: (a-1)^2 + (b-0)^2 + (c-0)^2 = (a-1)^2 + b^2 +c^2
交叉熵为:-1 \log a - 0 \log b - 0 \log c = -\log a
由上,交叉熵的损失函数只和分类正确的预测结果有关系,而MSE的损失函数还和错误的分类有关系。
熵是啥
用于衡量随机性/混乱度的一个单位
Bias and Variance trade off
Bias代表模型预测值和数据间的差距,代表模型的误差或精度
Variance表示模型在不同数据间Bias的差距,代表了模型的泛化性的好坏