PAR*_*DER 6 standard-error logistic-regression pyspark apache-spark-mllib
我试图在样本数据上构建Logistic回归模型.
我们可以得到的模型输出是用于构建模型的特征的权重.
我找不到Spark API用于估计的标准误差,Wald-Chi Square统计量,p值等.
我将以下代码粘贴为例子
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)
Run Code Online (Sandbox Code Playgroud)
模型重量输出是
[-0.03335987643613915,0.025215092730373874,0.22617842810253946,0.29415985532104943,-0.0025559467210279694,4.5242237280512646E-4]
Run Code Online (Sandbox Code Playgroud)
只是一系列的重量.
虽然我能够计算精度,召回,准确度,灵敏度和其他模型诊断.
有没有办法可以计算出估计的标准误差,Wald-Chi Square统计量,Spark中的p值?
我担心,因为R或SAS中有标准输出.
这是否必须对我们在Spark中使用的优化方法做些什么?
这里我们使用L-BFGS或SGD.
可能是我不了解评估方法.
任何建议将受到高度赞赏.
小智 2
以下方法将提供卡方检验的详细信息 -
统计.chiSqTest(数据)
输入数据
val obs: RDD[LabeledPoint] =
sc.parallelize(
Seq(
LabeledPoint(1.0, Vectors.dense(1.0, 0.0, 3.0)),
LabeledPoint(1.0, Vectors.dense(1.0, 2.0, 0.0)),
LabeledPoint(-1.0, Vectors.dense(-1.0, 0.0, -0.5)
)
)
)
val featureTestResults: Array[ChiSqTestResult] = Statistics.chiSqTest(obs)
Run Code Online (Sandbox Code Playgroud)
返回一个数组,其中包含针对标签的每个特征的 ChiSquaredTestResult。
检验摘要,包括 p 值、自由度、检验统计量、使用的方法和原假设。
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |