对于典型的机器学习,您通常会使用训练数据集来创建某种模型,然后使用测试数据集来测试新创建的模型。对于使用训练数据创建模型后的线性回归之类的东西,您现在有一个方程式,您可以使用它来预测测试数据中特征集的结果。然后,您将获取模型返回的预测并将其与测试集中的实际数据进行比较。在这里如何使用验证集?
对于最近邻,您将使用训练数据创建一个具有训练集所有特征的 n 维空间。然后,您将使用此空间对测试数据中的特征进行分类。您将再次将这些预测与数据的实际值进行比较。验证集在这里也有什么帮助?
对于典型的机器学习,您通常会使用训练数据集来创建某种模型,然后使用测试数据集来测试新创建的模型。对于使用训练数据创建模型后的线性回归之类的东西,您现在有一个方程式,您可以使用它来预测测试数据中特征集的结果。然后,您将获取模型返回的预测并将其与测试集中的实际数据进行比较。在这里如何使用验证集?
对于最近邻,您将使用训练数据创建一个具有训练集所有特征的 n 维空间。然后,您将使用此空间对测试数据中的特征进行分类。您将再次将这些预测与数据的实际值进行比较。验证集在这里也有什么帮助?
机器学习模型输出某种功能;例如,决策树是一系列比较,产生一个叶节点,并且该叶节点具有一些关联的值。此决策树预测泰坦尼克号上的生存机会,例如:
(图片由 Steven Milborrow 提供,来自维基百科)
这可以完全像线性回归生成的方程一样使用。您将新数据点输入模型,得到预测,然后将这些预测与实际值进行比较。
您所做的比较是应用“成本函数”,而您使用的成本函数由您的应用程序决定。例如,线性回归可以用不同的成本函数来完成;通常,人们使用试图最小化均方误差的“普通最小二乘法”,但也存在其他可能性,例如最小化误差的绝对值。当结果是百分比时,与实际概率和预测概率之间的均方差相比,对数概率损失函数通常是更好的选择。
即使是 k 最近邻也会生成一个函数;它将空间分割成k个最近邻是相同集合的区域,然后对该区域具有一个平坦的值。它最终与基于决策树的方法生成的结果非常相似。
这里还有一个术语点:通常,人们谈论训练集和测试集,或者训练集、验证集和测试集。验证集的点与测试集的点不同;测试集用于确定样本外误差(即模型有多少过拟合以及它的真实世界误差可能是什么样的),而验证集用于确定哪些超参数最小化预期测试误差.
一个人可以在 80% 的数据上拟合十个不同的模型,确定哪个模型在另外 10% 的数据上的误差最小,然后最终估计最后 10% 数据的实际误差。