在Pyspark的DecisionTree模型上使用randomsplit看不见的标签

时间:2016-06-15 18:14:11

标签: apache-spark pyspark

我正在使用PySpark中的数据框上的DecisionTrees创建模型:

(df_train, df_test) = df.randomSplit([0.7,0.3],seed=42)

cl = DecisionTreeClassifier(
labelCol='target', 
featuresCol='features',
maxDepth=5
)
pipe = Pipeline(
stages=[
     assembler,
     vector_indexer,
     cl
]
)
model = pipe.fit(df_train)

到目前为止一切顺利(assemblerVectorAssemblervector_indexerVectorIndexer maxCategories=10)。现在我正在尝试验证我的结果,

prediction = model.transform(df_test)

我得到了例外

Task 186 in stage 2015.0 failed 4 times, most recent failure: Lost task 186.3 in stage 2015.0 (TID 303449): org.apache.spark.SparkException: Unseen label: 007

我相信这是由randomSplit引起的,因为标签必须只在火车数据集上,而不在测试数据集中。有没有办法在火车上生成拆分并测试保证每个数据集都有所有标签?

0 个答案:

没有答案