問題タブ [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.

0 投票する
1 に答える
658 参照

r - R でパッケージのソース コードを表示できない

関数 knnreg のソース コードをキャレットで表示しようとしています。

何が起こっていますか?ソースコードはどこにありますか?

0 投票する
1 に答える
1512 参照

r - マルチコアを使用すると、キャレットパッケージのパフォーマンスが非常に遅くなります

キャレットパッケージの著者による本「Applied Predictive Modeling 」を読んでいます。

svm でのトレーニングの最初の例は、64 ビット i7 16 GB xubuntu デスクトップで実行するのに数時間かかります [4 時間後にあきらめました]。これは「おもちゃ」のデータセット [800 行、42 変数] であるため、妥当な時間内にこれを実行する方法が必要です。

質問: このコードが正しい場合、妥当な時間内に実行するにはどうすればよいですか?

0 投票する
1 に答える
2487 参照

r - 苦労しているキャレットパッケージ経由のC50

C50 パッケージのキャレットトレインラッパーに苦労しています。予測モデルを適合させようとしています

私は得る

私のセッション情報は

前もって感謝します

0 投票する
2 に答える
49816 参照

r - キャレットを使用して R で k 倍 CV の折り畳みを作成する

http://archive.ics.uci.edu/ml/machine-learning-databases/undocumented/connectionist-bench/sonar/で入手可能なデータを使用して、いくつかの分類方法/ハイパーパラメーターの k 倍 CV を作成しようとしています。 sonar.all-data .

このセットは 208 行で構成され、それぞれに 60 の属性があります。read.table 関数を使用して data.frame に読み込んでいます。

次のステップは、データを k 個のフォールドに分割することです。たとえば、k = 5 とします。最初の試みは、

これには2つの問題がありました。1 つ目は、折り目の長さが互いに隣り合っていないことです。

もう1つは、属性インデックスに従ってデータが明らかに分割されたということですが、データ自体を分割したいと考えています。次を使用して、data.frameを転置することで、次のように考えました。

しかし、createFolds 関数を呼び出すと、次のようになります。

長さの問題は解決されましたが、それでも 208 データが適切に分割されません。

私は何ができますか?キャレットパッケージはおそらく最も適切ではないでしょうか?

0 投票する
1 に答える
3238 参照

r - キャレットのトレインと混乱マトリックス関数

Max Khun の Applied Predictive Modeling の本に従って、キャレットがどのように機能するかを学ぼうとしていますが、キャレットの混乱マトリックス関数がどのように機能するかを理解できませんでした。

次のように glmnet を使用して、8190 行と 1073 列のトレーニング データ セット (training[, fullSet]) をトレーニングしました。

次に、適合から混同行列を出力しました。

混同行列を見たところ、次の結果が得られました。

しかし、混同テーブルに 1757 個の観測値 (1757 = 507 + 208 + 63 + 779) しかない理由がわかりません。これは、キャレットの混乱マトリックス.トレインのドキュメントに、「トレインをモデルの調整に使用すると、混同マトリックス セルを追跡する」と記載されているためです。ホールドアウトサンプルのエントリー。」トレーニング データ セットには 8190 行があり、10 倍の CV を使用したため、混同行列は 819 データ ポイント (819 = 8190 / 10) に基づく必要があると考えましたが、そうではありません。

明らかに、キャレットのtrainControlまたはtrainがどのように機能するかを完全には理解していません。誰かが私が誤解したことを説明できますか?

どうもありがとうございました。

イ・ヨンジン

0 投票する
1 に答える
7141 参照

r - R でホールドアウト検証を実装する方法

Sonarデータを使用していて、R でホールドアウト検証を行いたいとしましょう。fromパッケージを使用createFoldsしてデータを分割しました。caretfolds <- createFolds(mydata$Class, k=5)

mydata[i]次に、フォールドをテストデータとして正確に使用し、トレーニングデータとして使用して分類器をトレーニングしたいと思いmydata[-i]ます。

最初にこのtrain関数を使用することを考えましたが、ホールドアウト検証のサポートが見つかりませんでした。ここで何か不足していますか?

また、関数でデータを分割する代わりに、事前定義されたフォールドをパラメーターとして正確に使用できるようにしたいと考えています。誰か考えがありますか?

0 投票する
1 に答える
2855 参照

r - 代替パフォーマンス メトリックを使用した R キャレット モデルの評価

R のキャレット パッケージを使用して、グリッド検索とモデル評価を行っています。絶対誤差の加重平均であるカスタム評価指標があります。重みは観測レベルで割り当てられます。

ここでは、summaryFunction を使用してキャレットの train() のカスタム評価メトリックを定義する方法の例を示します。引用するには:

trainControl 関数には、パフォーマンスを計算するための関数を指定する summaryFunction という引数があります。関数には次の引数が必要です。

data は、obs および pred と呼ばれる列を含むデータ フレームまたは行列の参照であり、観測および予測された結果値 (回帰の数値データまたは分類の文字値のいずれか) を表します。現在、クラス確率は関数に渡されません。データ内の値は、チューニング パラメーターの 1 つの組み合わせに対する保持された予測 (および関連する参照値) です。trainControl オブジェクトの classProbs 引数が TRUE に設定されている場合、データ内にクラス確率を含む追加の列が存在します。これらの列の名前は、クラス レベルと同じです。lev は、トレーニング データから取得した結果因子レベルを含む文字列です。回帰の場合、NULL の値が関数に渡されます。model は、使用されているモデルの文字列です (つまり、

観測の重みを summaryFunction に渡す方法がよくわかりません。

0 投票する
1 に答える
116 参照

r - setClass を使用して、タイプ「train」のキャレットから train 関数を渡そうとしています

カスタム クラス ビルダー setClass() を使用して、train 関数 (キャレット パッケージ) から結果を返そうとしています。

これは、関数で TrainResults を作成する方法です。

「successrate」は数値型であるため正常に機能しますが、plsFit (train {caret} 型) は次のように不平を言います。

タイプtrainのオブジェクトを適切に渡す方法はありますか? ありがとう!

0 投票する
1 に答える
5109 参照

r - Caret パッケージの Predict 関数でエラーが発生する

Rのキャレットパッケージを使用して、通常のロジスティック回帰を行っています。SALES_FLAGと呼ばれる1または0にコード化された二項応答変数と、RのdummyVars関数を使用してダミー変数に変換した140個の数値応答変数があります。

これにより、操作するデータ フレームが得られます。すべての変数は数値です。次に、トレーニングとテストに分けます。

train 関数を使用してモデルをトレーニングする時間:

すべてがうまくいき、モデルを取得します。しかし、予測関数を実行すると、必要なものが得られません。

エラーが発生します:

一方、予測関数内のタイプの「確率」を「生」に置き換えると、予測が得られますが、しきい値を指定してバイナリ変数にコーディングできるように確率が必要です。

なぜこれが起こるのか分かりません。キャレットパッケージを使用せずに同じことを行いましたが、次のように機能しました。

私はこれを見て時間を費やしていますが、何が起こっているのかわからず、私には非常に奇妙に思えます. 式を使用せず、X と Y を使用したことを意味する train 関数の多くのバリエーションを試しました。チェックには method = 'bayesglm' も使用しましたが、id で同じエラーが発生しました。誰かが私を助けてくれることを願っています。必要なものを取得するための train 関数があるため、使用する必要はありませんが、キャレット パッケージは多くのツールを備えた優れたパッケージであり、これを理解できるようにしたいと考えています。

0 投票する
2 に答える
1177 参照

r - Rキャレットは、トレーニング後にdata.tableの列の名前を変更します

何らかの理由で、パッケージ内のtrain関数がcaret応答変数の名前を変更します。おもちゃの例を次に示します。

トレーニング後に名前を変更できることはわかっていますが、トレーニングするモデルが多数ある場合は繰り返しになります。これは正しい動作ですか?

編集: sessionInfo を追加