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)