【发布时间】:2018-04-13 18:44:06
【问题描述】:
我有一个大约 189000 行的大型数据集,总共 16 列。我想将其分为 80% 的训练和 20% 的测试。数据集中的行本身被分成几组,第一部分与新闻相关,第二部分与体育相关,第三部分与宗教相关,最后一部分是一般的。我不能直接将其拆分为 80:20,因为位于数据集下部的大多数类将在训练中丢失。另外,如何从此类数据集中选择验证集?
【问题讨论】:
-
最好的做法是随机拆分并尝试几个不同的拆分,以确保没有过度拟合。如果您有神经网络工具箱,您可以使用
dividerand执行此操作,否则只需使用randperm。 -
如果您有机器学习工具箱,请参阅
cvpartition并带有“保留”选项:ch.mathworks.com/help/stats/cvpartition.html
标签: matlab training-data