调整Spark DataFrame API逻辑回归模型的截距



我正在Spark中训练逻辑回归。但是,由于我的训练数据的特殊性,我需要在之后手动调整模型,即改变截距。

使用RDD api很容易做到——只需实例化一个新的LogisticRegressionModel:

val intercept = model.intercept() + adjustment
val model = new LogisticRegressionModel(model.weights(), intercept)

然而,DataFrame API中的LogisticRegressionModel构造函数是私有的。我如何手动调整模型?

今天下午我遇到了同样的问题,我处于测试模式,试图使它发生,所以我不在乎它有多脏:从你的模型中获得系数,获得截距,调整它,然后用他们在Spark中使用的代码手工做你的预测(寻找BLAS.dot, marginscore)。在某些情况下他们使用BLAS.dot, BLAS是私有的火花。再次做同样的事情,检索dot的代码,处理SparseVector/DenseVector,您就可以完成它了。很脏,但很管用

最新更新