[SPARK-9914] [ML] define setters explicitly for Java and use setParam group in RFormula

The problem with defining setters in the base class is that it doesn't return the correct type in Java.

ericl

Author: Xiangrui Meng <meng@databricks.com>

Closes #8143 from mengxr/SPARK-9914 and squashes the following commits:

d36c887 [Xiangrui Meng] remove setters from model
a49021b [Xiangrui Meng] define setters explicitly for Java and use setParam group
This commit is contained in:
Xiangrui Meng 2015-08-12 22:30:33 -07:00
parent df54389212
commit d7eb371eb6

View file

@ -33,11 +33,6 @@ import org.apache.spark.sql.types._
* Base trait for [[RFormula]] and [[RFormulaModel]].
*/
private[feature] trait RFormulaBase extends HasFeaturesCol with HasLabelCol {
/** @group getParam */
def setFeaturesCol(value: String): this.type = set(featuresCol, value)
/** @group getParam */
def setLabelCol(value: String): this.type = set(labelCol, value)
protected def hasLabelCol(schema: StructType): Boolean = {
schema.map(_.name).contains($(labelCol))
@ -71,6 +66,12 @@ class RFormula(override val uid: String) extends Estimator[RFormulaModel] with R
/** @group getParam */
def getFormula: String = $(formula)
/** @group setParam */
def setFeaturesCol(value: String): this.type = set(featuresCol, value)
/** @group setParam */
def setLabelCol(value: String): this.type = set(labelCol, value)
/** Whether the formula specifies fitting an intercept. */
private[ml] def hasIntercept: Boolean = {
require(isDefined(formula), "Formula must be defined first.")