Find K-nearest neighbour with custom distance metric I am working on finding similar items. Each item has a representation as a vector of features. Instead of using one kind of distance metric for each feature like "ëuclidean" distance. I want a mixture of distance . For example euclidean for some features and jaccard for some features. 
Is it possible to do in scikit-learn in python
 A: Yes it is. As stated by @Jeremie Clos, you can specify a custom metric. From the official documentation:
class sklearn.neighbors.NearestNeighbors(n_neighbors=5, radius=1.0, 
    algorithm='auto', leaf_size=30, 
    metric='minkowski', p=2, metric_params=None, n_jobs=1, **kwargs)


metric : string or callable, default ‘minkowski’ metric to use for
  distance computation. 
Any metric from scikit-learn or
  scipy.spatial.distance can be used. 
If metric is a callable function,
  it is called on each pair of instances (rows) and the resulting value
  recorded. The callable should take two arrays as input and return one
  value indicating the distance between them. 
This works for Scipy’s
  metrics, but is less efficient than passing the metric name as a
  string. Distance matrices are not supported. 
Valid values for metric
  are: from scikit-learn: 
[‘cityblock’, ‘cosine’, ‘euclidean’, ‘l1’,
  ‘l2’, ‘manhattan’] 
from scipy.spatial.distance:
[‘braycurtis’,
  ‘canberra’, ‘chebyshev’, ‘correlation’, ‘dice’, ‘hamming’, ‘jaccard’,
  ‘kulsinski’, ‘mahalanobis’, ‘matching’, ‘minkowski’, ‘rogerstanimoto’,
  ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’,
  ‘sqeuclidean’, ‘yule’] 
See the documentation for
  scipy.spatial.distance for details on these metrics.

