我有一个来自污染传感器的数据,我希望对其进行验证。我将它与来自 londonair.org.uk 的数据进行比较以进行比较。我用 X 轴上的传感器数据和 Y 轴上的 Londonair 数据创建了一个简单的线性回归模型,并且能够得到一个简单的模型(以 y=mx + c 的形式)。我的教授要求我使用 k 折交叉验证来验证模型,但我不确定如何。
我不确定要在哪个数据集上执行测试。它应该来自传感器的原始数据,还是应该采用通过回归模型计算的数据?
我有一个来自污染传感器的数据,我希望对其进行验证。我将它与来自 londonair.org.uk 的数据进行比较以进行比较。我用 X 轴上的传感器数据和 Y 轴上的 Londonair 数据创建了一个简单的线性回归模型,并且能够得到一个简单的模型(以 y=mx + c 的形式)。我的教授要求我使用 k 折交叉验证来验证模型,但我不确定如何。
我不确定要在哪个数据集上执行测试。它应该来自传感器的原始数据,还是应该采用通过回归模型计算的数据?
K-Fold 交叉验证简介
K-Fold 交叉验证将训练数据集分成 k 个不同的相等部分,也称为“折叠”。每个折叠依次被视为一个测试集(也称为“验证集”),而其余的 k - 1 个块成为训练集。该模型通过迭代 k - 1 个块进行训练,并在验证集块上测试生成的模型,其中测量了一些指标,例如准确度、标准差等。该过程重复 k 次,之后所有模型评估的平均值计算以确定最终的模型评估。
总而言之,K-fold 交叉验证可以通过以下步骤实现:
随机打乱初始数据集。
对于每个折叠:
(a) 将第一个折叠设置为测试数据集。
(b) 将剩余的折叠设置为训练数据集。
(c) 使用训练集进化模型,并使用模型评估测试数据集。
(d) 重复 k 次。
计算 k 个测试数据集评估的模型评估平均值。
您正在验证您的模型,即您正在尝试了解您的模型在捕获原始数据中的基本模式和关系的能力 - 因此您用于训练的数据将是您的原始数据(训练意味着您是将其输入您的模型以使其能够学习),而验证数据是您输入模型的数据,以查看它对训练数据的学习程度。基本的 k 折交叉验证思想不是在训练期间已经看到的数据上测试模型。
特别是您的案例
您有带有标签的数据,每个实例都是一个“对”:污染数据-> londonair 数据。假设您有 100 个独特的对 - 您可以将例如 80 个这样的对输入到您的模型中进行训练(如果原始数据污染值为a
,则 londonair 标签是b
),其余 20 个您将用于验证 - 您将污染数据提供给模型并检查模型是否返回了与污染数据对应的正确 londonair 数据标签(如果原始数据污染值为a
,根据模型,标签应该是什么?)。重复上述介绍中所述的过程,然后平均结果,这将反映您的模型准确性。