La regresión logística de la tubería Spark ML produce predicciones mucho peores que R GLM

Utilicé ML PipeLine para ejecutar modelos de regresión logística, pero por algunas razones obtuve peores resultados que R. Hice algunas investigaciones y la única publicación que encontré que está relacionada con este problema esesta . Parece queSpark Logistic Regression devuelve modelos que minimizan la función de pérdida mientras que la función R glm usa la máxima probabilidad. El modelo Spark solo obtuvo el 71.3% de los registros correctamente, mientras que R puede predecir el 95.55% de los casos correctamente. Me preguntaba si hice algo mal en la configuración y si hay una manera de mejorar la predicción. El siguiente es mi código Spark y código R-

Código de chispa

partial model_input  
label,AGE,GENDER,Q1,Q2,Q3,Q4,Q5,DET_AGE_SQ  
1.0,39,0,0,1,0,0,1,31.55709342560551  
1.0,54,0,0,0,0,0,0,83.38062283737028  
0.0,51,0,1,1,1,0,0,35.61591695501733



def trainModel(df: DataFrame): PipelineModel = {  
  val lr  = new LogisticRegression().setMaxIter(100000).setTol(0.0000000000000001)  
  val pipeline = new Pipeline().setStages(Array(lr))  
  pipeline.fit(df)  
}

val meta =  NominalAttribute.defaultAttr.withName("label").withValues(Array("a", "b")).toMetadata

val assembler = new VectorAssembler().
  setInputCols(Array("AGE","GENDER","DET_AGE_SQ",
 "QA1","QA2","QA3","QA4","QA5")).
  setOutputCol("features")

val model = trainModel(model_input)
val pred= model.transform(model_input)  
pred.filter("label!=prediction").count

Código R

lr <- model_input %>% glm(data=., formula=label~ AGE+GENDER+Q1+Q2+Q3+Q4+Q5+DET_AGE_SQ,
          family=binomial)
pred <- data.frame(y=model_input$label,p=fitted(lr))
table(pred $y, pred $p>0.5)

No dude en avisarme si necesita otra información. ¡Gracias!

Editar 18/09/2015 He intentado aumentar la iteración máxima y disminuir drásticamente la tolerancia. Lamentablemente, no mejoró la predicción. Parece que el modelo convergió a un mínimo local en lugar del mínimo global.

Respuestas a la pregunta(1)

Su respuesta a la pregunta