ラッパー法でのfunの定義の仕方について
이전 댓글 표시
特徴選択を行い、そこで選ばれた因子から順序ロジステックモデルを作ろうと思っています。そこでカスタム基準を使用した逐次特徴選択を使おうと思います。構文はinmodel = sequentialfs(fun,X,y)です。そこでこのfunを定義する必要があると思うのですが、どう定義したら良いですか?
よろしくおねがいします。
답변 (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
Ayaka Egashira
2020년 11월 25일
michio
2020년 11월 26일
fun = @(XT,yT,Xt,yt)loss(fitcecoc(XT,yT),Xt,yt);
[fs,history] = sequentialfs(fun,X,y,'cv',c,'options',opts)
というコマンド例がありますが、学習サブセットと検定サブセットは sequentialfs 関数側で入力 X, y を分割しますので、実行時に明示的に分割する必要はありません。
Ayaka Egashira
2020년 12월 10일
michio
2020년 12월 10일
申し訳ありません、実施されたい事の全容がつかめずエラーの理解に苦慮しております。
mnrfit
を実行された後の
model.Rsquared.Adjusted
でエラーがでるとのことですが、この model とはなんでしょうか?
もし可能であれば何らかのサンプルデータに対して実行でき、エラーも再現できるコードを見せて頂けると助かります。
Ayaka Egashira
2020년 12월 11일
michio
2020년 12월 11일
(一度以下の”回答”にコメントしましたが削除し、こちらに転記します)
スクリプトを記載頂きありがとうございます。
今回実施されたいのは順序ロジステックモデルを作るにあたって、sequentialfs を使ったカスタム基準による逐次特徴選択であり、ご質問はその為に必要な fun (カスタム基準を返す関数) の定義方法だと理解しております。
今回頂いたコードはそのカスタム基準を返す関数(の一部)ということでしょうか?事前に fscnca により特徴量を選択さておりますが、その選択された中から sequentialfs でさらに絞り込むことを想定されていますか?
頂いたコードだけを拝見するとコード内で model が定義されていないために model.Rsquared.Adjusted との呼び出しにてエラーがでいると見えてしまいますが、いかがでしょうか?
Ayaka Egashira
2020년 12월 11일
Ayaka Egashira
2020년 12월 11일
편집: michio
2020년 12월 11일
카테고리
도움말 센터 및 File Exchange에서 データ分布プロット에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!