このようにランダムフォレスト(スパーク1.6.0)訓練スパークランダムフォレスト分類子numClasses
val numClasses = 4 // 0-2
val categoricalFeaturesInfo = Map[Int, Int]()
val numTrees = 9
val featureSubsetStrategy = "auto" // Let the algorithm choose.
val impurity = "gini"
val maxDepth = 6
val maxBins = 32
val model = RandomForest.trainClassifier(trainRDD, numClasses,
categoricalFeaturesInfo, numTrees,
featureSubsetStrategy, impurity,
maxDepth, maxBins)
入力ラベル:
labels = labeledRDD.map(lambda lp: lp.label).distinct().collect()
for label in sorted(labels):
print label
0.0
1.0
2.0
しかし、出力のみ2つのクラスだけ含まれています
metrics = MulticlassMetrics(labelsAndPredictions)
df_confusion = metrics.confusionMatrix()
display_cm(df_confusion)
を
出力:
83017.0 81.0 0.0
8703.0 2609.0 0.0
10232.0 255.0 0.0
私はpysparkで同じモデルをロードし、他のデータ(上記の部分)に対してそれを実行したときからの出力に
DenseMatrix([[ 1.75280000e+04, 3.26000000e+02],
[ 3.00000000e+00, 1.27400000e+03]])
これはPyScalaのですか? – eliasah
これを再現することはできません。少なくとも、混乱行列には何も問題はありません。あなたは実際に3つのクラスを持っています:) – zero323
@ zero323私はそれを保存し、それを読み込んでいます。それかもしれない。あなたの複製を投稿することができます – oluies