[英]Logistic Regression in Spark for predictive analysis
我是Spark,大数据和Scala的初学者,我正在尝试使用示例数据集在Spark中构建预测模型。 我想使用pySpark,但是目前pyspark的mllib受到限制,因为它无法保存和加载。 我有一些问题:
我的数据为csv格式,如下所示:
Buy,Income,Is Female,Is Married,Has College,Is Professional,Is Retired,Unemployed,Residence Length,Dual Income,Minors,Own,House,White,English,Prev Child Mag,Prev Parent Mag 0,24000,1,0,1,1,0,0,26,0,0,0,1,0,0,0,0 1,75000,1,1,1,1,0,0,15,1,0,1,1,1,1,1,0
基本上,这些数据有助于根据所有给定参数预测用户是否购买了该杂志。
如何将这些数据转换为Spark易于解释的格式? (我在这里查看了有关将csv转换为RDD的其他相关答案,并进行了尝试,但这使我比以前更加困惑)
如果我仅对此数据运行mllib文档中提供的逻辑回归程序,其中部分数据用于培训,另一部分数据用于测试,如何在拥有新用户和程序的情况下将其转换为可演示的格式引导我了解所有参数,最后告诉我这个新人是否会购买该杂志的“是”或“否”。
import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.regression.LinearRegressionModel import org.apache.spark.mllib.regression.LinearRegressionWithSGD import org.apache.spark.mllib.linalg.Vectors // Load and parse the data val data = sc.textFile("data/mllib/ridge-data/lpsa.data") val parsedData = data.map { line => val parts = line.split(',') LabeledPoint(parts(0).toDouble, Vectors.dense(parts(1).split(' ').map(_.toDouble))) }.cache() // Building the model val numIterations = 100 val model = LinearRegressionWithSGD.train(parsedData, numIterations) // Evaluate model on training examples and compute training error val valuesAndPreds = parsedData.map { point => val prediction = model.predict(point.features) (point.label, prediction) } val MSE = valuesAndPreds.map{case(v, p) => math.pow((v - p), 2)}.mean() println("training Mean Squared Error = " + MSE) // Save and load model model.save(sc, "myModelPath") val sameModel = LinearRegressionModel.load(sc, "myModelPath")
基本上,如果我将此程序用作起点,该从哪里去?
有了该模型,您可以预测输入数据是否满足模型(1)或不满足(0)。 为此:
val yourInputData = //putYouDataHere
val res = model.predict(Vectors.dense(yourInputData))
println(res)
您传递给预测方法的向量的维数应与用于构造模型的数据的维数相同:“ data / mllib / ridge-data / lpsa.data”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.