我正在使用PySpark來生成和驗證預測。我有一個正確的列的數據框,我將它傳遞給MulticlassMetrics以獲得混淆矩陣。但是當我檢查混淆矩陣時,它缺少大部分值(數據幀有超過120.000行,混淆矩陣只有8個值)。爲什麼它失去了其餘的?混淆矩陣丟失實例
編輯:爲了澄清,我不希望混淆矩陣與數據集具有相同的大小,我的數據中有兩個類,我期望矩陣實例的總和與我的數據中的行數。問題是,我在我的數據約120.000行和混淆矩陣是一樣的東西
[[ 0, 3 ], [ 1, 0 ]]
代碼:我不能在這裏張貼整個代碼,但在這裏是重要的
training_data = load_training_data() # Spark DataFrame
training_data, testing_data = training_data.randomSplit([0.7, 0.3])
asm = VectorAssembler(inputCols=selected_columns, outputCol='features')
final_training_data = asm.transform(training_data)
rf = RandomForestClassifier(labelCol="label", impurity="entropy")
rfModel = rf.fit(final_training_data)
test_predictions = rfModel.transform(testing_data)
predictionAndLabels = test_predictions.select(['prediction', 'label'])
tp = predictionAndLabels.rdd.map(tuple)
metrics = MulticlassMetrics(tp)
部分
我不知道我關注。您是否期望您的混淆矩陣與您的數據集大小相同? – Grr
僅供參考,混淆矩陣將是一個矩形矩陣,其維數等於數據中類的數量。所以,如果你有3個班,矩陣將是3x3 – Grr
我編輯了這個問題,以澄清我的疑問 –