Spark ML Трубопроводная логистическая регрессия дает гораздо худшие прогнозы, чем R GLM

Я использовал ML PipeLine для запуска моделей логистической регрессии, но по некоторым причинам я получил худшие результаты, чем R. Я провел некоторые исследования, и единственное сообщение, которое я нашел, которое связано с этой проблемой, этоэтот , Кажется, чтоSpark Logistic Regression возвращает модели, которые минимизируют функцию потерь в то время как функция R glm использует максимальное правдоподобие. Модель Spark получила только 71,3% записей, в то время как R может правильно прогнозировать 95,55% случаев. Мне было интересно, сделал ли я что-то не так на съемочной площадке и есть ли способ улучшить прогноз. Ниже приведен мой код Spark и код R

Искровой код

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

Код 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)

Не стесняйтесь, дайте мне знать, если вам нужна другая информация. Спасибо!

Изменить 18.09.2015 Я попытался увеличить максимальную итерацию и резко уменьшить допуск. К сожалению, это не улучшило прогноз. Кажется, модель сходится к локальному минимуму вместо глобального минимума.

Ответы на вопрос(1)

Ваш ответ на вопрос