Используете Caret со SparkR?

Возможно, это несколько похоже на этот вопрос, это не похоже на SparkR кадры данных совместимы с пакетом Caret.

Когда я пытаюсь обучить свою модель, я получаю следующую ошибку:

    Error in as.data.frame.default(data) : 
  cannot coerce class "structure("SparkDataFrame", package = "SparkR")" to a data.frame

Есть ли способ обойти это? Ниже воспроизводимый пример с использованием радужной оболочки:

#load libraries
library(caret)
library(randomForest)
set.seed(42)

#point R session to Spark
Sys.setenv(SPARK_HOME = "your/spark/installation/here")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))

#load SparkR
library(SparkR)

#initialize Spark context
sc <- sparkR.init(master = "local",sparkEnvir = list(spark.driver.memory="2g"))

#initialize SQL context
sqlContext <- sparkRSQL.init(sc)

train2 <- createDataFrame(sqlContext, iris)

#train the model
model <- train(Species ~ Sepal_Length + Petal_Length,
               data = train2,
               method = "rf",
               trControl = trainControl(method = "cv", number = 5)

)

Опять же, как-то обойти это? Если нет, то какой самый простой путь к машинному обучению с помощью SparkR?


person skathan    schedule 24.04.2017    source источник
comment
это невозможно.   -  person mtoto    schedule 24.04.2017
comment
@mtoto Я думаю, что определенно обнаружил это, но какие есть альтернативы машинному обучению с помощью SparkR? Есть ли такие?   -  person skathan    schedule 24.04.2017
comment
да: spark.apache.org/docs/latest/sparkr.html# машинное обучение   -  person mtoto    schedule 24.04.2017


Ответы (1)


вы не можете использовать методы обучения caret на SparkDataFrames, как вы поняли. Однако вы можете использовать алгоритмы Spark-ml, например, для обучения классификатора случайного леса, используя SparkR::spark.randomForest:

#train the model
model <- spark.randomForest(train2,
                            type="classification",  
                            Species ~ Sepal_Length + Petal_Length,
                            maxDepth = 5,
                            numTrees = 100)

summary(model)
person Janna Maas    schedule 26.04.2017