public class GaussianMixture extends Estimator<GaussianMixtureModel> implements DefaultParamsWritable
This class performs expectation maximization for multivariate Gaussian Mixture Models (GMMs). A GMM represents a composite distribution of independent Gaussian distributions with associated "mixing" weights specifying each's contribution to the composite.
Given a set of sample points, this class will maximize the log-likelihood for a mixture of k Gaussians, iterating until the log-likelihood changes by less than convergenceTol, or until it has reached the max number of iterations. While this process is generally guaranteed to converge, it is not guaranteed to find a global optimum.
Note: For high-dimensional data (with many features), this algorithm may perform poorly. This is due to high-dimensional data (a) making it difficult to cluster at all (based on statistical/theoretical arguments) and (b) numerical issues with Gaussian distributions.
Constructor and Description |
---|
GaussianMixture() |
GaussianMixture(String uid) |
Modifier and Type | Method and Description |
---|---|
static Params |
clear(Param<?> param) |
GaussianMixture |
copy(ParamMap extra)
Creates a copy of this instance with the same UID and some extra params.
|
static String |
explainParam(Param<?> param) |
static String |
explainParams() |
static ParamMap |
extractParamMap() |
static ParamMap |
extractParamMap(ParamMap extra) |
static Param<String> |
featuresCol() |
GaussianMixtureModel |
fit(Dataset<?> dataset)
Fits a model to the input data.
|
static <T> scala.Option<T> |
get(Param<T> param) |
static <T> scala.Option<T> |
getDefault(Param<T> param) |
static String |
getFeaturesCol() |
static int |
getK() |
int |
getK() |
static int |
getMaxIter() |
static <T> T |
getOrDefault(Param<T> param) |
static Param<Object> |
getParam(String paramName) |
static String |
getPredictionCol() |
static String |
getProbabilityCol() |
static long |
getSeed() |
static double |
getTol() |
static <T> boolean |
hasDefault(Param<T> param) |
static boolean |
hasParam(String paramName) |
static boolean |
isDefined(Param<?> param) |
static boolean |
isSet(Param<?> param) |
static IntParam |
k() |
IntParam |
k()
Number of independent Gaussians in the mixture model.
|
static GaussianMixture |
load(String path) |
static IntParam |
maxIter() |
static Param<?>[] |
params() |
static Param<String> |
predictionCol() |
static Param<String> |
probabilityCol() |
static void |
save(String path) |
static LongParam |
seed() |
static <T> Params |
set(Param<T> param,
T value) |
GaussianMixture |
setFeaturesCol(String value) |
GaussianMixture |
setK(int value) |
GaussianMixture |
setMaxIter(int value) |
GaussianMixture |
setPredictionCol(String value) |
GaussianMixture |
setProbabilityCol(String value) |
GaussianMixture |
setSeed(long value) |
GaussianMixture |
setTol(double value) |
static DoubleParam |
tol() |
static String |
toString() |
StructType |
transformSchema(StructType schema)
:: DeveloperApi ::
|
String |
uid()
An immutable unique ID for the object and its derivatives.
|
StructType |
validateAndTransformSchema(StructType schema)
Validates and transforms the input schema.
|
static void |
validateParams() |
static MLWriter |
write() |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clear, copyValues, defaultCopy, defaultParamMap, explainParam, explainParams, extractParamMap, extractParamMap, get, getDefault, getOrDefault, getParam, hasDefault, hasParam, isDefined, isSet, paramMap, params, set, set, set, setDefault, setDefault, shouldOwn, validateParams
toString
write
save
public GaussianMixture(String uid)
public GaussianMixture()
public static GaussianMixture load(String path)
public static String toString()
public static Param<?>[] params()
public static void validateParams()
public static String explainParam(Param<?> param)
public static String explainParams()
public static final boolean isSet(Param<?> param)
public static final boolean isDefined(Param<?> param)
public static boolean hasParam(String paramName)
public static Param<Object> getParam(String paramName)
public static final <T> scala.Option<T> get(Param<T> param)
public static final <T> T getOrDefault(Param<T> param)
public static final <T> scala.Option<T> getDefault(Param<T> param)
public static final <T> boolean hasDefault(Param<T> param)
public static final ParamMap extractParamMap()
public static final IntParam maxIter()
public static final int getMaxIter()
public static final Param<String> featuresCol()
public static final String getFeaturesCol()
public static final LongParam seed()
public static final long getSeed()
public static final Param<String> predictionCol()
public static final String getPredictionCol()
public static final Param<String> probabilityCol()
public static final String getProbabilityCol()
public static final DoubleParam tol()
public static final double getTol()
public static final IntParam k()
public static int getK()
public static void save(String path) throws java.io.IOException
java.io.IOException
public static MLWriter write()
public String uid()
Identifiable
uid
in interface Identifiable
public GaussianMixture copy(ParamMap extra)
Params
defaultCopy()
.copy
in interface Params
copy
in class Estimator<GaussianMixtureModel>
extra
- (undocumented)public GaussianMixture setFeaturesCol(String value)
public GaussianMixture setPredictionCol(String value)
public GaussianMixture setProbabilityCol(String value)
public GaussianMixture setK(int value)
public GaussianMixture setMaxIter(int value)
public GaussianMixture setTol(double value)
public GaussianMixture setSeed(long value)
public GaussianMixtureModel fit(Dataset<?> dataset)
Estimator
fit
in class Estimator<GaussianMixtureModel>
dataset
- (undocumented)public StructType transformSchema(StructType schema)
PipelineStage
Check transform validity and derive the output schema from the input schema.
Typical implementation should first conduct verification on schema change and parameter validity, including complex parameter interaction checks.
transformSchema
in class PipelineStage
schema
- (undocumented)public IntParam k()
public int getK()
public StructType validateAndTransformSchema(StructType schema)
schema
- input schema