spark.ml.classification.LogisticRegression
Spark 全体を再構築せずに、scala コードにいくつかの変更を加えたいと考えています。spark-submit または pySpark の実行に jar ファイルを追加できるためです。変更されたコピーをコンパイルしてLogisticRegression.java
Spark のデフォルト メソッドをオーバーライドすること、または少なくとも新しいメソッドを作成することは可能ですか? ありがとう。
1602 次
1 に答える
2
を拡張する新しいクラスを作成しorg.apache.spark.ml.classification.LogisticRegression
、ソースコードを変更せずにそれぞれのメソッドをオーバーライドすると機能するはずです。
class CustomLogisticRegression
extends
LogisticRegression {
override def toString(): String = "This is overridden Logistic Regression Class"
}
CustomLogisticRegression
新しいクラスでロジスティック回帰を実行する
val data = sqlCtx.createDataFrame(MLUtils.loadLibSVMFile(sc, "/opt/spark/spark-1.5.2-bin-hadoop2.6/data/mllib/sample_libsvm_data.txt"))
val customLR = new CustomLogisticRegression()
.setMaxIter(10)
.setRegParam(0.3)
.setElasticNetParam(0.8)
val customLRModel = customLR.fit(data)
val originalLR = new LogisticRegression()
.setMaxIter(10)
.setRegParam(0.3)
.setElasticNetParam(0.8)
val originalLRModel = originalLR.fit(data)
// Print the intercept for logistic regression
println(s"Custom Class's Intercept: ${customLRModel.intercept}")
println(s"Original Class's Intercept: ${originalLRModel.intercept}")
println(customLR.toString())
println(originalLR.toString())
出力:
Custom Class's Intercept: 0.22456315961250317
Original Class's Intercept: 0.22456315961250317
This is overridden Logistic Regression Class
logreg_1cd811a145d7
于 2016-04-18T10:46:26.150 に答える