class_docstr: The `GMMDetector` trains a Gaussian Mixture model on a dataset `X`. Once a density is trained we can evaluate the
  likelihood scores to see if it is deemed likely.
  
  By giving a threshold this model might then label outliers if their likelihood score is too low.
  
  Parameters
  ----------
  threshold : float, default=0.99
      The limit at which the model thinks an outlier appears, must be between (0, 1).
  method : Literal["quantile", "stddev"], default="quantile"
      The method to use to apply the `threshold`.
  
      !!! info
          If you select `method="quantile"` then the threshold value represents the quantile value to start calling
          something an outlier.
  
          If you select `method="stddev"` then the threshold value represents the
          numbers of standard deviations before calling something an outlier.
  
  !!! note
      The other parameters are an exact copy of the parameters in
      [sklearn.mixture.GaussianMixture]( https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html).
  
  Attributes
  ----------
  gmm_ : GaussianMixture
      The trained Gaussian Mixture model.
  likelihood_threshold_ : float
      The threshold value used to determine if something is an outlier.
docstr: Predict if a point is an outlier or not using the fitted model.
  
  Parameters
  ----------
  X : array-like of shape (n_samples, n_features)
      The data to predict.
  
  Returns
  -------
  array-like of shape (n_samples,)
      The predicted data. 1 for inliers, -1 for outliers.
docstr_tok: ["Predict","if","a","point","is","an","outlier","or","not","using","the","fitted","model",".","Parameters","--","--","--","--","--","X",":","array-like","of","shape","(","n_samples",",","n_features",")","The","data","to","predict",".","Returns","--","--","--","-","array-like","of","shape","(","n_samples",",",")","The","predicted","data",".","1","for","inliers",",","-1","for","outliers","."]
code: def predict(self, X):
      """Predict if a point is an outlier or not using the fitted model.
  
      Parameters
      ----------
      X : array-like of shape (n_samples, n_features)
          The data to predict.
  
      Returns
      -------
      array-like of shape (n_samples,)
          The predicted data. 1 for inliers, -1 for outliers.
      """
      predictions = (self.decision_function(X) >= 0).astype(int)
      predictions[predictions == 1] = -1
      predictions[predictions == 0] = 1
      return predictions
  
file_path: scikit-lego/sklego/mixture/gmm_outlier_detector.py
imports: from warnings import warn
  import numpy
  from scipy.optimize import minimize_scalar
  from scipy.stats import gaussian_kde
  from sklearn.base import BaseEstimator, OutlierMixin
  from sklearn.mixture import GaussianMixture
  from sklearn.utils.validation import FLOAT_DTYPES, check_array, check_is_fitted
label_desc: Use image node_id 5 for calling the GMMOutlierDetector obj's underlying member method code with example usage: obj.predict(X) and returns: predictions