0
我正在訓練Spark中的邏輯迴歸。但是,由於我的訓練數據中有細節,我需要以後手動調整模型,即更改截距。調整Spark DataFrame API邏輯迴歸模型的攔截
這是很容易做到與RDD API - 只是實例化一個新的LogisticRegressionModel:
val intercept = model.intercept() + adjustment
val model = new LogisticRegressionModel(model.weights(), intercept)
然而,數據幀API中的LogisticRegressionModel構造製成私人。我怎樣才能對模型進行手動調整?
或者您可以分叉Spark並添加您自己的可以移動截距的參數的複製功能。這也起作用。可能更漂亮。 –
顯然,它可以通過反射更簡單(仍然很髒): 'val modelClass = classOf [LogisticRegressionModel]; val const = modelClass.getDeclaredConstructor(classOf [String],classOf [Vector],classOf [Double]); val intercept = trained.intercept - adjustment; val newModel = const.newInstance(trained.uid,trained.coefficients,intercept:java.lang.Double))' –