 pyclustering  0.10.1 pyclustring is a Python, C++ data mining library.
pyclustering.utils.metric.distance_metric Class Reference

Distance metric performs distance calculation between two points in line with encapsulated function, for example, euclidean distance or chebyshev distance, or even user-defined. More...

## Public Member Functions

def __init__ (self, metric_type, **kwargs)
Creates distance metric instance for calculation distance between two points. More...

def __call__ (self, point1, point2)
Calculates distance between two points. More...

def get_type (self)
Return type of distance metric that is used. More...

def get_arguments (self)
Return additional arguments that are used by distance metric. More...

def get_function (self)
Return user-defined function for calculation distance metric. More...

def enable_numpy_usage (self)
Start numpy for distance calculation. More...

def disable_numpy_usage (self)
Stop using numpy for distance calculation. More...

## Detailed Description

Distance metric performs distance calculation between two points in line with encapsulated function, for example, euclidean distance or chebyshev distance, or even user-defined.

Example of Euclidean distance metric:

metric = distance_metric(type_metric.EUCLIDEAN)
distance = metric([1.0, 2.5], [-1.2, 3.4])

Example of Chebyshev distance metric:

metric = distance_metric(type_metric.CHEBYSHEV)
distance = metric([0.0, 0.0], [2.5, 6.0])

In following example additional argument should be specified (generally, 'degree' is a optional argument that is equal to '2' by default) that is specific for Minkowski distance:

metric = distance_metric(type_metric.MINKOWSKI, degree=4)
distance = metric([4.0, 9.2, 1.0], [3.4, 2.5, 6.2])

User may define its own function for distance calculation. In this case input is two points, for example, you want to implement your own version of Manhattan distance:

from pyclustering.utils.metric import distance_metric, type_metric
def my_manhattan(point1, point2):
dimension = len(point1)
result = 0.0
for i in range(dimension):
result += abs(point1[i] - point2[i]) * 0.1
return result
metric = distance_metric(type_metric.USER_DEFINED, func=my_manhattan)
distance = metric([2.0, 3.0], [1.0, 3.0])

Definition at line 52 of file metric.py.

## ◆ __init__()

 def pyclustering.utils.metric.distance_metric.__init__ ( self, metric_type, ** kwargs )

Creates distance metric instance for calculation distance between two points.

Parameters
 [in] metric_type (type_metric): [in] **kwargs Arbitrary keyword arguments (available arguments: 'numpy_usage' 'func' and corresponding additional argument for for specific metric types).

Keyword Args:

• func (callable): Callable object with two arguments (point #1 and point #2) or (object #1 and object #2) in case of numpy usage. This argument is used only if metric is 'type_metric.USER_DEFINED'.
• degree (numeric): Only for 'type_metric.MINKOWSKI' - degree of Minkowski equation.
• max_range (array_like): Only for 'type_metric.GOWER' - max range in each dimension. 'data' can be used instead of this parameter.
• data (array_like): Only for 'type_metric.GOWER' - input data that used for 'max_range' calculation. 'max_range' can be used instead of this parameter.
• numpy_usage (bool): If True then numpy is used for calculation (by default is False).

Definition at line 95 of file metric.py.

## ◆ __call__()

 def pyclustering.utils.metric.distance_metric.__call__ ( self, point1, point2 )

Calculates distance between two points.

Parameters
 [in] point1 (list): The first point. [in] point2 (list): The second point.
Returns
(double) Distance between two points.

Definition at line 122 of file metric.py.

## ◆ disable_numpy_usage()

 def pyclustering.utils.metric.distance_metric.disable_numpy_usage ( self )

Stop using numpy for distance calculation.

Useful in case of big amount of small data portion when numpy call is longer than calculation itself. No effect in case of type_metric.USER_DEFINED type.

Definition at line 176 of file metric.py.

## ◆ enable_numpy_usage()

 def pyclustering.utils.metric.distance_metric.enable_numpy_usage ( self )

Start numpy for distance calculation.

Useful in case matrices to increase performance. No effect in case of type_metric.USER_DEFINED type.

Definition at line 165 of file metric.py.

## ◆ get_arguments()

 def pyclustering.utils.metric.distance_metric.get_arguments ( self )

Return additional arguments that are used by distance metric.

Returns

Definition at line 145 of file metric.py.

## ◆ get_function()

 def pyclustering.utils.metric.distance_metric.get_function ( self )

Return user-defined function for calculation distance metric.

Returns
(callable): User-defined distance metric function.

Definition at line 155 of file metric.py.

## ◆ get_type()

 def pyclustering.utils.metric.distance_metric.get_type ( self )

Return type of distance metric that is used.

Returns
(type_metric) Type of distance metric.

Definition at line 135 of file metric.py.

The documentation for this class was generated from the following file:
pyclustering.utils.metric
Module provides various distance metrics - abstraction of the notion of distance in a metric space.
Definition: metric.py:1