は、私は私のMLパイプラインの一部を拡大しようとしていると私はrstudio、火花の組み合わせを愛し、そしてそのsparklyrが開きH2O私が把握しようとしている(http://spark.rstudio.com/)sparklyrにダミー変数を作成するには?
ことの一つは、使用する方法ですsparklyrを使用して、データフレーム内の文字ベクトルからダミーの列を作成します。
私は以下を試しましたが、私はsparklyrがまだ実装していないいくつかの機能を混ぜているかもしれないと思います。
library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "local")
flights_tbl <- copy_to(sc, nycflights13::flights, "flights")
flights_tbl %>% bind_cols(as_data_frame(setNames(lapply(unique(flights_tbl$carrier),
function(x){as.integer(flights_tbl$carrier == x)}),
paste0('var2_', levels(flights_tbl$carrier)))))
この例では、各キャリアのインジケータ変数を作成したいと考えています。
私は本当にdplyrに精通していないので、どうやってこれを行うのか分かりません。
すでにsparklyr拡張を介して呼び出すことができる可能性がある、または単にdplyr関数を使用してこれを行う方法が存在する可能性があります。
更新
私は私が(誰のために有用場合)のデータフレームにpysparkでこれを行う方法があると思います。
データがどのように見えるのであれば:
>>> df.show(20)
+------------+----------+------+-----------+
| word|word_count|corpus|corpus_date|
+------------+----------+------+-----------+
| profession| 1|hamlet| 1600|
| augury| 1|hamlet| 1600|
|undertakings| 1|hamlet| 1600|
| surmise| 1|hamlet| 1600|
| religion| 1|hamlet| 1600|
| advanced| 1|hamlet| 1600|
| Wormwood| 1|hamlet| 1600|
| parchment| 1|hamlet| 1600|
| villany| 1|hamlet| 1600|
| digs| 1|hamlet| 1600|
| authorities| 1|hamlet| 1600|
| Popp'd| 1|hamlet| 1600|
| retrograde| 1|hamlet| 1600|
| tax'd| 1|hamlet| 1600|
| tomb| 1|hamlet| 1600|
| moral| 1|hamlet| 1600|
| foreknowing| 1|hamlet| 1600|
| dreadfully| 1|hamlet| 1600|
| parted| 1|hamlet| 1600|
| willow| 1|hamlet| 1600|
+------------+----------+------+-----------+
すると次は、[単語]フィールドにダミーを作るために働くようだ:(pyspark matrix with dummy variables)から取られた
categories = df.select("word").distinct().rdd.flatMap(lambda x: x).collect()
exprs = [F.when(F.col("word") == category, 1).otherwise(0).alias(category) for category in categories]
df_dummies = df.select("word", *exprs).limit(1000)
クールなおかげで、いつもこれについて疑問に思っています。どのような整数が元の文字列を参照しているかをどのように把握していますか?辞書の並べ替えの並べ替え? – andrewm4894
私はSparkが文字列を頻度で索引付けすると信じています。つまり、最も頻繁に表示される項目には索引0が付いています。いずれにしても、Sparkには[IndexToString](http://spark.apache.org/docs/latest/api/scala/) index.html#org.apache.spark.ml.feature.IndexToString)クラスを使用して、インデックス付けを元に戻すことができます。 – hdkrgr