我有一个数据集,我想在其上进行监督学习。训练集有标签,但测试集没有。
在进行监督学习时,我们是否需要测试集中的标签?
数据挖掘
机器学习
2022-03-07 14:02:21
2个回答
这里的重要概念是评估:
- 任何一个人都想应用该模型来评估它。在这种情况下,必须标记测试数据,因为在监督学习中,通过将模型的预测与真实答案进行比较来评估模型。
- 或者只是想应用该模型以获得对某些数据的预测。
术语“测试集”可能会引起混淆:
- 人们总是可以将监督模型应用于一些新实例,与训练数据相比,将应用数据的任何数据称为“测试数据”是很常见的(从技术上讲,它实际上应该被称为“生产数据”)。最终,监督模型旨在预测一些未标记数据的目标变量(这就是重点),因此当然可以将模型应用于一些未标记的“测试”数据。
- 但从构建 ML 模型的角度来看,只有评估很重要:将模型应用于一些未标记的数据并不真正相关,因为它没有提供有关模型工作情况的任何信息。这就是为什么在几乎所有关于监督学习的机器学习书籍/课程中,测试集都被理解为一个标记的测试集,即可以用于评估。
如果您有标记的训练集但没有标记的测试集,则意味着您必须拆分训练集才能评估模型。否则,当您将模型应用于测试集时,您将不知道预测是否正确,因此该模型将毫无用处。
简单的答案是肯定的。例如,我希望您知道 scikit learn 提供的train_test_split函数,它返回具有特征和标签的训练和测试数据对。为了评估模型的准确性,我们可以使用如下函数,
def r2_score(Y_actual,Y_predicted):
num = np.sum((Y_actual-Y_predicted)**2)
denom = np.sum((Y_actual- Y_actual.mean())**2)
score = (1- num/denom)
return score*100
因为这个函数会给你更多的想法(r2 分数),如果不标注我们如何预测模型就足够好(在监督学习中),如果准确度非常低。IE
其它你可能感兴趣的问题