k近傍法を用いた分類器の評価方法

3 ビュー (過去 30 日間)
ASAMI
ASAMI 2022 年 8 月 31 日
コメント済み: ASAMI 2022 年 9 月 14 日
cvpartition(オプションでkFold)で分割したデータセットを用い,k近傍法(fitcknn,オプションでcvpartition)の交差検証済みモデルを作成しました。その交差検証済みモデルに対しての評価としてresublossとkfoldlossを求めたいと考えています。しかし,resublossがエラーになり,求まりません。交差検証済みモデルに対して再代入損失を求める方法はありますでしょうか?ご教示頂けますと幸いです。

採用された回答

Hiro Yoshino
Hiro Yoshino 2022 年 9 月 2 日
resubloss の引数は (こちら参照) full-classification model である必要があります。このモデルの中には学習時のデータなどが含まれます。resubloss 関数はこの学習データを利用して再代入誤差率を計算しています。
一方で、交差検証 (たとえば crossval ) で返ってくるモデルは、別のクラスのインスタンスになっています。crossval でしたら こちらの オブジェクト ClassificationPartitionedModel なので resubloss は受け取ることが出来ません。恐らくこれが原因ではないかと思われます。
回避策としては、単純に利用したデータを交差検証後のモデルに predict 関数などで与えて、計算したい再代入誤差のコードを書けば良いと思います。resubloss のようにオプションを切り替えるだけで色々計算はできませんが、計算方法も resubloss の下の方に解説があるので、それを見ながらコードを作成することはそこまで難しく無いかなと思います。
  1 件のコメント
ASAMI
ASAMI 2022 年 9 月 14 日
確認が遅れ申し訳ございません。
種々,ご教示頂きまして,大変ありがとうございます。
ご教示頂きました内容にてトライさせて頂きたいと存じます。

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeガウス過程回帰 についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!