2012-04-02 10 views
3

crossval() & cvpartition()関数は、MATLABのマニュアルcrossval()に記載されています。パラメータには何が入り、異なる分類子の性能と精度を比較するとどのように役立つでしょうか。ここでより簡単なバージョンが提供されていれば義務づけられます。パターン認識のプロットに関連する問題(パート1)

+0

あなたは3つの全く独立した質問をしています。このサイトがあなたを助けるだけでなく、将来同様の質問をする他の人を助けることを理解してください。ですから質問はできるだけ整理され、できるだけ記述的でなければなりません。私は3つの異なるものにあなたの質問を分割することをお勧めしたいと思います。あなたは質問のためにお金を払う必要はありません!そして、あなたの評判を高めるチャンスは3倍になります。 – yuk

+0

質問を修正しました、ありがとうございます。見てください。 – Chaitali

答えて

2

CROSSVALのドキュメントから例2を試してみましょう。ここで

load('fisheriris'); 
y = species; 
X = meas; 

我々はXyに例のマット・ファイルおよび割り当てられた変数からデータをロードしました。 meas amtrixには、虹彩花の異なる測定値が含まれており、speciesは、虹彩のツリークラスであり、データで予測しようとしているものです。

クロスバリデーションは、同じデータセットのクラシファイアを何回もトレーニングするために使用されます。基本的に、各反復でデータセットをトレーニングデータとテストデータに分割します。比率はk倍で決定される。たとえば、kが10の場合、データの90%がトレーニングに使用され、残りの10%はテストのために使用され、10回の反復が行われます。これはCVPARTITION機能によって行われます。

cp = cvpartition(y,'k',10); % Stratified cross-validation 

あなたがcp.を入力してタブを押した場合は、cpオブジェクトを探索することができます。さまざまなプロパティとメソッドが表示されます。たとえば、find(cp.test(1))は、1回目の反復のテストセットのインデックスを表示します。

次のステップは、予測関数を準備することです。これはおそらくあなたが主な問題を抱えていた場所です。このステートメントは、無名関数を使用して関数ハンドルを作成します。 @(XTRAIN, ytrain,XTEST)部分は、この関数に3つの入力引数があることを宣言します。次の部分(classify(XTEST,XTRAIN,ytrain))は、既知のytrainクラスのトレーニングデータXTRAINを取得し、生成されたモデルを持つXTESTデータのクラスを予測する関数を定義します。 (これらのデータは、cpからある、覚えてる?)

classf = @(XTRAIN, ytrain,XTEST)(classify(XTEST,XTRAIN,ytrain)); 

その後、我々はmissclassification率(MCR)完全なデータセットを渡し、予測関数ハンドルとパーティショニングオブジェクトcpを推定するCROSSVAL機能を実行しています。

cvMCR = crossval('mcr',X,y,'predfun',classf,'partition',cp) 
cvMCR = 
    0.0200 

質問がありますか?

+0

良い説明:)それは非常に難しい開発者のための1つの例を説明したmatlabのヘルプx) – jjepsuomi