ScipyDist#
- class ScipyDist(metric=‘euclidean’, p=2, colalign=‘intersect’, var_weights=None, metric_kwargs=None)[source]#
Interface to scipy distances.
- computes pairwise distances using scipy.spatial.distance.cdist
- includes Euclidean distance and p-norm (Minkowski) distance
note: weighted distances are not supported
- Parameters
- metricstring or function, as in cdist; default = ‘euclidean’
- if string, one of: ‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘cityblock’,
‘correlation’, ‘cosine’, ‘dice’, ‘euclidean’, ‘hamming’, ‘jaccard’, ‘jensenshannon’, ‘kulsinski’, ‘mahalanobis’, ‘matching’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’
if function, should have signature 1D-np.array x 1D-np.array -> float
- p: if metric=’minkowski’, the “p” in “p-norm”, otherwise irrelevant
- colalignstring, one of ‘intersect’ (default), ‘force-align’, ‘none’
controls column alignment if X, X2 passed in fit are pd.DataFrame columns between X and X2 are aligned via column names if ‘intersect’, distance is computed on columns occurring both in X and X2,
other columns are discarded; column ordering in X2 is copied from X
- if ‘force-align’, raises an error if the set of columns in X, X2 differs;
column ordering in X2 is copied from X
- if ‘none’, X and X2 are passed through unmodified (no columns are aligned)
note: this will potentially align “non-matching” columns
- var_weights1D np.array of float or None, default=None
weight/scaling vector applied to variables in X/X2 before being passed to cdist, i-th col of X/X2 is multiplied by var_weights[i] if None, equivalent to all-ones vector
- metric_kwargsdict, optional, default=None
any kwargs passed to the metric in addition, i.e., to the function cdist common kwargs: “w” : array-like, same length as X.columns, weights for metric refer to scipy.spatial.distance.dist for a documentation of other extra kwargs
- Attributes
is_fittedWhether fit has been called.
Methods
__call__(X[, X2])Compute distance/kernel matrix, call shorthand.
Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters.
clone_tags(estimator[, tag_names])clone/mirror tags from another estimator as dynamic override.
create_test_instance([parameter_set])Construct Estimator instance if possible.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit([X, X2])Fit method for interface compatibility (no logic inside).
get_class_tag(tag_name[, tag_value_default])Get tag value from estimator class (only class tags).
Get class tags from estimator class and all its parent classes.
get_fitted_params([deep])Get fitted parameters.
Get parameter defaults for the object.
Get parameter names for the object.
get_params([deep])Get parameters for this estimator.
get_tag(tag_name[, tag_value_default, …])Get tag value from estimator class and dynamic tag overrides.
get_tags()Get tags from estimator class and dynamic tag overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
Check if the object is composite.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
reset()Reset the object to a clean post-init state.
save([path])Save serialized self to bytes-like object or to (.zip) file.
set_params(**params)Set the parameters of this object.
set_tags(**tag_dict)Set dynamic tags to given values.
transform(X[, X2])Compute distance/kernel matrix.
- classmethod get_test_params(parameter_set=‘default’)[source]#
Return testing parameter settings for the estimator.
- Parameters
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set. There are currently no reserved values for distance/kernel transformers.
- Returns
- paramsdict or list of dict, default = {}
Parameters to create testing instances of the class Each dict are parameters to construct an “interesting” test instance, i.e., MyClass(**params) or MyClass(**params[i]) creates a valid test instance. create_test_instance uses the first (or only) dictionary in params
- check_is_fitted()[source]#
Check if the estimator has been fitted.
- Raises
- NotFittedError
If the estimator has not been fitted yet.
- clone()[source]#
Obtain a clone of the object with same hyper-parameters.
A clone is a different object without shared references, in post-init state. This function is equivalent to returning sklearn.clone of self. Equal in value to type(self)(**self.get_params(deep=False)).
- Returns
- instance of type(self), clone of self (see above)
- clone_tags(estimator, tag_names=None)[source]#
clone/mirror tags from another estimator as dynamic override.
- Parameters
- estimatorestimator inheriting from :class:BaseEstimator
- tag_namesstr or list of str, default = None
Names of tags to clone. If None then all tags in estimator are used as tag_names.
- Returns
- Self
Reference to self.
Notes
Changes object state by setting tag values in tag_set from estimator as dynamic tags in self.
- classmethod create_test_instance(parameter_set=‘default’)[source]#
Construct Estimator instance if possible.
- Parameters
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- Returns
- instanceinstance of the class with default parameters
Notes
get_test_params can return dict or list of dict. This function takes first or single dict that get_test_params returns, and constructs the object with that.
- classmethod create_test_instances_and_names(parameter_set=‘default’)[source]#
Create list of all test instances and a list of names for them.
- Parameters
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- Returns
- objslist of instances of cls
i-th instance is cls(**cls.get_test_params()[i])
- nameslist of str, same length as objs
i-th element is name of i-th instance of obj in tests convention is {cls.__name__}-{i} if more than one instance otherwise {cls.__name__}
- parameter_setstr, default=”default”
Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.
- fit(X=None, X2=None)[source]#
Fit method for interface compatibility (no logic inside).
- classmethod get_class_tag(tag_name, tag_value_default=None)[source]#
Get tag value from estimator class (only class tags).
- Parameters
- tag_namestr
Name of tag value.
- tag_value_defaultany type
Default/fallback value if tag is not found.
- Returns
- tag_value
Value of the tag_name tag in self. If not found, returns tag_value_default.
- classmethod get_class_tags()[source]#
Get class tags from estimator class and all its parent classes.
- Returns
- collected_tagsdict
Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance. NOT overridden by dynamic tags set by set_tags or mirror_tags.
- get_fitted_params(deep=True)[source]#
Get fitted parameters.
- State required:
Requires state to be “fitted”.
- Parameters
- deepbool, default=True
Whether to return fitted parameters of components.
If True, will return a dict of parameter name : value for this object, including fitted parameters of fittable components (= BaseEstimator-valued parameters).
If False, will return a dict of parameter name : value for this object, but not include fitted parameters of components.
- Returns
- fitted_paramsdict with str-valued keys
Dictionary of fitted parameters, paramname : paramvalue keys-value pairs include:
always: all fitted parameters of this object, as via get_param_names values are fitted parameter value for that key, of this object
if deep=True, also contains keys/value pairs of component parameters parameters of components are indexed as [componentname]__[paramname] all parameters of componentname appear as paramname with its value
if deep=True, also contains arbitrary levels of component recursion, e.g., [componentname]__[componentcomponentname]__[paramname], etc
- classmethod get_param_defaults()[source]#
Get parameter defaults for the object.
- Returns
- default_dict: dict with str keys
keys are all parameters of cls that have a default defined in __init__ values are the defaults, as defined in __init__
- classmethod get_param_names()[source]#
Get parameter names for the object.
- Returns
- param_names: list of str, alphabetically sorted list of parameter names of cls
- get_params(deep=True)[source]#
Get parameters for this estimator.
- Parameters
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns
- paramsdict
Parameter names mapped to their values.
- get_tag(tag_name, tag_value_default=None, raise_error=True)[source]#
Get tag value from estimator class and dynamic tag overrides.
- Parameters
- tag_namestr
Name of tag to be retrieved
- tag_value_defaultany type, optional; default=None
Default/fallback value if tag is not found
- raise_errorbool
whether a ValueError is raised when the tag is not found
- Returns
- tag_value
Value of the tag_name tag in self. If not found, returns an error if raise_error is True, otherwise it returns tag_value_default.
- Raises
- ValueError if raise_error is True i.e. if tag_name is not in self.get_tags(
- ).keys()
- get_tags()[source]#
Get tags from estimator class and dynamic tag overrides.
- Returns
- collected_tagsdict
Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance and then any overrides and new tags from _tags_dynamic object attribute.
- is_composite()[source]#
Check if the object is composite.
A composite object is an object which contains objects, as parameters. Called on an instance, since this may differ by instance.
- Returns
- composite: bool, whether self contains a parameter which is BaseObject
- classmethod load_from_path(serial)[source]#
Load object from file location.
- Parameters
- serialresult of ZipFile(path).open(“object)
- Returns
- deserialized self resulting in output at path, of cls.save(path)
- classmethod load_from_serial(serial)[source]#
Load object from serialized memory container.
- Parameters
- serial1st element of output of cls.save(None)
- Returns
- deserialized self resulting in output serial, of cls.save(None)
- reset()[source]#
Reset the object to a clean post-init state.
Equivalent to sklearn.clone but overwrites self. After self.reset() call, self is equal in value to type(self)(**self.get_params(deep=False))
Detail behaviour: removes any object attributes, except:
hyper-parameters = arguments of __init__ object attributes containing double-underscores, i.e., the string “__”
runs __init__ with current values of hyper-parameters (result of get_params)
Not affected by the reset are: object attributes containing double-underscores class and object methods, class attributes
- save(path=None)[source]#
Save serialized self to bytes-like object or to (.zip) file.
Behaviour: if path is None, returns an in-memory serialized self if path is a file location, stores self at that location as a zip file
saved files are zip files with following contents: _metadata – contains class of self, i.e., type(self) _obj – serialized self. This class uses the default serialization (pickle).
- Parameters
- pathNone or file location (str or Path)
if None, self is saved to an in-memory object if file location, self is saved to that file location. If:
path=”estimator” then a zip file estimator.zip will be made at cwd. path=”/home/stored/estimator” then a zip file estimator.zip will be stored in /home/stored/.
- Returns
- if path is None – in-memory serialized self
- if path is file location – ZipFile with reference to the file
- set_params(**params)[source]#
Set the parameters of this object.
The method works on simple estimators as well as on nested objects. The latter have parameters of the form
<component>__<parameter>so that it’s possible to update each component of a nested object.- Parameters
- **paramsdict
BaseObject parameters
- Returns
- selfreference to self (after parameters have been set)
- set_tags(**tag_dict)[source]#
Set dynamic tags to given values.
- Parameters
- tag_dictdict
Dictionary of tag name : tag value pairs.
- Returns
- Self
Reference to self.
Notes
Changes object state by settting tag values in tag_dict as dynamic tags in self.
- transform(X, X2=None)[source]#
Compute distance/kernel matrix.
- Behaviour: returns pairwise distance/kernel matrix
between samples in X and X2 (equal to X if not passed)
- Parameters
- X: pd.DataFrame of length n, or 2D np.array with n rows
- X2: pd.DataFrame of length m, or 2D np.array with m rows, optional
default X2 = X
- Returns
- distmat: np.array of shape [n, m]
(i,j)-th entry contains distance/kernel between X.iloc[i] and X2.iloc[j]