class_docstr: Greedy Gaussian Segmentation Estimator.
  
  The method approximates solutions for the problem of breaking a
  multivariate time series into segments, where the data in each segment
  could be modeled as independent samples from a multivariate Gaussian
  distribution. It uses a dynamic programming search algorithm with
  a heuristic that allows finding approximate solution in linear time with
  respect to the data length and always yields locally optimal choice.
  
  Greedy Gaussian Segmentation (GGS) fits a segmented gaussian model (SGM)
  to the data by computing the approximate solution to the combinatorial
  problem of finding the approximate covariance-regularized  maximum
  log-likelihood for fixed number of change points and a reagularization
  strength. It follows an interactive procedure
  where a new breakpoint is added and then adjusting all breakpoints to
  (approximately) maximize the objective. It is similar to the top-down
  search used in other change point detection problems.
  
  Parameters
  ----------
  k_max: int, default=10
      Maximum number of change points to find. The number of segments is thus k+1.
  lamb: : float, default=1.0
      Regularization parameter lambda (>= 0), which controls the amount of
      (inverse) covariance regularization, see Eq (1) in [1]_. Regularization
      is introduced to reduce issues for high-dimensional problems. Setting
      ``lamb`` to zero will ignore regularization, whereas large values of
      lambda will favour simpler models.
  max_shuffles: int, default=250
      Maximum number of shuffles
  verbose: bool, default=False
      If ``True`` verbose output is enabled.
  random_state: int or np.random.RandomState, default=None
      Either random seed or an instance of ``np.random.RandomState``
  
  Attributes
  ----------
  change_points_: array_like, default=[]
      Locations of change points as integer indexes. By convention change points
      include the identity segmentation, i.e. first and last index + 1 values.
  
  Notes
  -----
  Based on the work from [1]_.
  
  - source code adapted based on: https://github.com/cvxgrp/GGS
  - paper available at: https://stanford.edu/~boyd/papers/pdf/ggs.pdf
  
  References
  ----------
  .. [1] Hallac, D., Nystrup, P. & Boyd, S.,
     "Greedy Gaussian segmentation of multivariate time series.",
     Adv Data Anal Classif 13, 727–751 (2019).
     https://doi.org/10.1007/s11634-018-0335-0
class_docstr_tok: ["Greedy","Gaussian","Segmentation","Estimator",".","The","method","approximates","solutions","for","the","problem","of","breaking","a","multivariate","time","series","into","segments",",","where","the","data","in","each","segment","could","be","modeled","as","independent","samples","from","a","multivariate","Gaussian","distribution",".","It","uses","a","dynamic","programming","search","algorithm","with","a","heuristic","that","allows","finding","approximate","solution","in","linear","time","with","respect","to","the","data","length","and","always","yields","locally","optimal","choice",".","Greedy","Gaussian","Segmentation","(","GGS",")","fits","a","segmented","gaussian","model","(","SGM",")","to","the","data","by","computing","the","approximate","solution","to","the","combinatorial","problem","of","finding","the","approximate","covariance-regularized","maximum","log-likelihood","for","fixed","number","of","change","points","and","a","reagularization","strength",".","It","follows","an","interactive","procedure","where","a","new","breakpoint","is","added","and","then","adjusting","all","breakpoints","to","(","approximately",")","maximize","the","objective",".","It","is","similar","to","the","top-down","search","used","in","other","change","point","detection","problems",".","Parameters","--","--","--","--","--","k_max",":","int",",","default=10","Maximum","number","of","change","points","to","find",".","The","number","of","segments","is","thus","k+1",".","lamb",":",":","float",",","default=1.0","Regularization","parameter","lambda","(",">","=","0",")",",","which","controls","the","amount","of","(","inverse",")","covariance","regularization",",","see","Eq","(","1",")","in","[","1","]","_.","Regularization","is","introduced","to","reduce","issues","for","high-dimensional","problems",".","Setting","``","lamb","``","to","zero","will","ignore","regularization",",","whereas","large","values","of","lambda","will","favour","simpler","models",".","max_shuffles",":","int",",","default=250","Maximum","number","of","shuffles","verbose",":","bool",",","default=False","If","``","True","``","verbose","output","is","enabled",".","random_state",":","int","or","np.random.RandomState",",","default=None","Either","random","seed","or","an","instance","of","``","np.random.RandomState","``","Attributes","--","--","--","--","--","change_points_",":","array_like",",","default=","[","]","Locations","of","change","points","as","integer","indexes",".","By","convention","change","points","include","the","identity","segmentation",",","i.e",".","first","and","last","index","+","1","values",".","Notes","--","--","-","Based","on","the","work","from","[","1","]","_",".","-","source","code","adapted","based","on",":","https",":","\/\/github.com\/cvxgrp\/GGS","-","paper","available","at",":","https",":","\/\/stanford.edu\/~boyd\/papers\/pdf\/ggs.pdf","References","--","--","--","--","--","..","[","1","]","Hallac",",","D.",",","Nystrup",",","P.","&","Boyd",",","S.",",","``","Greedy","Gaussian","segmentation","of","multivariate","time","series",".","``",",","Adv","Data","Anal","Classif","13",",","727\u2013751","(","2019",")",".","https",":","\/\/doi.org\/10.1007\/s11634-018-0335-0"]
docstr: Fit method for compatibility with sklearn-type estimator interface.
  
  Parameters
  ----------
  X: array_like (1D or 2D), pd.Series, or pd.DataFrame
      1D array of timeseries values, or 2D array with index along the first
      dimension and columns representing features of the timeseries. If pd.Series,
      the values of the timeseries are the values of the series. If pd.DataFrame,
      each column represents a feature of the timeseries.
  y: array_like
      Placeholder for compatibility with sklearn-api, not used, default=None.
docstr_tok: ["Fit","method","for","compatibility","with","sklearn-type","estimator","interface",".","Parameters","--","--","--","--","--","X",":","array_like","(","1D","or","2D",")",",","pd.Series",",","or","pd.DataFrame","1D","array","of","timeseries","values",",","or","2D","array","with","index","along","the","first","dimension","and","columns","representing","features","of","the","timeseries",".","If","pd.Series",",","the","values","of","the","timeseries","are","the","values","of","the","series",".","If","pd.DataFrame",",","each","column","represents","a","feature","of","the","timeseries",".","y",":","array_like","Placeholder","for","compatibility","with","sklearn-api",",","not","used",",","default=None","."]
code: def _fit(self, X, Y=None):
      """Fit method for compatibility with sklearn-type estimator interface.
  
      Parameters
      ----------
      X: array_like (1D or 2D), pd.Series, or pd.DataFrame
          1D array of timeseries values, or 2D array with index along the first
          dimension and columns representing features of the timeseries. If pd.Series,
          the values of the timeseries are the values of the series. If pd.DataFrame,
          each column represents a feature of the timeseries.
      y: array_like
          Placeholder for compatibility with sklearn-api, not used, default=None.
      """
      return self
  
imports: import logging
  import math
  from dataclasses import dataclass, field
  from typing import List, Tuple
  import numpy
  import numpy.typing
  import pandas
  from sklearn.utils.validation import check_random_state
  from sktime.annotation.base._base import BaseSeriesAnnotator
  from sktime.utils.validation._dependencies import _check_estimator_deps
label_desc: Use image node_id 4 for calling the GreedyGaussianSegmentation obj's underlying member method code with example usage: obj._fit(X, Y) and returns: self