I was trying to use DBSCAN algorithm from scikit-learn library with cosine metric but was stuck with the error. The line of code is
db = DBSCAN(eps=1, min_samples=2, metric='cosine').fit(X)
where X
is a csr_matrix
. The error is the following:
Metric 'cosine' not valid for algorithm 'auto',
though the documentation says that it is possible to use this metric.
I tried to use option algorithm='kd_tree'
and 'ball_tree'
but got the same. However, there is no error if I use euclidean
or, say, l1
metric.
The matrix X
is large, so I can't use a precomputed matrix of pairwise distances.
I use python 2.7.6
and scikit-learn 0.16.1
.
My dataset doesn't have a full row of zeros, so cosine metric is well-defined.
'auto'
algorithm
-keyword should use'brute'
rather than try and fail using'ball_tree'
? (I'd agree.) – Subclavius