pyspark - 是否有计划在 Spark 的 MLLIB 软件包中实施复杂的调查设计?
问题描述
我正在努力在 Pyspark 中实现逻辑回归,该回归目前是使用 SAS 编写的proc surveylogistic
。SAS 实施能够解释涉及集群/分层/样本权重的复杂调查设计。
至少有一些途径可以将模型导入 Python:例如,我能够使用Github 上这个研究项目中statsmodels
的包获得系数和标准误差的紧密匹配
但是,我的数据很大,所以我想通过 MLLIB 包利用 Spark 的分布式功能。例如,在 Spark 中运行 logit 的当前设置是:
import pyspark.ml.feature as ft
featuresCreator = ft.VectorAssembler(
inputCols = X_features_list,
outputCol = "features")
glm_binomial = GeneralizedLinearRegression(family="binomial", link="logit", maxIter=25, regParam = 0,
labelCol='df',
weightCol='wgt_panel')
from pyspark.ml import Pipeline
pipeline = Pipeline(stages=[featuresCreator, glm_binomial])
model = pipeline.fit(encoded_df_nonan)
“weightcol”仅适用于简单的样本权重,但我想知道是否有人知道在 Spark 中实施更复杂的加权方案的方法(请注意,上面将匹配 proc 逻辑,而不是 proc 调查逻辑)。为了比较,在surveylogistic中用于计算协方差矩阵的方法是here。
解决方案
推荐阅读
- c++ - std::istringstream:将负值读入无符号变量时出现错误处理困难
- r - 聚合字符变量
- android - 如何避免 asynctask 和 WorkManager 获取相同的数据库记录
- c# - wpf将用户控件属性绑定到usercontrol xaml中的viewmodel
- emacs - 如何使用 emacs lisp 从 Org ELPA 档案中安装 org-mode?
- unity3d - Oculus Rift 多人游戏
- python - 为什么 scipy.ndimage zoom 添加新频道?
- python-3.x - 使用 python3.x 的 firebase 数据库流式传输
- sql-server - 选择重复记录
- dns - 升级到 Ubuntu 16.04 后的 DNS 问题