OneHotEncoder (Spark 3.5.5 JavaDoc) (original) (raw)
Object
- org.apache.spark.ml.PipelineStage
- org.apache.spark.ml.Estimator<OneHotEncoderModel>
- org.apache.spark.ml.feature.OneHotEncoder
- org.apache.spark.ml.Estimator<OneHotEncoderModel>
All Implemented Interfaces:
java.io.Serializable, org.apache.spark.internal.Logging, OneHotEncoderBase, Params, HasHandleInvalid, HasInputCol, HasInputCols, HasOutputCol, HasOutputCols, DefaultParamsWritable, Identifiable, MLWritable
public class OneHotEncoder
extends Estimator<OneHotEncoderModel>
implements OneHotEncoderBase, DefaultParamsWritable
A one-hot encoder that maps a column of category indices to a column of binary vectors, with at most a single one-value per row that indicates the input category index. For example with 5 categories, an input value of 2.0 would map to an output vector of[0.0, 0.0, 1.0, 0.0]
. The last category is not included by default (configurable via dropLast
), because it makes the vector entries sum up to one, and hence linearly dependent. So an input value of 4.0 maps to [0.0, 0.0, 0.0, 0.0]
.
See Also:StringIndexer
for converting categorical values into category indices, Serialized Form
Note:
This is different from scikit-learn's OneHotEncoder, which keeps all categories. The output vectors are sparse.
When handleInvalid
is configured to 'keep', an extra "category" indicating invalid values is added as last category. So when dropLast
is true, invalid values are encoded as all-zeros vector.
, When encoding multi-column by using inputCols
and outputCols
params, input/output cols come in pairs, specified by the order in the arrays, and each pair is treated independently.
Nested Class Summary
* ### Nested classes/interfaces inherited from interface org.apache.spark.internal.Logging `org.apache.spark.internal.Logging.SparkShellLoggingFilter`
Constructor Summary
Constructors
Constructor and Description OneHotEncoder() OneHotEncoder(String uid) Method Summary
All Methods Static Methods Instance Methods Concrete Methods
Modifier and Type Method and Description OneHotEncoder copy(ParamMap extra) Creates a copy of this instance with the same UID and some extra params. BooleanParam dropLast() Whether to drop the last category in the encoded vector (default: true) OneHotEncoderModel fit(Dataset<?> dataset) Fits a model to the input data. Param handleInvalid() Param for how to handle invalid data during transform(). Param inputCol() Param for input column name. StringArrayParam inputCols() Param for input column names. static OneHotEncoder load(String path) Param outputCol() Param for output column name. StringArrayParam outputCols() Param for output column names. static MLReader read() OneHotEncoder setDropLast(boolean value) OneHotEncoder setHandleInvalid(String value) OneHotEncoder setInputCol(String value) OneHotEncoder setInputCols(String[] values) OneHotEncoder setOutputCol(String value) OneHotEncoder setOutputCols(String[] values) StructType transformSchema(StructType schema) Check transform validity and derive the output schema from the input schema. String uid() An immutable unique ID for the object and its derivatives. * ### Methods inherited from class org.apache.spark.ml.[Estimator](../../../../../org/apache/spark/ml/Estimator.html "class in org.apache.spark.ml") `[fit](../../../../../org/apache/spark/ml/Estimator.html#fit-org.apache.spark.sql.Dataset-org.apache.spark.ml.param.ParamMap-), [fit](../../../../../org/apache/spark/ml/Estimator.html#fit-org.apache.spark.sql.Dataset-org.apache.spark.ml.param.ParamPair-org.apache.spark.ml.param.ParamPair...-), [fit](../../../../../org/apache/spark/ml/Estimator.html#fit-org.apache.spark.sql.Dataset-org.apache.spark.ml.param.ParamPair-scala.collection.Seq-), [fit](../../../../../org/apache/spark/ml/Estimator.html#fit-org.apache.spark.sql.Dataset-scala.collection.Seq-)` * ### Methods inherited from class org.apache.spark.ml.[PipelineStage](../../../../../org/apache/spark/ml/PipelineStage.html "class in org.apache.spark.ml") `[params](../../../../../org/apache/spark/ml/PipelineStage.html#params--)` * ### Methods inherited from class Object `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait` * ### Methods inherited from interface org.apache.spark.ml.feature.[OneHotEncoderBase](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html "interface in org.apache.spark.ml.feature") `[getDropLast](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html#getDropLast--), [getInOutCols](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html#getInOutCols--), [validateAndTransformSchema](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html#validateAndTransformSchema-org.apache.spark.sql.types.StructType-boolean-boolean-)` * ### Methods inherited from interface org.apache.spark.ml.param.shared.[HasHandleInvalid](../../../../../org/apache/spark/ml/param/shared/HasHandleInvalid.html "interface in org.apache.spark.ml.param.shared") `[getHandleInvalid](../../../../../org/apache/spark/ml/param/shared/HasHandleInvalid.html#getHandleInvalid--)` * ### Methods inherited from interface org.apache.spark.ml.param.shared.[HasInputCol](../../../../../org/apache/spark/ml/param/shared/HasInputCol.html "interface in org.apache.spark.ml.param.shared") `[getInputCol](../../../../../org/apache/spark/ml/param/shared/HasInputCol.html#getInputCol--)` * ### Methods inherited from interface org.apache.spark.ml.param.shared.[HasInputCols](../../../../../org/apache/spark/ml/param/shared/HasInputCols.html "interface in org.apache.spark.ml.param.shared") `[getInputCols](../../../../../org/apache/spark/ml/param/shared/HasInputCols.html#getInputCols--)` * ### Methods inherited from interface org.apache.spark.ml.param.shared.[HasOutputCol](../../../../../org/apache/spark/ml/param/shared/HasOutputCol.html "interface in org.apache.spark.ml.param.shared") `[getOutputCol](../../../../../org/apache/spark/ml/param/shared/HasOutputCol.html#getOutputCol--)` * ### Methods inherited from interface org.apache.spark.ml.param.shared.[HasOutputCols](../../../../../org/apache/spark/ml/param/shared/HasOutputCols.html "interface in org.apache.spark.ml.param.shared") `[getOutputCols](../../../../../org/apache/spark/ml/param/shared/HasOutputCols.html#getOutputCols--)` * ### Methods inherited from interface org.apache.spark.ml.param.[Params](../../../../../org/apache/spark/ml/param/Params.html "interface in org.apache.spark.ml.param") `[clear](../../../../../org/apache/spark/ml/param/Params.html#clear-org.apache.spark.ml.param.Param-), [copyValues](../../../../../org/apache/spark/ml/param/Params.html#copyValues-T-org.apache.spark.ml.param.ParamMap-), [defaultCopy](../../../../../org/apache/spark/ml/param/Params.html#defaultCopy-org.apache.spark.ml.param.ParamMap-), [defaultParamMap](../../../../../org/apache/spark/ml/param/Params.html#defaultParamMap--), [explainParam](../../../../../org/apache/spark/ml/param/Params.html#explainParam-org.apache.spark.ml.param.Param-), [explainParams](../../../../../org/apache/spark/ml/param/Params.html#explainParams--), [extractParamMap](../../../../../org/apache/spark/ml/param/Params.html#extractParamMap--), [extractParamMap](../../../../../org/apache/spark/ml/param/Params.html#extractParamMap-org.apache.spark.ml.param.ParamMap-), [get](../../../../../org/apache/spark/ml/param/Params.html#get-org.apache.spark.ml.param.Param-), [getDefault](../../../../../org/apache/spark/ml/param/Params.html#getDefault-org.apache.spark.ml.param.Param-), [getOrDefault](../../../../../org/apache/spark/ml/param/Params.html#getOrDefault-org.apache.spark.ml.param.Param-), [getParam](../../../../../org/apache/spark/ml/param/Params.html#getParam-java.lang.String-), [hasDefault](../../../../../org/apache/spark/ml/param/Params.html#hasDefault-org.apache.spark.ml.param.Param-), [hasParam](../../../../../org/apache/spark/ml/param/Params.html#hasParam-java.lang.String-), [isDefined](../../../../../org/apache/spark/ml/param/Params.html#isDefined-org.apache.spark.ml.param.Param-), [isSet](../../../../../org/apache/spark/ml/param/Params.html#isSet-org.apache.spark.ml.param.Param-), [onParamChange](../../../../../org/apache/spark/ml/param/Params.html#onParamChange-org.apache.spark.ml.param.Param-), [paramMap](../../../../../org/apache/spark/ml/param/Params.html#paramMap--), [params](../../../../../org/apache/spark/ml/param/Params.html#params--), [set](../../../../../org/apache/spark/ml/param/Params.html#set-org.apache.spark.ml.param.Param-T-), [set](../../../../../org/apache/spark/ml/param/Params.html#set-org.apache.spark.ml.param.ParamPair-), [set](../../../../../org/apache/spark/ml/param/Params.html#set-java.lang.String-java.lang.Object-), [setDefault](../../../../../org/apache/spark/ml/param/Params.html#setDefault-org.apache.spark.ml.param.Param-T-), [setDefault](../../../../../org/apache/spark/ml/param/Params.html#setDefault-scala.collection.Seq-), [shouldOwn](../../../../../org/apache/spark/ml/param/Params.html#shouldOwn-org.apache.spark.ml.param.Param-)` * ### Methods inherited from interface org.apache.spark.ml.util.[Identifiable](../../../../../org/apache/spark/ml/util/Identifiable.html "interface in org.apache.spark.ml.util") `[toString](../../../../../org/apache/spark/ml/util/Identifiable.html#toString--)` * ### Methods inherited from interface org.apache.spark.ml.util.[DefaultParamsWritable](../../../../../org/apache/spark/ml/util/DefaultParamsWritable.html "interface in org.apache.spark.ml.util") `[write](../../../../../org/apache/spark/ml/util/DefaultParamsWritable.html#write--)` * ### Methods inherited from interface org.apache.spark.ml.util.[MLWritable](../../../../../org/apache/spark/ml/util/MLWritable.html "interface in org.apache.spark.ml.util") `[save](../../../../../org/apache/spark/ml/util/MLWritable.html#save-java.lang.String-)` * ### Methods inherited from interface org.apache.spark.internal.Logging `$init$, initializeForcefully, initializeLogIfNecessary, initializeLogIfNecessary, initializeLogIfNecessary$default$2, initLock, isTraceEnabled, log, logDebug, logDebug, logError, logError, logInfo, logInfo, logName, logTrace, logTrace, logWarning, logWarning, org$apache$spark$internal$Logging$$log__$eq, org$apache$spark$internal$Logging$$log_, uninitialize`
Constructor Detail
* #### OneHotEncoder public OneHotEncoder(String uid) * #### OneHotEncoder public OneHotEncoder()
Method Detail
* #### load public static [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") load(String path) * #### read public static [MLReader](../../../../../org/apache/spark/ml/util/MLReader.html "class in org.apache.spark.ml.util")<T> read() * #### handleInvalid public [Param](../../../../../org/apache/spark/ml/param/Param.html "class in org.apache.spark.ml.param")<String> handleInvalid() Param for how to handle invalid data during transform(). Options are 'keep' (invalid data presented as an extra categorical feature) or 'error' (throw an error). Note that this Param is only used during transform; during fitting, invalid data will result in an error. Default: "error" Specified by: `[handleInvalid](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html#handleInvalid--)` in interface `[OneHotEncoderBase](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html "interface in org.apache.spark.ml.feature")` Specified by: `[handleInvalid](../../../../../org/apache/spark/ml/param/shared/HasHandleInvalid.html#handleInvalid--)` in interface `[HasHandleInvalid](../../../../../org/apache/spark/ml/param/shared/HasHandleInvalid.html "interface in org.apache.spark.ml.param.shared")` Returns: (undocumented) * #### dropLast public final [BooleanParam](../../../../../org/apache/spark/ml/param/BooleanParam.html "class in org.apache.spark.ml.param") dropLast() Whether to drop the last category in the encoded vector (default: true) Specified by: `[dropLast](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html#dropLast--)` in interface `[OneHotEncoderBase](../../../../../org/apache/spark/ml/feature/OneHotEncoderBase.html "interface in org.apache.spark.ml.feature")` Returns: (undocumented) * #### outputCols public final [StringArrayParam](../../../../../org/apache/spark/ml/param/StringArrayParam.html "class in org.apache.spark.ml.param") outputCols() Param for output column names. Specified by: `[outputCols](../../../../../org/apache/spark/ml/param/shared/HasOutputCols.html#outputCols--)` in interface `[HasOutputCols](../../../../../org/apache/spark/ml/param/shared/HasOutputCols.html "interface in org.apache.spark.ml.param.shared")` Returns: (undocumented) * #### outputCol public final [Param](../../../../../org/apache/spark/ml/param/Param.html "class in org.apache.spark.ml.param")<String> outputCol() Param for output column name. Specified by: `[outputCol](../../../../../org/apache/spark/ml/param/shared/HasOutputCol.html#outputCol--)` in interface `[HasOutputCol](../../../../../org/apache/spark/ml/param/shared/HasOutputCol.html "interface in org.apache.spark.ml.param.shared")` Returns: (undocumented) * #### inputCols public final [StringArrayParam](../../../../../org/apache/spark/ml/param/StringArrayParam.html "class in org.apache.spark.ml.param") inputCols() Param for input column names. Specified by: `[inputCols](../../../../../org/apache/spark/ml/param/shared/HasInputCols.html#inputCols--)` in interface `[HasInputCols](../../../../../org/apache/spark/ml/param/shared/HasInputCols.html "interface in org.apache.spark.ml.param.shared")` Returns: (undocumented) * #### inputCol public final [Param](../../../../../org/apache/spark/ml/param/Param.html "class in org.apache.spark.ml.param")<String> inputCol() Description copied from interface: `[HasInputCol](../../../../../org/apache/spark/ml/param/shared/HasInputCol.html#inputCol--)` Param for input column name. Specified by: `[inputCol](../../../../../org/apache/spark/ml/param/shared/HasInputCol.html#inputCol--)` in interface `[HasInputCol](../../../../../org/apache/spark/ml/param/shared/HasInputCol.html "interface in org.apache.spark.ml.param.shared")` Returns: (undocumented) * #### uid public String uid() An immutable unique ID for the object and its derivatives. Specified by: `[uid](../../../../../org/apache/spark/ml/util/Identifiable.html#uid--)` in interface `[Identifiable](../../../../../org/apache/spark/ml/util/Identifiable.html "interface in org.apache.spark.ml.util")` Returns: (undocumented) * #### setInputCol public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") setInputCol(String value) * #### setOutputCol public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") setOutputCol(String value) * #### setInputCols public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") setInputCols(String[] values) * #### setOutputCols public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") setOutputCols(String[] values) * #### setDropLast public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") setDropLast(boolean value) * #### setHandleInvalid public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") setHandleInvalid(String value) * #### transformSchema public [StructType](../../../../../org/apache/spark/sql/types/StructType.html "class in org.apache.spark.sql.types") transformSchema([StructType](../../../../../org/apache/spark/sql/types/StructType.html "class in org.apache.spark.sql.types") schema) 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](../../../../../org/apache/spark/ml/PipelineStage.html#transformSchema-org.apache.spark.sql.types.StructType-)` in class `[PipelineStage](../../../../../org/apache/spark/ml/PipelineStage.html "class in org.apache.spark.ml")` Parameters: `schema` \- (undocumented) Returns: (undocumented) * #### fit public [OneHotEncoderModel](../../../../../org/apache/spark/ml/feature/OneHotEncoderModel.html "class in org.apache.spark.ml.feature") fit([Dataset](../../../../../org/apache/spark/sql/Dataset.html "class in org.apache.spark.sql")<?> dataset) Description copied from class: `[Estimator](../../../../../org/apache/spark/ml/Estimator.html#fit-org.apache.spark.sql.Dataset-)` Fits a model to the input data. Specified by: `[fit](../../../../../org/apache/spark/ml/Estimator.html#fit-org.apache.spark.sql.Dataset-)` in class `[Estimator](../../../../../org/apache/spark/ml/Estimator.html "class in org.apache.spark.ml")<[OneHotEncoderModel](../../../../../org/apache/spark/ml/feature/OneHotEncoderModel.html "class in org.apache.spark.ml.feature")>` Parameters: `dataset` \- (undocumented) Returns: (undocumented) * #### copy public [OneHotEncoder](../../../../../org/apache/spark/ml/feature/OneHotEncoder.html "class in org.apache.spark.ml.feature") copy([ParamMap](../../../../../org/apache/spark/ml/param/ParamMap.html "class in org.apache.spark.ml.param") extra) Description copied from interface: `[Params](../../../../../org/apache/spark/ml/param/Params.html#copy-org.apache.spark.ml.param.ParamMap-)` 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](../../../../../org/apache/spark/ml/param/Params.html#copy-org.apache.spark.ml.param.ParamMap-)` in interface `[Params](../../../../../org/apache/spark/ml/param/Params.html "interface in org.apache.spark.ml.param")` Specified by: `[copy](../../../../../org/apache/spark/ml/Estimator.html#copy-org.apache.spark.ml.param.ParamMap-)` in class `[Estimator](../../../../../org/apache/spark/ml/Estimator.html "class in org.apache.spark.ml")<[OneHotEncoderModel](../../../../../org/apache/spark/ml/feature/OneHotEncoderModel.html "class in org.apache.spark.ml.feature")>` Parameters: `extra` \- (undocumented) Returns: (undocumented)