ラッパー法でのfunの定義の仕方について
6 ビュー (過去 30 日間)
古いコメントを表示
特徴選択を行い、そこで選ばれた因子から順序ロジステックモデルを作ろうと思っています。そこでカスタム基準を使用した逐次特徴選択を使おうと思います。構文はinmodel = sequentialfs(fun,X,y)です。そこでこのfunを定義する必要があると思うのですが、どう定義したら良いですか?
よろしくおねがいします。
0 件のコメント
回答 (2 件)
michio
2020 年 11 月 19 日
の例にある
fun = @(XT,yT,Xt,yt)loss(fitcecoc(XT,yT),Xt,yt);
が fun 定義の一例です。ここでは無名関数として定義していますが、別途関数ファイルに XTRAIN,ytrain,XTEST,ytest を入力とする関数を定義し(例えば myFcn.m)
fun = @myFcn
と定義することもできるかと思います。
7 件のコメント
michio
2020 年 12 月 11 日
(一度以下の”回答”にコメントしましたが削除し、こちらに転記します)
スクリプトを記載頂きありがとうございます。
今回実施されたいのは順序ロジステックモデルを作るにあたって、sequentialfs を使ったカスタム基準による逐次特徴選択であり、ご質問はその為に必要な fun (カスタム基準を返す関数) の定義方法だと理解しております。
今回頂いたコードはそのカスタム基準を返す関数(の一部)ということでしょうか?事前に fscnca により特徴量を選択さておりますが、その選択された中から sequentialfs でさらに絞り込むことを想定されていますか?
頂いたコードだけを拝見するとコード内で model が定義されていないために model.Rsquared.Adjusted との呼び出しにてエラーがでいると見えてしまいますが、いかがでしょうか?
参考
カテゴリ
Help Center および File Exchange で Model Assessment についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!