snowflake.ml.modeling.cluster.FeatureAgglomeration¶
- class snowflake.ml.modeling.cluster.FeatureAgglomeration(*, n_clusters=2, affinity='deprecated', metric=None, memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', pooling_func=<function mean>, distance_threshold=None, compute_distances=False, input_cols: ~typing.Optional[~typing.Union[str, ~typing.Iterable[str]]] = None, output_cols: ~typing.Optional[~typing.Union[str, ~typing.Iterable[str]]] = None, label_cols: ~typing.Optional[~typing.Union[str, ~typing.Iterable[str]]] = None, drop_input_cols: ~typing.Optional[bool] = False, sample_weight_col: ~typing.Optional[str] = None)¶
Bases:
BaseTransformer
Agglomerate features For more details on this class, see sklearn.cluster.FeatureAgglomeration
- n_clusters: int or None, default=2
The number of clusters to find. It must be
None
ifdistance_threshold
is notNone
.- affinity: str or callable, default=’euclidean’
The metric to use when calculating distance between instances in a feature array. If metric is a string or callable, it must be one of the options allowed by
sklearn.metrics.pairwise_distances()
for its metric parameter. If linkage is “ward”, only “euclidean” is accepted. If “precomputed”, a distance matrix (instead of a similarity matrix) is needed as input for the fit method.- metric: str or callable, default=None
Metric used to compute the linkage. Can be “euclidean”, “l1”, “l2”, “manhattan”, “cosine”, or “precomputed”. If set to None then “euclidean” is used. If linkage is “ward”, only “euclidean” is accepted. If “precomputed”, a distance matrix is needed as input for the fit method.
- memory: str or object with the joblib.Memory interface, default=None
Used to cache the output of the computation of the tree. By default, no caching is done. If a string is given, it is the path to the caching directory.
- connectivity: array-like or callable, default=None
Connectivity matrix. Defines for each feature the neighboring features following a given structure of the data. This can be a connectivity matrix itself or a callable that transforms the data into a connectivity matrix, such as derived from kneighbors_graph. Default is None, i.e, the hierarchical clustering algorithm is unstructured.
- compute_full_tree: ‘auto’ or bool, default=’auto’
Stop early the construction of the tree at n_clusters. This is useful to decrease computation time if the number of clusters is not small compared to the number of features. This option is useful only when specifying a connectivity matrix. Note also that when varying the number of clusters and using caching, it may be advantageous to compute the full tree. It must be
True
ifdistance_threshold
is notNone
. By default compute_full_tree is “auto”, which is equivalent to True when distance_threshold is not None or that n_clusters is inferior to the maximum between 100 or 0.02 * n_samples. Otherwise, “auto” is equivalent to False.- linkage: {“ward”, “complete”, “average”, “single”}, default=”ward”
Which linkage criterion to use. The linkage criterion determines which distance to use between sets of features. The algorithm will merge the pairs of cluster that minimize this criterion.
“ward” minimizes the variance of the clusters being merged.
“complete” or maximum linkage uses the maximum distances between all features of the two sets.
“average” uses the average of the distances of each feature of the two sets.
“single” uses the minimum of the distances between all features of the two sets.
- pooling_func: callable, default=np.mean
This combines the values of agglomerated features into a single value, and should accept an array of shape [M, N] and the keyword argument axis=1, and reduce it to an array of size [M].
- distance_threshold: float, default=None
The linkage distance threshold at or above which clusters will not be merged. If not
None
,n_clusters
must beNone
andcompute_full_tree
must beTrue
.- compute_distances: bool, default=False
Computes distances between clusters even if distance_threshold is not used. This can be used to make dendrogram visualization, but introduces a computational and memory overhead.
- input_cols: Optional[Union[str, List[str]]]
A string or list of strings representing column names that contain features. If this parameter is not specified, all columns in the input DataFrame except the columns specified by label_cols and sample-weight_col parameters are considered input columns.
- label_cols: Optional[Union[str, List[str]]]
A string or list of strings representing column names that contain labels. This is a required param for estimators, as there is no way to infer these columns. If this parameter is not specified, then object is fitted without labels(Like a transformer).
- output_cols: Optional[Union[str, List[str]]]
A string or list of strings representing column names that will store the output of predict and transform operations. The length of output_cols mus match the expected number of output columns from the specific estimator or transformer class used. If this parameter is not specified, output column names are derived by adding an OUTPUT_ prefix to the label column names. These inferred output column names work for estimator’s predict() method, but output_cols must be set explicitly for transformers.
- sample_weight_col: Optional[str]
A string representing the column name containing the examples’ weights. This argument is only required when working with weighted datasets.
- drop_input_cols: Optional[bool], default=False
If set, the response of predict(), transform() methods will not contain input columns.
Methods
fit
(dataset)Fit the hierarchical clustering on the data For more details on this function, see sklearn.cluster.FeatureAgglomeration.fit
score
(dataset)Method not supported for this class.
set_input_cols
(input_cols)Input columns setter.
to_sklearn
()Get sklearn.cluster.FeatureAgglomeration object.
transform
(dataset)Transform a new matrix using the built clustering For more details on this function, see sklearn.cluster.FeatureAgglomeration.transform
Attributes
model_signatures
Returns model signature of current class.