public class VectorIndexer extends Estimator<VectorIndexerModel> implements VectorIndexerParams, DefaultParamsWritable
Vector
.
This has 2 usage modes: - Automatically identify categorical features (default behavior) - This helps process a dataset of unknown vectors into a dataset with some continuous features and some categorical features. The choice between continuous and categorical is based upon a maxCategories parameter. - Set maxCategories to the maximum number of categorical any categorical feature should have. - E.g.: Feature 0 has unique values {-1.0, 0.0}, and feature 1 values {1.0, 3.0, 5.0}. If maxCategories = 2, then feature 0 will be declared categorical and use indices {0, 1}, and feature 1 will be declared continuous. - Index all features, if all features are categorical - If maxCategories is set to be very large, then this will build an index of unique values for all features. - Warning: This can cause problems if features are continuous since this will collect ALL unique values to the driver. - E.g.: Feature 0 has unique values {-1.0, 0.0}, and feature 1 values {1.0, 3.0, 5.0}. If maxCategories is greater than or equal to 3, then both features will be declared categorical.
This returns a model which can transform categorical features to use 0-based indices.
Index stability: - This is not guaranteed to choose the same category index across multiple runs. - If a categorical feature includes value 0, then this is guaranteed to map value 0 to index 0. This maintains vector sparsity. - More stability may be added in the future.
TODO: Future extensions: The following functionality is planned for the future: - Preserve metadata in transform; if a feature's metadata is already present, do not recompute. - Specify certain features to not index, either via a parameter or via existing metadata. - Add warning if a categorical feature has only 1 category.
Constructor and Description |
---|
VectorIndexer() |
VectorIndexer(String uid) |
Modifier and Type | Method and Description |
---|---|
VectorIndexer |
copy(ParamMap extra)
Creates a copy of this instance with the same UID and some extra params.
|
VectorIndexerModel |
fit(Dataset<?> dataset)
Fits a model to the input data.
|
Param<String> |
handleInvalid()
Param for how to handle invalid data (unseen labels or NULL values).
|
Param<String> |
inputCol()
Param for input column name.
|
static VectorIndexer |
load(String path) |
IntParam |
maxCategories()
Threshold for the number of values a categorical feature can take.
|
Param<String> |
outputCol()
Param for output column name.
|
static MLReader<T> |
read() |
VectorIndexer |
setHandleInvalid(String value) |
VectorIndexer |
setInputCol(String value) |
VectorIndexer |
setMaxCategories(int value) |
VectorIndexer |
setOutputCol(String value) |
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.
|
params
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getMaxCategories
getInputCol
getOutputCol
getHandleInvalid
clear, copyValues, defaultCopy, defaultParamMap, explainParam, explainParams, extractParamMap, extractParamMap, get, getDefault, getOrDefault, getParam, hasDefault, hasParam, isDefined, isSet, paramMap, params, set, set, set, setDefault, setDefault, shouldOwn
toString
write
save
$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
public VectorIndexer(String uid)
public VectorIndexer()
public static VectorIndexer load(String path)
public static MLReader<T> read()
public Param<String> handleInvalid()
VectorIndexerParams
handleInvalid
in interface VectorIndexerParams
handleInvalid
in interface HasHandleInvalid
public IntParam maxCategories()
VectorIndexerParams
(default = 20)
maxCategories
in interface VectorIndexerParams
public final Param<String> outputCol()
HasOutputCol
outputCol
in interface HasOutputCol
public final Param<String> inputCol()
HasInputCol
inputCol
in interface HasInputCol
public String uid()
Identifiable
uid
in interface Identifiable
public VectorIndexer setMaxCategories(int value)
public VectorIndexer setInputCol(String value)
public VectorIndexer setOutputCol(String value)
public VectorIndexer setHandleInvalid(String value)
public VectorIndexerModel fit(Dataset<?> dataset)
Estimator
fit
in class Estimator<VectorIndexerModel>
dataset
- (undocumented)public StructType transformSchema(StructType schema)
PipelineStage
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.
transformSchema
in class PipelineStage
schema
- (undocumented)public VectorIndexer copy(ParamMap extra)
Params
defaultCopy()
.copy
in interface Params
copy
in class Estimator<VectorIndexerModel>
extra
- (undocumented)