問題タブ [r-recipes]
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 - recipes::step_dummy() を使うときに参照変数を指定する方法はありますか?
でダミー変数を作成するときに参照レベルを指定する方法はありますstep_dummy()
か? 参照列を設定して削除することでできるのですが、それ自体one_hot = TRUE
で指定できるのか疑問ですstep_dummy()
reprex パッケージ(v2.0.1)により 2021-11-19 に作成
r - purrr::map() を使用してリスト列を変更し、recipe() で作成された「レシピ」オブジェクトを格納する方法は?
dplyr::mutate()
と組み合わせて使用しpurrr::map()
て、 で「レシピ」オブジェクトを作成しようとしていますrecipes::recipe()
。
私がtibbleの文脈からそれを行うと、これはうまくいきます:
対照的に:
エラー:
mutate()
列に問題がありますiris_recipe
。
私iris_recipe = map(.x = subset_training, .f = ~recipe(x = .x, Species ~ .))
。
x オブジェクト「種」が見つかりません
map()
「レシピ」オブジェクトを含む新しいリスト列を作成するにはどうすればよいですか?
目的の出力
デモンストレーションのために、これを正確に取得したいと思います。
r - R `recipes`パッケージを使用したデータの前処理:数値列のモードで代入する方法(xgboostでモデルに適合させるため)?
分類の問題に使用したいのですがxgboost
、2 つの予測変数 (いくつかのうち) は、たまたまいくつかの欠損値を持つバイナリ列です。モデルを でフィッティングする前にxgboost
、各バイナリ列にモードを代入して、これらの欠損値を置き換えたいと思います。
tidymodels
私の問題は、この代入を「レシピ」の一部として実行したいということです。つまり、dplyr
/ tidyr
/などの典型的なデータ ラングリング手順を使用しないことです。レシピ内で代入を行うことで、「情報漏えいdata.table
」を防ぐことができます。
このrecipes
パッケージには、データの前処理用に設計された多くの関数が用意されていますが、数値バイナリ列でモードstep_*()
ごとに目的の代入を行う方法が見つかりませんでした。という関数がありますが、これは名義変数 (つまり、クラスまたは) のみを受け入れます。ただし、エンジンに渡すことができるように、バイナリ列を数値のままにする必要があります。step_impute_mode()
factor
character
xgboost
次のおもちゃの例を考えてみましょう。この参照ページから取得し、問題を反映するためにデータを少し変更しました。
おもちゃデータ作成
tidymodels ツールを使用してモデル仕様と前処理レシピを設定する
モデルに適合する
とが あたりの係数data_train$x1
になるため、フィッティングは失敗します。それが私の現在のキャッチです: 一方では、すべてのデータが数値でない限り、モデルを適合させることはできません。一方、データが factor/chr でない限り、モードで代入することはできません。data_train$x2
step_bin2factor(x1, x2)
xgboost
カスタム関数を作成する方法はありますが、少し複雑です。だから私は最初に手を差し伸べて、私が見逃しているかもしれない些細な解決策があるかどうかを確認したかった. およびバイナリ予測子に関する私の現在の状況はかなり主流のように思われ、車輪の再発明はしたくありません。step_*()
xgboost