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 の周辺分布のそれぞれ (列ごとに 1 つ) が 3 つの変数すべてで同じ分布を持つような A の分割があるということです。これが真実であるという保証はありません。マトリックスの列が相関しているかどうかを確認します。そうでない場合は、単純に 1 で分割し、行インデックスを使用してテスト行列を定義します。

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

それらが相関している場合は、戻って何をしようとしているのかを再考する必要があるかもしれません.

于 2012-09-05T13:10:29.927 に答える