【发布时间】:2019-09-22 02:06:57
【问题描述】:
我使用管道流构建了一个逻辑回归模型,该模型流向 databricks 列出的模型。 https://docs.databricks.com/spark/latest/mllib/binary-classification-mllib-pipelines.html
特征(数字和字符串特征)使用OneHotEncoderEstimator 编码,然后使用标准缩放器进行转换。
我想知道如何将从逻辑回归获得的权重(系数)映射到原始数据框中的特征名称。
也就是说,如何得到与模型得到的权重或系数相对应的特征
谢谢
我试图从 lrModel.schema 中提取特征,它给出了一个 structField 的列表,显示了这些特征
我试图从模式中提取特征并映射到权重但没有成功
from pyspark.ml.classification import LogisticRegression
# Create initial LogisticRegression model
lr = LogisticRegression(labelCol="label", featuresCol="scaledFeatures", maxIter=10)
# Train model with Training Data
lrModel = lr.fit(trainingData)
predictions = lrModel.transform(trainingData)
LRschema = predictions.schema
提取元组列表的预期结果(特征权重,特征名称)
【问题讨论】:
-
在转换后的数据框中使用 features 列的架构
-
非常感谢您的回答。它为我打开了一扇门,让我了解这个特征编号在向量中是如何工作的,我想我设法对它进行了排序。 pyspark 中是否有直接的方法可以将权重直接与命名的特征匹配,或者我必须通过模式对其进行排序
-
可能有属性访问器,但我没有使用它们,并且模式/元数据是 spark 存储这些信息的方式。您可以发布您的答案并标记它,以便其他人可以从中受益
标签: pyspark logistic-regression feature-extraction