問題タブ [r-caret]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 代替パフォーマンス メトリックを使用した R キャレット モデルの評価
R のキャレット パッケージを使用して、グリッド検索とモデル評価を行っています。絶対誤差の加重平均であるカスタム評価指標があります。重みは観測レベルで割り当てられます。
ここでは、summaryFunction を使用してキャレットの train() のカスタム評価メトリックを定義する方法の例を示します。引用するには:
trainControl 関数には、パフォーマンスを計算するための関数を指定する summaryFunction という引数があります。関数には次の引数が必要です。
data は、obs および pred と呼ばれる列を含むデータ フレームまたは行列の参照であり、観測および予測された結果値 (回帰の数値データまたは分類の文字値のいずれか) を表します。現在、クラス確率は関数に渡されません。データ内の値は、チューニング パラメーターの 1 つの組み合わせに対する保持された予測 (および関連する参照値) です。trainControl オブジェクトの classProbs 引数が TRUE に設定されている場合、データ内にクラス確率を含む追加の列が存在します。これらの列の名前は、クラス レベルと同じです。lev は、トレーニング データから取得した結果因子レベルを含む文字列です。回帰の場合、NULL の値が関数に渡されます。model は、使用されているモデルの文字列です (つまり、
観測の重みを summaryFunction に渡す方法がよくわかりません。
r - setClass を使用して、タイプ「train」のキャレットから train 関数を渡そうとしています
カスタム クラス ビルダー setClass() を使用して、train 関数 (キャレット パッケージ) から結果を返そうとしています。
これは、関数で TrainResults を作成する方法です。
「successrate」は数値型であるため正常に機能しますが、plsFit (train {caret} 型) は次のように不平を言います。
タイプtrainのオブジェクトを適切に渡す方法はありますか? ありがとう!
r - Caret パッケージの Predict 関数でエラーが発生する
Rのキャレットパッケージを使用して、通常のロジスティック回帰を行っています。SALES_FLAGと呼ばれる1または0にコード化された二項応答変数と、RのdummyVars関数を使用してダミー変数に変換した140個の数値応答変数があります。
これにより、操作するデータ フレームが得られます。すべての変数は数値です。次に、トレーニングとテストに分けます。
train 関数を使用してモデルをトレーニングする時間:
すべてがうまくいき、モデルを取得します。しかし、予測関数を実行すると、必要なものが得られません。
エラーが発生します:
一方、予測関数内のタイプの「確率」を「生」に置き換えると、予測が得られますが、しきい値を指定してバイナリ変数にコーディングできるように確率が必要です。
なぜこれが起こるのか分かりません。キャレットパッケージを使用せずに同じことを行いましたが、次のように機能しました。
私はこれを見て時間を費やしていますが、何が起こっているのかわからず、私には非常に奇妙に思えます. 式を使用せず、X と Y を使用したことを意味する train 関数の多くのバリエーションを試しました。チェックには method = 'bayesglm' も使用しましたが、id で同じエラーが発生しました。誰かが私を助けてくれることを願っています。必要なものを取得するための train 関数があるため、使用する必要はありませんが、キャレット パッケージは多くのツールを備えた優れたパッケージであり、これを理解できるようにしたいと考えています。
r - Rキャレットは、トレーニング後にdata.tableの列の名前を変更します
何らかの理由で、パッケージ内のtrain
関数がcaret
応答変数の名前を変更します。おもちゃの例を次に示します。
トレーニング後に名前を変更できることはわかっていますが、トレーニングするモデルが多数ある場合は繰り返しになります。これは正しい動作ですか?
編集: sessionInfo を追加
r - R、キャレット: トレーニング セットとホールドアウト (検証) セットを指定するにはどうすればよいですか?
データセットがあり、データセットの特定の部分のみでキャレットをトレーニングして検証したいと考えています。私は2つのリストを持っています
と
これは、データ セットの行インデックスに対応します。train.ids$T1
テストには使用する必要がありますが、トレーニングには使用するtest.ids$T1
必要があります。T2 と T3 についても同様です。
使ってみた
しかし、これは trainControl を使用する正しい方法ではないようです。
どんな助けでも大歓迎です