我试图在样本数据上建立逻辑回归模型。
我们可以获得的模型输出是用于构建模型的特征的权重。
我找不到用于估计标准误差、Wald-Chi Square 统计量、p 值等的 Spark API。
我在下面粘贴我的代码作为示例
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS
import org.apache.spark.mllib.evaluation.{BinaryClassificationMetrics, MulticlassMetrics}
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.tree.RandomForest
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
val sc = new SparkContext(new SparkConf().setAppName("SparkTest").setMaster("local[*]"))
val sqlContext = new org.apache.spark.sql.SQLContext(sc);
val data: RDD[String] = sc.textFile("C:/Users/user/Documents/spark-1.5.1-bin-hadoop2.4/data/mllib/credit_approval_2_attr.csv")
val parsedData = data.map { line =>
val parts = line.split(',').map(_.toDouble)
LabeledPoint(parts(0), Vectors.dense(parts.tail))
}
//Splitting the data
val splits: Array[RDD[LabeledPoint]] = parsedData.randomSplit(Array(0.7, 0.3), seed = 11L)
val training: RDD[LabeledPoint] = splits(0).cache()
val test: RDD[LabeledPoint] = splits(1)
// Run training algorithm to build the model
val model = new LogisticRegressionWithLBFGS()
.setNumClasses(2)
.run(training)
// Clear the prediction threshold so the model will return probabilities
model.clearThreshold
print(model.weights)
模型权重输出为
[-0.03335987643613915,0.025215092730373874,0.22617842810253946,0.29415985532104943,-0.0025559467210279694,4.5242237280512646E-4]
只是一组权重。
虽然我能够计算 Precision、Recall、Accuracy、Sensitivity 和其他模型诊断。
有没有办法计算估计的标准误差、Wald-Chi Square 统计量、Spark 中的 p 值?
我很担心,因为 R 或 SAS 中有标准输出。
这是否与我们在 Spark 中使用的优化方法有关?
这里我们使用 L-BFGS 或 SGD。
可能是我不知道评估方法。
任何建议将不胜感激。