Spark MLlib数据挖掘7–评估矩阵
Spark MLlib附带了许多机器学习算法,可用于学习和预测数据。当这些算法应用于构建机器学习模型时,需要根据某些标准评估模型的性能。而为了对模型的性能进行评价,Spark MLlib还提供了一套度量标准,用于评估机器学习模型的性能,如分类模型评估和回归模型评估。
分类模型评估
分类算法有很多,但分类模型的评估都具有相似的原理。在监督分类问题中,存在每个数据点的真实输出和模型生成的预测输出。因此,每个数据点的结果可以分配到以下四个类别之一:
真阳性(TP) - 标签为正,预测也为正。
真阴性(TN) - 标签为阴性,预测也为阴性。
假阳性(FP) - 标签为阴性但预测为阳性。
假阴性(FN) - 标签为正,但预测为负。
二分类问题模型评估参数回顾:
二进制分类器用于将给定数据集的元素分成两个可能的组中的一个(例如欺诈或非欺诈),是多类分类的特殊情况。大多数二进制分类度量可以推广到多类分类度量。评估参数如下:
Spark MLlib中二分类问题模型评估样例代码如下:
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS
import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
val metrics = new BinaryClassificationMetrics(predictionAndLabels)
val precision = metrics.precisionByThreshold
precision.foreach {
case (t, p) => println(s“Threshold: $t, Precision: $p”) } //准确率
val recall = metrics.recallByThreshold
recall.foreach {
case (t