在监督学习中,我有典型的训练/测试拆分来学习算法,例如回归或分类。关于无监督学习,我的问题是:训练/测试拆分是否必要且有用?如果是,为什么?
问问题
12627 次
2 回答
3
这取决于问题、数据集的形式和用于解决特定问题的无监督算法类别。
粗略地说:- 降维技术通常通过计算重构中的误差来测试,因此我们可以使用 k 折交叉验证程序
但在聚类算法上,我建议进行统计测试以测试性能。拆分数据集并用有意义的类手动标记测试集并进行交叉验证也几乎没有什么耗时的技巧
在任何情况下,对有监督的数据使用无监督算法,那么它总是很好的交叉验证
总体:- 没有必要在训练测试集中拆分数据,但如果我们能做到,那总是更好
这是解释交叉验证如何成为无监督学习的好工具的文章 http://udini.proquest.com/view/cross-validation-for-unsupervised-pqid:1904931481/全文可在此处获得http:/ /arxiv.org/pdf/0909.3052.pdf
于 2017-12-06T19:52:25.870 回答
1
绝对是有用的。
关于“为什么”,我知道的几点。
当测试一个模型进入故事时,它应该总是在看不见的数据上执行。因此,最好使用 train_test_split 吐出数据。
第二种情况是数据应该总是在格式中打乱。否则,在拟合模型时会出现 n-1 类数据,可能不会给出好的结果。
于 2020-12-18T01:08:32.750 回答