aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/mllib-optimization.md4
-rw-r--r--mllib/src/main/scala/org/apache/spark/mllib/optimization/LBFGS.scala6
2 files changed, 9 insertions, 1 deletions
diff --git a/docs/mllib-optimization.md b/docs/mllib-optimization.md
index 4d101afca2..6cabc1610a 100644
--- a/docs/mllib-optimization.md
+++ b/docs/mllib-optimization.md
@@ -203,6 +203,10 @@ regularization, as well as L2 regularizer.
recommended.
* `maxNumIterations` is the maximal number of iterations that L-BFGS can be run.
* `regParam` is the regularization parameter when using regularization.
+* `convergenceTol` controls how much relative change is still allowed when L-BFGS
+is considered to converge. This must be nonnegative. Lower values are less tolerant and
+therefore generally cause more iterations to be run. This value looks at both average
+improvement and the norm of gradient inside [Breeze LBFGS](https://github.com/scalanlp/breeze/blob/master/math/src/main/scala/breeze/optimize/LBFGS.scala).
The `return` is a tuple containing two elements. The first element is a column matrix
containing weights for every feature, and the second element is an array containing
diff --git a/mllib/src/main/scala/org/apache/spark/mllib/optimization/LBFGS.scala b/mllib/src/main/scala/org/apache/spark/mllib/optimization/LBFGS.scala
index d5e4f4ccbf..ef6eccd907 100644
--- a/mllib/src/main/scala/org/apache/spark/mllib/optimization/LBFGS.scala
+++ b/mllib/src/main/scala/org/apache/spark/mllib/optimization/LBFGS.scala
@@ -60,6 +60,8 @@ class LBFGS(private var gradient: Gradient, private var updater: Updater)
/**
* Set the convergence tolerance of iterations for L-BFGS. Default 1E-4.
* Smaller value will lead to higher accuracy with the cost of more iterations.
+ * This value must be nonnegative. Lower convergence values are less tolerant
+ * and therefore generally cause more iterations to be run.
*/
def setConvergenceTol(tolerance: Double): this.type = {
this.convergenceTol = tolerance
@@ -142,7 +144,9 @@ object LBFGS extends Logging {
* one single data example)
* @param updater - Updater function to actually perform a gradient step in a given direction.
* @param numCorrections - The number of corrections used in the L-BFGS update.
- * @param convergenceTol - The convergence tolerance of iterations for L-BFGS
+ * @param convergenceTol - The convergence tolerance of iterations for L-BFGS which is must be
+ * nonnegative. Lower values are less tolerant and therefore generally
+ * cause more iterations to be run.
* @param maxNumIterations - Maximal number of iterations that L-BFGS can be run.
* @param regParam - Regularization parameter
*