檢查更新的問題線性迴歸星火MLlib只返回單調的預測
摘要的底部:我有一個不線性表現的數據集。我試圖使用Spark的MLlib(v1.5.2)來擬合一個更像多項式函數的模型,但我總是得到一個線性模型。我不知道是否可以使用線性迴歸來獲得非線性模型。
[TL; DR]我想適合代表足夠好以下數據模型:(每教程很像)
我的代碼很簡單
object LinearRegressionTest {
def main(args: Array[String]): Unit = {
val sc = new SparkContext("local[2]", "Linear Regression")
val data = sc.textFile("data2.csv")
val parsedData = data.map { line =>
val parts = line.split(',')
LabeledPoint(parts(1).toDouble, Vectors.dense(parts(2).toDouble))
}.cache()
val numIterations = 1000
val stepSize = 0.001
val model = LinearRegressionWithSGD.train(parsedData, numIterations, stepSize)
sc.stop
}
}
獲得的結果是在正確的範圍內,但它們始終處於單調遞增的行中。我試圖把頭圍繞在它周圍,但我無法弄清楚爲什麼更好的曲線不適合。
任何提示?
謝謝大家
更新 問題是由火花的版本引起的火花毫升,我們使用的庫。出於某種原因,即使我提供了更多功能(輸入數據的平方或立方版本),版本1.5.2也不適合更好的曲線。在升級到版本2.0.0並從主API(不是RDD API)的棄用LinearRegressionWithSGD
切換到LinearRegression
後,該算法表現得如預期。採用這種新方法,模型符合正確的曲線。
感謝@ zero323,雖然我們發現了問題的根源,你在正確的方向指向我們。出於這個原因,我打算將您的答案標記爲正確答案。我會在問題的更新中發佈真正的問題。 – omrsin