ラッパー法での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!