如何找到决策树分类的特征名称?

问题描述 投票:0回答:2

我正在尝试查找我的决策树的特征信息。更具体地说,如果 183 出现在我的树可视化中,我希望能够分辨出它是什么。我尝试过 dtModel.getInputCol() 但收到以下错误。

AttributeError: 'DecisionTreeClassificationModel' object has no attribute 'getInputCol'

这是我当前的代码:

from pyspark.ml.classification import DecisionTreeClassifier

# Create initial Decision Tree Model
dt = DecisionTreeClassifier(labelCol="label", featuresCol="features", maxDepth=3)

# Train model with Training Data
dtModel = dt.fit(trainingData)
display(dtModel)

如果您可以提供帮助或需要更多信息,请告诉我。谢谢你。

python apache-spark pyspark databricks apache-spark-mllib
2个回答
0
投票

请参阅取自 Spark doc 的示例(我尝试使名称与您的代码一致,尤其是

featuresCol="features"
)。

我假设你有一些像这样的代码(在你在问题中发布的代码之前):

featureIndexer = VectorIndexer(inputCol="inputFeatures", outputCol="features", maxCategories=4).fit(data)

在此步骤之后,您将

"features"
作为索引功能,然后将其提供给
DecisionTreeClassifier
(如您发布的代码):

# Train a DecisionTree model.
dt = DecisionTreeClassifier(labelCol="indexedLabel", featuresCol="features")

你要找的是上面的

inputFeatures
,这是被索引之前的原始特征。如果您想打印它,只需执行以下操作:

sc.parallelize(inputFeatures, 1).saveAsTextFile("absolute_path") 

0
投票

使用管道来调用其

.transform()
方法。

通过您的评论,您通过

trainingData
DecisionTreeClassifier()
做好了准备。嵌入
VectorAssembler()
中,通过其
Pipeline
方法获得您想要的好东西。
.transform()

使用 
from pyspark.ml.feature import VectorAssembler from pyspark.ml.classification import DecisionTreeClassifier from pyspark.ml import Pipeline vec_assembler = VectorAssembler(inputCols = ["c1", "c2"], outputCol = 'features') dtModel = DecisionTreeClassifier(labelCol = 'label', maxDepth = 3) pipeline = Pipeline(stages = [vec_assembler, dtModel]) pipeline_model = pipeline.fit(trainingData) trainingData_transformed = pipeline_model.transform(trainingData) # <-- Abracadabra!

查看其新列。此外,还有元数据。挖掘以获取列索引的字典。尝试一下

display(trainingData_transformed)

看到类似的东西

feature_map = trainingData_transformed.schema['features'].metadata['ml_attr']['attrs'] feature_map

如果您还在 
{'numeric': [{'idx': 0, 'name': 'c1'}, {'idx': 1, 'name': 'c2'}]}

中添加了

feature_map
,则
StringIndexer
字典将具有更多结构,但您可以从这里获取它。您的情况中的
pipeline
应具有类似于
feature_map
的条目。
    

© www.soinside.com 2019 - 2024. All rights reserved.