2

我想以分层的方式将语料库划分为训练和测试集

观察数据点排列在一个矩阵 A

A=[16,3,0;12,6,4;19,2,1;.........;17,0,2;13,3,2]

矩阵的每一列代表一个不同的特征。

在 Matlab 中,cvpartition(A,'holdout',p)函数需要A是一个向量。如何使用矩阵执行相同的操作,A结果集的每个特征的分布与原始语料库中的分布大致相同。

4

1 回答 1

0

通过使用矩阵 A 而不是分组数据,您假设数据的随机分区将返回具有相同列分布的测试和训练集。

一般来说,您在问题中所做的假设是 A 的一个分区使得 A 的每个边际分布(每列 1 个)在所有三个变量中具有相同的分布。不能保证这是真的。检查矩阵的列是否相关。如果不是,只需在 1 上进行分区并使用行索引来定义测试矩阵:

cv = cvpartition(A(:, 1), 'holdout', p);
text_mat = A(cv.test, :);

如果它们是相关的,您可能需要返回并重新考虑您正在尝试做什么。

于 2012-09-05T13:10:29.927 回答