- Training Set 训练数据:用于训练的数据
- Testing Set 测试数据:用于最终测试算法效果的数据,不能用于验证或训练
- Validation Set 校验数据:用于检验训练数据是否过度拟合
如何划分比例:
训练:校验:测试 = 50:25:25(数据多) / 60:20:20(数据较少)
-
过度拟合(Overfitting):算法精确的学习了训练数据,却不适用于所有数据(算法在相同的训练数据集中训练太久,导致过度的学习了训练数据集,包括其中的噪音和数据中不精确的部分)。
换句话说,算法得到的函数精确匹配训练集,但在后果是,在总体上对所有数据来说偏差更大了(在训练数据中,算法的函数曲线应该以在最近的距离通过所有数据点(更平滑),而不是试图穿过所有数据点(更曲折))。
解决方案:校验数据(Validation set),或者进行交叉验证(Cross-validation)
-
交叉验证(Cross-validation):将训练数据拆分,分别作为训练数据和校验数据,多次对算法进行训练。最后选择“校验误差最低”的算法模型作为结果进行测试。
如果校验数据太少,可能导致算法训练不充分时,可以选择交叉验证(Cross-validation)
交叉验证的是以时间为代价,弥补数据的不足。
-
-
混淆矩阵(Confusion Matrix):适用于分类问题(Classification),用于表示分类的准确程度
C1,C2,C3是三个类,数据集中有18个数据点,列的总数表示算法对数据点进行的划分,行的总数表示数据点实际的归属。
比如按列来看,对于(C1,C2,C3),算法对18个点的划分是(8,5,5);按行看,实际的划分应该是(6,6,6)。
而左上到右下的对角线(leading diagonal)则代表了算法的准确率 5 + 4 + 4 c 1 + c 2 + c 3 = 13 18 \frac{ {}_{5+4+4}}{c1+c2+c3}=\frac{13}{18} c1+c2+c35+4+4=1813
算法输出(Outputs) C1 C2 C3 实际值(Targets) C1 5 1 0 C2 1 4 1 C3 2 0 4
-
Accuracy metrics 精度测量 / Binary classifier 二元分类器:与混淆矩阵的行列颠倒,列表示真实值,行表示预测值(算法输出)。当真实值=预测值时,结果为True,表示预测正确;False表示预测错误。
真实值 P N 算法输出 P' True Positive(TP,hit) False Positives(FP,false alarm) N' False Negatives(FN,miss) True Negatives(FN,correct rejection)
- 准确率,Accuracy (ACC)
A C C = T P + T N P + N = T P + T N T P + T
- 准确率,Accuracy (ACC)