Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 均方误差(MSE)返回一个巨大的数字_Scala_Apache Spark_Regression_Mse - Fatal编程技术网

Scala 均方误差(MSE)返回一个巨大的数字

Scala 均方误差(MSE)返回一个巨大的数字,scala,apache-spark,regression,mse,Scala,Apache Spark,Regression,Mse,我是Scala和Spark的新手。我使用此代码进行回归(基于此链接): 我正在使用的数据集可以在这里看到: 所以我的问题是:为什么MSE等于889717.74(这是一个巨大的数字) 编辑:正如评论员所建议的,我尝试了以下方法: 1) 我将步骤更改为默认值,MSE现在返回为NaN 2) 如果我尝试此构造函数: LinearRegressionWithSGD.train(parsedData,numIterations,stepSize,intercept=True)spark shell返回一个错

我是Scala和Spark的新手。我使用此代码进行回归(基于此链接):

我正在使用的数据集可以在这里看到:

所以我的问题是:为什么MSE等于889717.74(这是一个巨大的数字)

编辑:正如评论员所建议的,我尝试了以下方法:

1) 我将步骤更改为默认值,MSE现在返回为NaN

2) 如果我尝试此构造函数:
LinearRegressionWithSGD.train(parsedData,numIterations,stepSize,intercept=True)spark shell返回一个错误(错误:未找到:值True)

您通过了一个很小的步长,并将迭代次数限制在100。参数可以更改的最大值为
0.00000001*100
=
0.000001
。尝试使用默认步长,我想这会解决问题。

可能重复的
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("Year100")
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 stepSize = 0.00000001
val model = LinearRegressionWithSGD.train(parsedData, numIterations,stepSize )

// 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)