kfoldfun
分類での関数の交差検証
説明
例
分類木分類器に学習をさせてから、カスタム k 分割損失関数を使用してこれを交差検証します。
フィッシャーのアヤメのデータ セットを読み込みます。
load fisheriris
分類木分類器を学習させます。
Mdl = fitctree(meas,species);
Mdl
は ClassificationTree
モデルです。
既定の 10 分割交差検証を使用して Mdl
を交差検証します。検証分割観測値の分類誤差 (誤分類された観測値の比率) を計算します。
rng(1); % For reproducibility CVMdl = crossval(Mdl); L = kfoldLoss(CVMdl,'LossFun','classiferror')
L = 0.0467
花を versicolor
として誤分類するコストが 10
、他の誤分類のコストが 1
である場合の結果を確認します。カスタム関数 noversicolor
(この例の終わりに掲載) を作成します。この関数は、花を versicolor
と誤分類する場合のコストを 10
として、他の誤分類のコストを 1
とします。
noversicolor
コストの平均誤分類誤差を計算します。
mean(kfoldfun(CVMdl,@noversicolor))
ans = 0.2267
次のコードは、関数 noversicolor
を作成します。
function averageCost = noversicolor(CMP,~,~,~,Xtest,Ytest,~) % noversicolor Example custom cross-validation function % Attributes a cost of 10 for misclassifying versicolor irises, and 1 for % the other irises. This example function requires the fisheriris data % set. Ypredict = predict(CMP,Xtest); misclassified = not(strcmp(Ypredict,Ytest)); % Different result classifiedAsVersicolor = strcmp(Ypredict,'versicolor'); % Index of bad decisions cost = sum(misclassified) + ... 9*sum(misclassified & classifiedAsVersicolor); % Total differences averageCost = cost/numel(Ytest); % Average error end
入力引数
交差検証済みモデル。ClassificationPartitionedModel
オブジェクト、ClassificationPartitionedEnsemble
オブジェクトまたは ClassificationPartitionedGAM
オブジェクトを指定します。
交差検証関数。関数ハンドルを指定します。fun
の構文は次のとおりです。
testvals = fun(CMP,Xtrain,Ytrain,Wtrain,Xtest,Ytest,Wtest)
CMP
は、CVMdl
.Trained
プロパティの 1 つの要素に保存されたコンパクト モデルです。Xtrain
は、予測値の学習行列です。Ytrain
は、応答値の学習配列です。Wtrain
には、観測値に対する学習の重みが格納されます。Xtest
およびYtest
は、重みWtest
が関連付けられたテスト データです。戻り値
testvals
は、すべての分割で同じサイズでなければなりません。
データ型: function_handle
出力引数
交差検証の結果。数値行列として返されます。vals
には testvals
出力の配列が格納され、すべての分割で垂直に連結されます。たとえば、すべての分割からの testvals
が、長さ N
の数値ベクトルである場合、kfoldfun
は、1 つの分割につき 1 行で KFold
行 N
列の数値行列を返します。
データ型: double
拡張機能
使用上の注意および制限:
fun
がgpuArray
入力を受け入れる必要があります。この関数は、次の交差検証済みモデル オブジェクトの GPU 配列を完全にサポートします。
fitcensemble
で学習させたアンサンブル分類器fitcknn
で学習させた k 最近傍分類器fitcsvm
で学習させたサポート ベクター マシン分類器fitctree
で学習させたマルチクラス分類用の二分決定木fitcnet
で学習させた分類用のニューラル ネットワーク
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入kfoldfun
は、fitcnet
を使用して学習させた ClassificationPartitionedModel
モデルの GPU 配列を完全にサポートします。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)