1.逻辑回归对比
spark.ml.LogisticRegression
setMaxIter 设置最大迭代次数(默认100),具体迭代次数可能在不足最大迭代次数停止
setTol设置容错(默认1e-6),每次迭代会计算一个误差,误差值随着迭代次数增加而减小,当误差小于设置容错,则停止迭代
setRegParam设置正则化项系数(默认0),正则化组要用于防止过拟合现象,如果数据较小,特征维数又多,容易 出现过拟合,考虑增大正则化系数
setElasticNetParam正则化范式比(默认0),正则化有2种方式:L1(lasso)和L2(Ridge),L1用于特征的稀疏化,L2用于防止过拟合.0表示用L2正则化,1表示用L1正则化
setLabelCol设置标签列
setFeaturesCol设置特征列
setPredictionCol设置预测列
setThreshold设置二分类阈值
fitIntercept:是否设置截距项
sklearn.linear_model.LogisticRegression
penalty-默认l2正则化
tol-默认为1e-4
C-Inverse of regularization strength,正则化强度的倒数,可以理解为正则化系数的倒数,如下式所示
fit_intercept:是否要截距项,默认True
intercept_scaling-默认是1,当solver为'liblinear'并self.fit_intercept为True是有用,此时输入的x会变成[x,self.intercept_scaling],总之会对原始的截距项做些转换
spark.ml.classification.LogisiticRegression().setMaxIter(100).setRegParam(0.0)
上面sklearn的lr和spark的lr,跑出的结果spark的auc更高,当把2个的截距项都设为False时,2个逻辑回归计算的系数一样,auc也一样。