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

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

Accepted Answer

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

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!