我想将语料库划分为 training& amp;测试集以分层方式。
观察数据点以矩阵 A
排列为
A=[16,3,0;12,6,4;19,2,1;.........;17,0,2;13,3,2]
矩阵的每一列代表一个独特的特征。
在Matlab中,cvpartition(A,'holdout',p)
函数需要A
作为向量。如何使用A
作为 Matrix 执行相同的操作,即结果集与原始语料库中的每个要素的分布大致相同。
答案 0 :(得分:0)
通过使用矩阵A而不是分组数据,您假设数据的随机分区将返回具有相同列分布的测试和训练集。
一般而言,您在问题中所做的假设是A的分区使得A的每个边际分布(每列1个)在所有三个变量中具有相同的分布。无法保证这是真的。检查矩阵的列是否相关。如果不是,只需在1上分区并使用行索引来定义测试矩阵:
cv = cvpartition(A(:, 1), 'holdout', p);
text_mat = A(cv.test, :);
如果它们相关,您可能需要返回并重新考虑您要执行的操作。