問題タブ [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 - caret::train: トレーニング データ パラメータを指定します
テクスチャ、バルク密度、1 つまたは 2 つの保水などのより拡張された入力データに限定して使用して、van genuchten 保水パラメーター (theta_r、thera_s、alpha、n) の推定を予測するニューラル ネットワーク モデルを設計しています。R プロジェクトでのニューラル ネットワークの調査 RSNNS パッケージを見つけ、隠れユニットの数と学習率を調整して、複数の多層パーセプトロン (MLP) を作成およびトレーニングしました。これらのモデルの RMSE のトレーニングとテストで特徴付けられる一般的なパフォーマンスは、非常に貧弱でランダムです。実際、バイアスを回避し、ほぼ対数正規分布を説明するために、alpha および n パラメータの対数変換値を使用しましたが、これはあまり役に立ちません :( . nnet と caret パッケージを使用するように勧められましたが、コードを適応させるのに苦労しました。何が間違っているのかわかりません。
r - rpart モデルがキャレット内のゼロ分割に折りたたまれる
rpart を使用して、選択関数に oneSE オプションを使用して、caret パッケージ内で回帰ツリー分析を実行しています。そうするとき、多くの場合、分割がゼロのモデルになってしまいます。どのモデルよりも優れたモデルはないことを示唆しています。これは起こっているべきですか?
次に例を示します。
モデル出力は次のとおりです。
printcp の出力は次のとおりです。
ただし、モデルを直接 rpart で実行すると、上記のおそらくより倹約的なモデルにトリミングされた、より大きな剪定されていないツリーが表示されます。
キャレットは、RMSE が最小のモデルの 1 SD 以内にある最小のツリーを見つけようとしています。これは、Venebles と Ripley で提唱されている 1-SE アプローチに似ています。この場合、説明力がないにもかかわらず、分割のないモデルを選択するのは行き詰まっているようです。
これは正しいですか?これでよろしいですか?分割のないモデルの選択を禁止するルールが必要なようです。
r - キャレット内の KNN のカスタム パラメータ チューニング
k の複数の値と、トレーニングおよびテスト データの複数のサブセット (たとえば、K 分割クロス検証のすべてのフォールド、別名リサンプリング メトリック) の単一パス予測で計算できる ak 最近傍の実装があります。私の実装では、複数のコアを活用することもできます。
メソッドをキャレットパッケージで使用するようにインターフェースしたいと思います。train 関数のカスタム メソッドを簡単に作成できます。ただし、これにより、モデルの適合に対する複数の呼び出しが発生します (パラメーターとフォールドの組み合わせごとに 1 つ)。
私の知る限り、trainControl を使用する場合のチューニング戦略を示すことはできません。train のコード ソースには、「seq」モデル フィッティングに関する記述があります。
しかし、それをカスタム モデルで実際に使用する方法がわかりません。
これにアプローチする方法についての手がかりはありますか?
より一般的には、1 つのモデル フィットを使用して複数のパラメーターの予測誤差を推定できるモデル クラスがあるとします (たとえば、線形回帰 LOOCV トリックですが、複数のパラメーター値についても同様です)。それをキャレットでどのようにインターフェイスしますか?
キャレットで (空の) カスタム モデルを設定するコードの例を次に示します。
1 回の呼び出しですべての折り畳みとパラメーター値の予測を生成するように、トレーニング手順を制御したいと考えています。
r - カテゴリが欠落している R パッケージ キャレット混乱マトリックス
Rパッケージの関数を使用して、confusionMatrix
持っているデータの統計を計算しています。関数で使用されるテーブルを取得するために、予測と実際の値を関数に入れています。caret
table
confusionMatrix
ただし、複数の可能な結果 (例: A、B、C、D) があり、私の予測は常にすべての可能性を表すとは限りません (例: A、B、D のみ)。関数の結果の出力にtable
は、欠落している結果が含まれておらず、次のようになります。
関数はconfusionMatrix
不足している結果を処理できず、エラーが発生します。
関数を別の方法で使用しtable
て欠落している行をゼロで取得したり、関数を別の方法で使用して、欠落してconfusionMatrix
いる結果をゼロとして表示したりする方法はありますか?
注: テスト対象のデータをランダムに選択しているため、予測結果だけでなく、実際の結果でもカテゴリが表されない場合があります。これで解決策が変わるとは思いません。
r - メソッド gam を使用したキャレット パッケージからのトレインのエラー:
gam
で問題なく動作することがわかっているモデルがありますが、パッケージを使用して同じモデルをR
実行しようとすると、入力データ列がリストであるというエラーが返されます。誰もこれを理解していますか?train
caret
私が実行しているコードは次のとおりです。
最初の gam モデルは正常に動作しますが、train は次のエラーを返します。
数式で直接 model.frame.default を実行してもこのエラーが発生するため、問題は厳密に言えば列車ではありません。
mydata は次のようになります。
情報については、私の R インストールは次のとおりです。
助けてくれてありがとう!
r - Caret::train - 代入されない値
Caret の train() メソッドの preProcess 引数に「knnImpute」を渡して値を代入しようとしています。次の例に基づくと、値は代入されず、NA のままで無視されるように見えます。私は何を間違っていますか?
どんな助けでも大歓迎です。
UPDATE : preProcess 関数を直接使用して値を代入することができました。これが train 関数内で発生しないように見える理由はまだわかりません。
r - キャレット パッケージを使用して、controls = cforest_unbiased() で cforest を実行します。
caret パッケージを使用して公平な cforest を実行したいと思います。これは可能ですか?
エラーはError in as.character.default(<S4 object of class "ForestControl">) :
no method for coercing this S4 class to a vector
これは、cforest_control() をデータ フレームに強制できないためです。次を使用すると、関数は機能します。
ただし、ntree を変更したい場合、これは効果がありません。
これは、randomForest のようにエラーになりません。
r - RMSE によるキャレット バイナリ分類
二項分類問題でキャレットにRMSEを使用させる方法はありますか?
分類問題で使用しようとするmetric = "RMSE"
と、次のメッセージが表示されます。
これは理にかなっています。しかし、カスタム指標を定義する方法はありますか? たとえば、結果が0
またはの場合、はモデルによって予測される確率である1
としてエラーを定義できます。outcome - p
p
編集 ====================
これにいくつかのコンテキストを与え、この尺度を使用したい理由については、Michael J. Procopio によるAn Experimental Analysis of Classifier Ensembles for Learning Drifting Concepts Over Time in Autonomous Outdoor Robot Navigationまたはsoftclassval に関する論文の 2.7.1 を参照してください。
r - キャレットを使用した R での交差検証による SVM
私が持っているデータセットに対して 10 倍の交差検証を使用して Support Vector Machine 回帰を実行するために、キャレット パッケージを使用するように言われました。151 個の変数に対して応答変数をプロットしています。私は次のことをしました: -
私が得たもの
しかし、私は自分のフォールドを見て、それぞれのフォールドについて、予測値が実際の値にどれだけ近いかを知りたいと思っています。これ見てどうしようかな。
また、次のようにも述べています。
これが何を意味し、上の表の C は何を表しているのだろうと思っていました。
これは私のデータセットのスニペットです。151 の変数に対して RT 秒をポットしようとしています。
ありがとう
pca - Rキャレットパッケージでさらに分析するために主成分回帰を実行した後に成分を抽出する方法
共線性が高いことが判明した 151 個の変数を含むデータセットがあったため、次のようにして主成分回帰を実行しました。
これにより、次のことがわかります:- RMSE = 65.7 R-squared 0.443
後でこれらのコンポーネントを抽出して、さらに分析を適用する(つまり、SVMを実行する、またはランダムフォレスト)と言うことができるようにする方法を考えていました。