Medical Image Classificationにおけるcross-validationの使い方につきまして
조회 수: 5 (최근 30일)
이전 댓글 표시
プログラミング初心者です。
以下のディレクトリ構造に基づき、cross-validationのコードを書きたいと思っていますが、
helpを見てもつまづいてしまいましてご質問いたします。
cross-validationは10-foldを希望しております。
どうぞよろしくお願いいたします。
main
-- a
-- image.dcm(10 dicom file)
-- b
-- image.dcm(10 dicom file)
-- c
-- image.dcm(10 dicom file)
-- d
-- image.dcm(10 dicom file)
%path = current directory
currentdirectory = pwd;
categories = {'a', 'b', 'c','d'};
%Create an ImageDatastore to help you manage the data.
imds = imageDatastore(fullfile(currentdirectory, categories),'IncludeSubfolders',true,'FileExtensions','.dcm','LabelSource', 'foldernames','ReadFcn',@dicomread);
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.5,'randomize');
おそらく下記コードをcross-validationに変更するかと思うのですが、うまくできません。。
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.5,'randomize');
댓글 수: 0
채택된 답변
ryota suzuki
2019년 2월 13일
편집: ryota suzuki
2019년 2월 13일
[imdsTrain,imdsValidation] = splitEachLabel(imds,0.5,'randomize');
では変数imdsに集約されたデータのうち,50% をimdsTrainに,残りの50% をimdsValidationにランダムに分割させています.
変数名から考えるに,imdsTrainは学習用,imdsValidationは検証用のデータではないでしょうか.
機械学習において,交差検証(Cross-validation)とは,学習前に検証用のデータ(Validation Data)を抜きとり,
学習とは独立させることで過学習を防ぐ取り組みです.
学習用データ(Training Data)を使って変数の最適化計算を行い,その結果を用いて検証用データで何度もテストを行います.
現状のスクリプトは,データを読み取り,学習用と検証用に分けたところまでであり,
交差検証には進んでいません.
このあとに学習させるコマンドを追加させる必要があります.
10-foldという単語を見るに,K-fold Cross Validationを検討中でしょうか.
Statistics and Machine Learning Toolboxを導入すれば,一発でできそうな分割コマンドがありましたが(データの交差検証分割を作成),splitEachLabelでも可能かと思います.
[imds01,imds02,imds03,imds04,imds05,imds06,imds07,imds08,imds09,imds10]...
= splitEachLabel(imds,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,'randomize');
でデータを10分割し,適宜,
imdsTrain = imageDatastore(cat(1,imds01.Files,imds02.Files, ... ,imds09.Files))
imdsValidation = imds10
という具合に結合させて学習にまわす動作を,組み合わせを変えながら10回繰り返すことでできるかと思います.
댓글 수: 6
ryota suzuki
2019년 2월 14일
Statistics and Machine Learning Toolboxについては私は触ったことがないので結合の仕方はわからないです.自分の環境下で試せないので確かなことは言えないです.申し訳ありません.
ただ,cvpartitionのドキュメンテーションページにはK-foldの計算例が記載されているようです.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 サポート ベクター マシン回帰에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!