2016-02-10 5 views
1

Я пытаюсь использовать glm на SparkR.SparkR Glm модель

Это пример из официальной документации Спарк

df <- createDataFrame(sqlContext, iris) 

# Fit a gaussian GLM model over the dataset. 
model <- glm(Sepal_Length ~ Sepal_Width + Species, data = df, family = "gaussian") 

# Model summary are returned in a similar format to R's native glm(). 
summary(model) 
##$devianceResiduals 
## Min  Max  
## -1.307112 1.412532 
## 
##$coefficients 
##     Estimate Std. Error t value Pr(>|t|)  
##(Intercept)  2.251393 0.3697543 6.08889 9.568102e-09 
##Sepal_Width  0.8035609 0.106339 7.556598 4.187317e-12 
##Species_versicolor 1.458743 0.1121079 13.01195 0   
##Species_virginica 1.946817 0.100015 19.46525 0   

# Make predictions based on the model. 
predictions <- predict(model, newData = df) 
head(select(predictions, "Sepal_Length", "prediction")) 
## Sepal_Length prediction 
##1   5.1 5.063856 
##2   4.9 4.662076 
##3   4.7 4.822788 
##4   4.6 4.742432 
##5   5.0 5.144212 
##6   5.4 5.385281 

Когда я резюме на модели, которую я получил это:

summary(model) 
     Length   Class   Mode 
      1 PipelineModel   S4 
model 

An object of class "PipelineModel" 
Slot "model": 
Java ref type org.apache.spark.ml.PipelineModel id 188 

Что это значит? как я могу увидеть эти результаты из резюме, которые объясняются в примере?

Во-вторых, Я попробовал другой пример из databricks в другом наборе данных.

training<-createDataFrame(sqlContext,training) 

#|-- LINESET: string (nullable = true) 
#|-- TIMEINTERVAL: integer (nullable = true) 
#|-- SmsIn: double (nullable = true) 
#|-- SmsOut: double (nullable = true) 
#|-- CallIn: double (nullable = true) 
#|-- CallOut: double (nullable = true) 
#|-- Internet: double (nullable = true) 
#|-- ValueAmp: double (nullable = true) 

model <- glm(ValueAmp ~ TIMEINTERVAL + LINESET, 
      family = "gaussian", data =training) 
summary(model) 
preds<- predict(model,training) 

errors <- select(
    preds, preds$label, preds$prediction, preds$LINESET, 
    alias(preds$label - preds$prediction, "error")) 

display(sample(errors, F, .0001)) 

**Errore in (function (classes, fdef, mtable) : 
    unable to find an inherited method for function ‘display’ for signature ‘"DataFrame"**’ 

Как я могу устранить ошибки на дисплее? Почему на databricks это работает?

ответ

2

Как я могу увидеть эти результаты из резюме, которые объясняются в примере?

R-like summary был введен в Spark 1.6.0 (см. SPARK-11473). Похоже, вы используете более раннюю версию.

Как я могу устранить ошибки на дисплее? Почему на databricks это работает?

Это не работает локально, потому что display не является функцией Spark/SparkR, а является фирменной функцией платформы DataBricks.

 Смежные вопросы

  • Нет связанных вопросов^_^