0
LinearRegressionWithSGDを使用してラベル値を予測する単純な線形モデルを作成しようとしています。 私は機能とラベルを取得するためにデータセットを変換し、再び私はエラー:代替値で "予測する"オーバーロードされた値/ Doubleでパラメータが使用されない
val numIterations = 100
val stepSize = 0.00000001
//fitting the model with converted Labeled points Train Data
val model = LinearRegressionWithSGD.train(realout, numIterations, stepSize)
17/08/09 12:16:15 WARN LinearRegressionWithSGD: The input data is not directly c ached, which may hurt performance if its parent RDDs are also uncached. 17/08/09 12:16:17 WARN BLAS: Failed to load implementation from: com.github.fomm il.netlib.NativeSystemBLAS 17/08/09 12:16:17 WARN BLAS: Failed to load implementation from: com.github.fomm il.netlib.NativeRefBLAS 17/08/09 12:16:17 WARN LinearRegressionWithSGD: The input data was not directly cached, which may hurt performance if its parent RDDs are also uncached. model: org.apache.spark.mllib.regression.LinearRegressionModel = org.apache.spar k.mllib.regression.LinearRegressionModel: intercept = 0.0, numFeatures = 1
それは私にいくつかの警告を与えるモデルを適合してい回帰今
val train = dftrain.withColumn("label", dftrain("col2")).select("features", "label")
val test = dftest.withColumn("label", dftest("col2")).select("features", "label")
val realout = train.rdd.map(row => LabeledPoint(row.getAs[Double]("label"),DenseVector.fromML(row.getAs[org.apache.spark.ml.linalg.DenseVector]("features"))))
val realout1 = test.rdd.map(row => LabeledPoint(row.getAs[Double]("label"),DenseVector.fromML(row.getAs[org.apache.spark.ml.linalg.DenseVector]("features"))))
を行うためにラベル付きのポイントに変換し、また、Intercept
を0.0としていますが、私はそれが正しいとは感じません。しかし、私はモデルを予測すると、それは私のエラーをスローします。また、私はhereからこれを行う場合
val prediction = model.predict(realout1)
<console>:98: error: overloaded method value predict with alternatives:
(testData: org.apache.spark.api.java.JavaRDD[org.apache.spark.mllib.linalg.Vec
tor])org.apache.spark.api.java.JavaRDD[Double] <and>
(testData: org.apache.spark.mllib.linalg.Vector)Double <and>
(testData: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector])org.
apache.spark.rdd.RDD[Double]
cannot be applied to (org.apache.spark.rdd.RDD[org.apache.spark.mllib.regressio
n.LabeledPoint])
val prediction = model.predict(realout1)
^
、
// Evaluate model on training examples and compute training error
val valuesAndPreds = realout.map { point => val prediction = model.predict(point.features) (point.label, prediction) }
<console>:90: error: Double does not take parameters
val valuesAndPreds = realout.map { point => val prediction = model.predic
t(point.features) (point.label, prediction) }
^
私は手順が正しいと信じています。しかし、私は、それはオーバーロードされたメソッドの値を見せて、なぜ何のアイデアは、代替かダブルパラメータ