【发布时间】:2018-05-04 04:41:56
【问题描述】:
我想知道使用 spark 函数ml_logistic_regression 的逻辑回归模型的每个系数的重要性。代码如下:
# data in R
library(MASS)
data(birthwt)
str(birthwt)
detach("package:MASS", unload=TRUE)
# Connection to Spark
library(sparklyr)
library(dplyr)
sc = spark_connect(master = "local")
# copy the data to Spark
birth_sc = copy_to(sc, birthwt, "birth_sc", overwrite = TRUE)
# Model
# create dummy variables for race (race_1, race_2, race_3)
birth_sc = ml_create_dummy_variables(birth_sc, "race")
model = ml_logistic_regression(birth_sc, low ~ lwt + race_2 + race_3)
我得到的模型如下:
> model
Call: low ~ lwt + race_2 + race_3
Coefficients:
(Intercept) lwt race_2 race_3
0.80575496 -0.01522311 1.08106617 0.48060322
在 R 模型中,您使用 summary,它为您提供了系数的重要性,但如果我将它与此模型一起使用,我会得到相同的结果:
> summary(model)
Call: ml_logistic_regression(birth_sc, low ~ lwt + race_2 + race_3)
Coefficients:
(Intercept) lwt race_2 race_3
0.80575496 -0.01522311 1.08106617 0.48060322
如何获得模型中每个变量的意义?
【问题讨论】:
-
查看模型对象的结构 (
str(model)),它看起来不像ml_logistic_regression返回与显着性水平、置信区间或方差-协方差矩阵相关的任何信息,所以我'我不确定这是否可能。另一方面,在机器学习中,您通常会尝试最大化预测性能,统计显着性通常并不重要。相反,使用交叉验证根据一些性能标准(如 ROC 曲线下的面积)选择最佳模型。 -
@eipi10 我尝试在 Spark 中手动计算方差-协方差矩阵,但我到了需要计算矩阵逆矩阵的地步,但我不知道如何计算它火花
-
solve(m)将返回矩阵的逆矩阵m。
标签: r apache-spark logistic-regression sparklyr