split data to train,test and validation

15 ビュー (過去 30 日間)
REMYA K
REMYA K 2020 年 11 月 15 日
コメント済み: Adam Danz 2020 年 11 月 16 日
I want to split my data into train and test in a ratio of 70:30,further I want to split my train data into train and validation in a ratio of 60:10. I want 5 folds of such train,test and validation data combination but test data should be same in all 5 folds.
How can I solve this ?
Can any one help me.

回答 (1 件)

Adam Danz
Adam Danz 2020 年 11 月 15 日
If you have the Statistics and Machine Learning toolbox, use cvpartition.
Otherwise, randperm to create indicies that separate the test and training sets.
  2 件のコメント
Fathima Bareeda
Fathima Bareeda 2020 年 11 月 16 日
How can i solve this using randperm
Adam Danz
Adam Danz 2020 年 11 月 16 日
For example, let's say I want to split up vector "data" into 70/30 training/test sets.
data = rand(1,1000);
trainIdx = randperm(numel(data), round(numel(data)*.7));
testIdx = find(~ismember(1:numel(data), trainIdx));
trainIdx and testIdx are indices of the 'data' vector without overlap. To confirm that,
isequal(sort([trainIdx,testIdx]), 1:numel(data))
ans = logical
1
The training set will roughly cover 70% while the test set will roughly cover 30%. To confirm that,
[numel(trainIdx)/numel(data), numel(testIdx)/numel(data)]
ans = 1×2
0.7000 0.3000

サインインしてコメントする。

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by