SparkとRのロジスティック回帰が同じデータに対して異なるモデルを返すのはなぜですか?


7

R(glm)とSpark(LogisticRegressionWithLBFGS)のロジスティック回帰モデルを390 obsのデータセットで比較しました。14変数の。

結果は切片と重みで完全に異なります。これを説明するには?

以下はSpark(LogisticRegressionWithLBFGS)の結果です。

model.intercept  : 
 1.119830027739959
model.weights :
 GEST    0.30798496002530473
 DILATE  0.28121771009716895
 EFFACE  0.01780105068588628
 CONSIS -0.22782058111362183
 CONTR  -0.8094592237248102
 MEMBRAN-1.788173534959893
 AGE    -0.05285751197750732
 STRAT  -1.6650305527536942
 GRAVID  0.38324952943210994
 PARIT  -0.9463956993328745
 DIAB   0.18151162744507293
 TRANSF -0.7413500749909346
 GEMEL  1.5953124037323745

Rの結果は次のとおりです。

             Estimate Std. Error z value Pr(>|z|)   
(Intercept)  3.0682091  3.3944407   0.904 0.366052    
GEST         0.0086545  0.1494487   0.058 0.953821    
DILATE       0.4898586  0.2049361   2.390 0.016835 *  
EFFACE       0.0131834  0.0059331   2.222 0.026283 *  
CONSIS       0.1598426  0.2332670   0.685 0.493196    
CONTR        0.0008504  0.5788959   0.001 0.998828    
MEMBRAN     -1.5497870  0.4215416  -3.676 0.000236 ***   
AGE         -0.0420145  0.0326184  -1.288 0.197725    
STRAT       -0.3781365  0.5860476  -0.645 0.518777    
GRAVID       0.1866430  0.1522925   1.226 0.220366    
PARIT       -0.6493312  0.2357530  -2.754 0.005882 **  
DIAB         0.0335458  0.2163165   0.155 0.876760    
TRANSF      -0.6239330  0.3396592  -1.837 0.066219 .  
GEMEL        2.2767331  1.0995245   2.071 0.038391 *  
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

1
制限付きメモリBFGSを「単純なロジスティック回帰」とは呼びません。例外として、現代のライブラリーは複雑な手法を非常に利用しやすくするという意味で:)
nealmcb

あなたが正しいです。Rで限定メモリBFGSを実装する方法を知っていますか?
SparkUser 2015年

また、損失関数csie.ntu.edu.tw/~cjlin/papers/spark-liblinear/…(Sec-IIIA)@SparkUserと関係があるかどうか疑わしいです。デフォルトなしでLogisticRegressionWithLBFGSを実行してから、係数をデフォルトのR-glmと比較します。
user45409

回答:


6

LogisticRegressionWithLBFGSドキュメントを一目見ると、デフォルトで機能スケーリングとL2正規化が使用されていることがわかります。R glmはモデルの最尤推定値をLogisticRegressionWithLBFGS返し、Spark は正規化されたモデル推定値を返していると思います。Sparkモデルの推定モデルの重みは、Rモデルの重みよりもすべて小さいことに注意してください。

glmRで機能スケーリングが実装されているかどうかはわかりませんが、これは別のモデル値にも影響します。


Rで機能スケーリングを使用できるかどうかわかりません。.見つかりません。2つのモデルを比較するためにRを使用してLBFGSでロジスティック回帰を実行する方法を知っていますか?
SparkUser 2015年

ここでは、機能のマニュアルを確認glmnetからglmnet、パッケージと外観やパラメータstandardize http://cran.r-project.org/web/packages/glmnet/glmnet.pdf -もpossibleto使用正則があります
マルチンコジンスキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.