Class Imputer

All Implemented Interfaces:
Serializable, org.apache.spark.internal.Logging, ImputerParams, Params, HasInputCol, HasInputCols, HasOutputCol, HasOutputCols, HasRelativeError, DefaultParamsWritable, Identifiable, MLWritable

public class Imputer extends Estimator<ImputerModel> implements ImputerParams, DefaultParamsWritable
Imputation estimator for completing missing values, using the mean, median or mode of the columns in which the missing values are located. The input columns should be of numeric type. Currently Imputer does not support categorical features (SPARK-15041) and possibly creates incorrect values for a categorical feature.

Note when an input column is integer, the imputed value is casted (truncated) to an integer type. For example, if the input column is IntegerType (1, 2, 4, null), the output will be IntegerType (1, 2, 4, 2) after mean imputation.

Note that the mean/median/mode value is computed after filtering out missing values. All Null values in the input columns are treated as missing, and so are also imputed. For computing median, DataFrameStatFunctions.approxQuantile is used with a relative error of 0.001.

See Also:
  • Constructor Details

    • Imputer

      public Imputer(String uid)
    • Imputer

      public Imputer()
  • Method Details

    • load

      public static Imputer load(String path)
    • read

      public static MLReader<T> read()
    • strategy

      public final Param<String> strategy()
      Description copied from interface: ImputerParams
      The imputation strategy. Currently only "mean" and "median" are supported. If "mean", then replace missing values using the mean value of the feature. If "median", then replace missing values using the approximate median value of the feature. If "mode", then replace missing using the most frequent value of the feature. Default: mean

      Specified by:
      strategy in interface ImputerParams
      Returns:
      (undocumented)
    • missingValue

      public final DoubleParam missingValue()
      Description copied from interface: ImputerParams
      The placeholder for the missing values. All occurrences of missingValue will be imputed. Note that null values are always treated as missing. Default: Double.NaN

      Specified by:
      missingValue in interface ImputerParams
      Returns:
      (undocumented)
    • relativeError

      public final DoubleParam relativeError()
      Description copied from interface: HasRelativeError
      Param for the relative target precision for the approximate quantile algorithm. Must be in the range [0, 1].
      Specified by:
      relativeError in interface HasRelativeError
      Returns:
      (undocumented)
    • outputCols

      public final StringArrayParam outputCols()
      Description copied from interface: HasOutputCols
      Param for output column names.
      Specified by:
      outputCols in interface HasOutputCols
      Returns:
      (undocumented)
    • outputCol

      public final Param<String> outputCol()
      Description copied from interface: HasOutputCol
      Param for output column name.
      Specified by:
      outputCol in interface HasOutputCol
      Returns:
      (undocumented)
    • inputCols

      public final StringArrayParam inputCols()
      Description copied from interface: HasInputCols
      Param for input column names.
      Specified by:
      inputCols in interface HasInputCols
      Returns:
      (undocumented)
    • inputCol

      public final Param<String> inputCol()
      Description copied from interface: HasInputCol
      Param for input column name.
      Specified by:
      inputCol in interface HasInputCol
      Returns:
      (undocumented)
    • uid

      public String uid()
      Description copied from interface: Identifiable
      An immutable unique ID for the object and its derivatives.
      Specified by:
      uid in interface Identifiable
      Returns:
      (undocumented)
    • setInputCol

      public Imputer setInputCol(String value)
    • setOutputCol

      public Imputer setOutputCol(String value)
    • setInputCols

      public Imputer setInputCols(String[] value)
    • setOutputCols

      public Imputer setOutputCols(String[] value)
    • setStrategy

      public Imputer setStrategy(String value)
      Imputation strategy. Available options are ["mean", "median", "mode"].
      Parameters:
      value - (undocumented)
      Returns:
      (undocumented)
    • setMissingValue

      public Imputer setMissingValue(double value)
    • setRelativeError

      public Imputer setRelativeError(double value)
    • fit

      public ImputerModel fit(Dataset<?> dataset)
      Description copied from class: Estimator
      Fits a model to the input data.
      Specified by:
      fit in class Estimator<ImputerModel>
      Parameters:
      dataset - (undocumented)
      Returns:
      (undocumented)
    • transformSchema

      public StructType transformSchema(StructType schema)
      Description copied from class: PipelineStage
      Check transform validity and derive the output schema from the input schema.

      We check validity for interactions between parameters during transformSchema and raise an exception if any parameter value is invalid. Parameter value checks which do not depend on other parameters are handled by Param.validate().

      Typical implementation should first conduct verification on schema change and parameter validity, including complex parameter interaction checks.

      Specified by:
      transformSchema in class PipelineStage
      Parameters:
      schema - (undocumented)
      Returns:
      (undocumented)
    • copy

      public Imputer copy(ParamMap extra)
      Description copied from interface: Params
      Creates a copy of this instance with the same UID and some extra params. Subclasses should implement this method and set the return type properly. See defaultCopy().
      Specified by:
      copy in interface Params
      Specified by:
      copy in class Estimator<ImputerModel>
      Parameters:
      extra - (undocumented)
      Returns:
      (undocumented)