你知道如何用r来验证spark.ml.regression.linearregressionmodel计算出的系数吗?我试过r中的lm()函数,但是r和spark中的两组系数是完全不同的。也许我应该在r中使用其他函数?
// transform dataframe
val spark = SparkSession.builder().master("local").getOrCreate()
import spark.implicits._
val df = dataRDD.map{case(fdate, adHashValue, effectDummyArray, timeDummyArray, label) =>
val features = Vectors.dense(effectDummyArray ++ timeDummyArray)
(label, features)
}.toDF("label", "features")
// set up model
val lr = new LinearRegression().setRegParam(0.3)
val lr_model = lr.fit(df)
val summary = lr_model.summary
val PValues = summary.pValues
val Variance = summary.coefficientStandardErrors.map{x => x * x}
val coefficients: Array[Double] = lr_model.coefficients.asInstanceOf[DenseVector].values
1条答案
按热度按时间oalqel3c1#
可以。将regparam设置为接近0。可以做得很好。
setRegParam(0.00001).setSolver("normal")