BinaryClassificationMetrics
(Mllib) girişleriyle ilgili bir karışıklık var. Apache Spark 1.6.0 uyarınca, tahmin edilen, olasılık (vektör) & rawPrediction (vektör) olan dönüştürülmüş DataFrame'den (RDD[(Double,Double)])
türünde predictedandlabel'i geçmemiz gerekir.Naive Bayes modeli için BinaryClassificationMetrics değerlendirmesinde tahmin edilen ve etiket sütunları nasıl verilir
Öngörülen ve etiket sütunlarından RDD [(Çift, Çift)] oluşturdum. NavieBayesModel üzerinde BinaryClassificationMetrics
değerlendirme gerçekleştirdikten sonra, ROC, PR vb. Alabiliyorum. Ancak değerler sınırlıdır, bundan elde edilen değeri kullanarak eğri çizemiyorum. Roc 4 değer içerir ve PR 3 değeri içerir.
import org.apache.spark.mllib.linalg.Vector
import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel}
val df = sqlContext.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt")
val predictions = new NaiveBayes().fit(df).transform(df)
val preds = predictions.select("probability", "label").rdd.map(row =>
(row.getAs[Vector](0)(0), row.getAs[Double](1)))
Ve değerlendirmek:
'ham olasılıklarını BinaryClassificationMetrics' ve sonra noktalarının sayısını ayarlamak için' BinaryClassificationMetrics' oluştururken kutularının sayısını ayarlayın. Spark tarafından üretilen bir modeli kullanırken (LogisticRegressionModel gibi), tüm spektrum değerlerini elde etmek için eşiği temizlemeniz gerekir. –
@Hawknight. Soruyu ** rawProbability ** yerine ** rawPrediction ** ile düzenledik. NavieBayesModel kullanmam gereken bir senaryo var, bu modelde geçersiz eşik işlevi kullanılamaz. Umarım bu yorumda bahsettiğim aynı sütuna işaret ettiğinizi umuyoruz. ** Olasılık ** –
@Hawknight NavieBayesModel'den açıkça eşik temizlemek için herhangi bir yol var mı? –