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

       ^

私は手順が正しいと信じています。しかし、私は、それはオーバーロードされたメソッドの値を見せて、なぜ何のアイデアは、代替ダブルパラメータ

答えて

0
val prediction = model.predict(realout1.map(_.features)); 

をとらないこの1つが正常に動作して予測していません。しかし、私はこのどれが正しいかわからない。どんな提案も感謝しています。ありがとうございました。

関連する問題