Dependendo dos conjuntos de dados com os quais você está lidando, há uma grande probabilidade de que você precise executar algum tipo de cálculo de distância ou cálculo de similaridade. Muitas vezes, na maioria dos conjuntos de dados, você está procurando os recursos ou dimensões e isso envolve a computação de produtos escalares, soma quadrada, L2 ou funcionalidade de norma Frobenious. Isso pode ficar bastante confuso em algumas funções. Para facilidade de uso, descobri que o seguinte é muito útil por meio do scikit sklearn:
sklearn.metrics.pairwise.pairwise_distances(X, Y=None, metric='euclidean', n_jobs=1, **kwds)
Este mĂ©todo pega um vetor ou uma matriz de distância e retorna uma matriz de distância. De interesse Ă© a capacidade de obter uma matriz de distância e preservar “com segurança” a compatibilidade com outros algoritmos que usam matrizes vetoriais e podem operar em dados esparsos.
A função pode calcular muitos tipos diferentes de mĂ©tricas ou distâncias ‘euclidiana’, ‘l2’, ‘l1’, ‘manhattan’, ‘bloco da cidade’ . AlĂ©m disso, a função utiliza todas as mĂ©tricas de distância e similaridade em scipy: [‘braycurtis’, ‘canberra’, ‘chebyshev’, ‘correlação’, ‘cosseno’, ‘dados’, ‘hamming’, ‘jaccard’, ‘kulsinski’ , ‘mahalanobis’, ‘matching’, ‘minkowski’, ‘rogerstanimoto’, ‘russellrao’, ‘seuclidean’, ‘sokalmichener’, ‘sokalsneath’, ‘sqeuclidean’, ‘yule’]
Em [34]: from sklearn.metrics.pairwise import euclidean_distances
In [35]: X = [[1,0], [1,1]]
In [36]: euclidean_distances (X, X)
Out [36]:
array ([[0., 1.],
[1., 0.]])
para mais informações: http://scikit-learn.org/