in denseclus/DenseClus.py [0:0]
def fit(self, df: pd.DataFrame) -> None:
"""Fit function for call UMAP and HDBSCAN
Parameters
----------
df : pandas DataFrame
DataFrame object with named columns of categorical and numerics
Returns
-------
Fitted: None
Fitted UMAPs and HDBSCAN
"""
check_is_df(df)
if not isinstance(self.n_components, int):
self.n_components = int(round(np.log(df.shape[1])))
logger.info("Extracting categorical features")
self.categorical_ = extract_categorical(df)
logger.info("Extracting numerical features")
self.numerical_ = extract_numerical(df)
logger.info("Fitting categorical UMAP")
self._fit_categorical()
logger.info("Fitting numerical UMAP")
self._fit_numerical()
logger.info("Mapping/Combining Embeddings")
self._umap_embeddings()
logger.info("Fitting HDBSCAN...")
self._fit_hdbscan()