![](/img/trans.png)
[英]How to obtain coefficient values from Spark-MLlib Linear Regression model (Scala)?
[英]Create Linear Regression Model from an array of coefficients in Spark
我有一個已經計算出的系數數組,我想在Spark 2.0.1中用它創建一個線性回歸模型,以便可以將其用於預測。
用系數數組創建LinearRegressionModel類的最簡單方法是什么?
您的線性模型只是一個線性方程,例如,如果您的系數為
val coefficients=Array[Double](c0,c1,c2,...,cn)
其中第一個值是截距系數(假設您有截距),那么您的線性方程為
y = c0 + c1*x1 + c2*x2 + ... + c_n*xn
所以你可以定義
class LinearModel(coefficients:Array[Double]){
def predict(newObservation:Array[Double]):Double={
val intercept=coefficients(0)
val weights=coefficients.drop(1)
val multiplication=newObservation.zip(weights).map{case (x,y)=>x*y}.sum
val prediction=intercept+multiplication
prediction
}
}
例如,如果您的系數是
val coefficients=Array(2.0,2.1,2.2)
然后定義一個新的線性模型
val model = new LinearModel(coefficients)
因此,如果您有新發現
newObservation=Array(1.0,1.0)
預測是
model.predict(newObservation)
輸出是
scala> model.predict(newObservation)
res16: Double = 6.300000000000001
如果您想預測一堆觀察結果而不是一個,就可以改編前面的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.