Ich trainierte DecisionTreeClassifier
Modell eine Pipeline wie diese verwenden:Get toDebugString von DecisionTreeClassifier in PySpark ML
from pyspark.ml import Pipeline
from pyspark.ml.feature import VectorAssembler, StringIndexer
from pyspark.ml.classification import DecisionTreeClassifier
cl = DecisionTreeClassifier(labelCol='target_idx', featuresCol='features')
pipe = Pipeline(stages=[target_index, assembler, cl])
model = pipe.fit(df_train)
# Prediction and model evaluation
predictions = model.transform(df_test)
wo die Stufen Instanzen StringIndexer
und VectorAssembler
sind. Ich kann nun die Genauigkeit des Modells beispielsweise mit
mc_evaluator = MulticlassClassificationEvaluator(
labelCol="target_idx", predictionCol="prediction", metricName="precision" )
accuracy = mc_evaluator.evaluate(predictions)
print("Test Error = {}".format(1.0 - accuracy))
bewerten. Großartig. Jetzt muss ich die Baummodellstruktur überprüfen. Die Dokumente verweisen mich auf ein Attribut namens toDebugString
, aber das ML DecisionTreeClassifier
hat dieses nicht - es scheint ein Attribut nur für den MLLib DecisionTree
Klassifikator zu sein. Wie kann ich die Baumstruktur aus dem Modell innerhalb der Pipeline von der ML-Version abrufen und grafisch darstellen?
Ausgabe offen: https://issues.apache.org/jira/browse/SPARK-15092 – Ivan