从scikit学习具有自己距离函数的k-NN算法



我想使用scikit learn中的k-NN算法。对于距离函数,我想使用我自己的函数。这些应该通过tanimoto系数来计算。

我编写了tanimo函数,并将其交给scikit-learn中的度量参数。

我的数据只包含1和0(因此所有功能都只有1或0)。

对于tanimo,im计算x和y中的所有1,并返回skalar=系数。KNN函数的调用方式如下:KNeighborsClassifier(metric=tanimoto).fit(X_train,y_train)

def tanimoto(x,y):
    print x
    print y
    a=x.tolist()
    b=y.tolist()

    c=np.count_nonzero(x==y)
    a1=a.count(1.0)
    b1=b.count(1.0)
    return float(c)/(a1 + b1 - c)

如果我打印x和y,它们实际上应该只有1和0?

tanimoto中打印x,y的输出为:

X:
[ 0.6371319   0.54557285  0.30214217  0.14690307  0.49778446  0.89183238
  0.52445514  0.63379164  0.71873681  0.55008567]
Y:
[ 0.6371319   0.54557285  0.30214217  0.14690307  0.49778446  0.89183238
  0.52445514  0.63379164  0.71873681  0.55008567]
X:
[ 0.          0.          0.          0.02358491  0.00471698  0.          0.
  0.          0.          0.00471698  0.00471698  0.00471698  0.02830189
  0.00943396  0.     .............................52358491  0.53773585
  0.63207547  0.51886792  0.66037736  0.75        0.57075472  0.59433962
  0.63679245  0.8490566   0.71698113  0.02358491]
Y:
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.
  1.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  1.  0.  0.  1.  0.  1.  0.  0.  1.  0.  1.  1.  0.
  1.  1.  1.  1.  0.] 
  # and so on ... X is always a skalar vector and y the vector how it should be. (only 1 and 0)

我的X_train矢量:

[[ 0.  0.  0. ...,  1.  1.  0.]
 [ 0.  0.  0. ...,  1.  1.  0.]
 [ 0.  0.  0. ...,  1.  1.  0.]
 ...,
 [ 0.  0.  0. ...,  1.  1.  0.]
 [ 0.  0.  0. ...,  0.  1.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]]

这是的代码示例

import numpy as np
from sklearn.neighbors import NearestNeighbors  

def tanimoto(x,b):
    print "X  OUTPUTn  ",x,"B OUTPUTn",b
    c=np.sum(x==b)
    a1 = np.sum(x)
    b1 = np.sum(b)
    if (a1 + b1 - c)==0:
        return 0
    else:
        return float(c)/(a1 + b1 - c)
tests=[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]]
classifiers=NearestNeighbors( n_neighbors=4,algorithm='ball_tree',metric=tanimoto).fit(tests)

#example

以及整个输出,如果我在tanimoto函数中打印出x,b

------------ new Fingerprint ------------
fingerprint:  macc
-----------------------------------------
X  OUTPUT
   [ 0.86899132  0.85534082  0.21453329  0.24435568  0.32321695  0.6926369
  0.5124301   0.98725159  0.01685611  0.58985301] B OUTPUT
[ 0.86899132  0.85534082  0.21453329  0.24435568  0.32321695  0.6926369
  0.5124301   0.98725159  0.01685611  0.58985301]
X  OUTPUT
   [ 0.          0.          0.          0.09090909  0.          0.          0.
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.          0.          0.09090909  0.          0.
  0.09090909  0.          0.          0.09090909  0.09090909  0.          0.
  0.          0.          0.          0.          0.09090909  0.09090909
  0.09090909  0.09090909  0.          0.          0.09090909  0.
  0.09090909  0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.          0.          0.          0.09090909  0.09090909  0.18181818
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.09090909  0.          0.09090909  0.36363636  0.18181818  0.18181818
  0.09090909  0.18181818  0.          0.          0.27272727  0.09090909
  0.09090909  0.27272727  0.09090909  0.09090909  0.09090909  0.09090909
  0.09090909  0.18181818  0.          0.36363636  0.          0.09090909
  0.09090909  0.27272727  0.27272727  0.18181818  0.          0.09090909
  0.36363636  0.18181818  0.18181818  0.27272727  0.45454545  0.18181818
  0.27272727  0.09090909  0.09090909  0.36363636  0.18181818  0.45454545
  0.          0.36363636  0.45454545  0.45454545  0.45454545  0.36363636
  0.54545455  0.          0.54545455  0.36363636  0.45454545  0.27272727
  0.09090909  0.54545455  0.18181818  0.09090909  0.27272727  0.45454545
  0.27272727  0.45454545  0.45454545  0.36363636  0.54545455  0.54545455
  0.09090909  0.18181818  0.27272727  0.18181818  0.36363636  0.
  0.54545455  0.          0.45454545  0.54545455  0.18181818  0.18181818
  0.18181818  0.36363636  0.18181818  0.54545455  0.45454545  0.36363636
  0.54545455  0.18181818  0.45454545  0.54545455  0.54545455  0.18181818
  0.45454545  0.45454545  0.63636364  0.54545455  0.54545455  0.63636364
  0.45454545  0.72727273  0.63636364  0.54545455  0.54545455  0.63636364
  0.90909091  0.63636364  0.18181818] B OUTPUT
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  1.  0.  1.  0.  1.  1.  0.
  0.  0.  0.  0.  0.  1.  1.  0.  0.  0.  1.  1.  0.  1.  0.  1.  1.  1.
  1.  1.  1.  0.  0.  1.  1.  0.  0.  1.  0.  0.  1.  1.  1.  1.  0.  1.
  1.  1.  0.  1.  0.  0.  1.  0.  1.  0.  1.  1.  1.  0.  0.  0.  0.  1.
  1.  0.  1.  0.  1.  0.  1.  0.  0.  1.  1.  1.  1.  1.  1.  1.  1.  1.
  1.  1.  1.  1.  0.]
X  OUTPUT
   [ 0.          0.          0.          0.09090909  0.          0.          0.
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.          0.          0.09090909  0.          0.
  0.09090909  0.          0.          0.09090909  0.09090909  0.          0.
  0.          0.          0.          0.          0.09090909  0.09090909
  0.09090909  0.09090909  0.          0.          0.09090909  0.
  0.09090909  0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.          0.          0.          0.09090909  0.09090909  0.18181818
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.09090909  0.          0.09090909  0.36363636  0.18181818  0.18181818
  0.09090909  0.18181818  0.          0.          0.27272727  0.09090909
  0.09090909  0.27272727  0.09090909  0.09090909  0.09090909  0.09090909
  0.09090909  0.18181818  0.          0.36363636  0.          0.09090909
  0.09090909  0.27272727  0.27272727  0.18181818  0.          0.09090909
  0.36363636  0.18181818  0.18181818  0.27272727  0.45454545  0.18181818
  0.27272727  0.09090909  0.09090909  0.36363636  0.18181818  0.45454545
  0.          0.36363636  0.45454545  0.45454545  0.45454545  0.36363636
  0.54545455  0.          0.54545455  0.36363636  0.45454545  0.27272727
  0.09090909  0.54545455  0.18181818  0.09090909  0.27272727  0.45454545
  0.27272727  0.45454545  0.45454545  0.36363636  0.54545455  0.54545455
  0.09090909  0.18181818  0.27272727  0.18181818  0.36363636  0.
  0.54545455  0.          0.45454545  0.54545455  0.18181818  0.18181818
  0.18181818  0.36363636  0.18181818  0.54545455  0.45454545  0.36363636
  0.54545455  0.18181818  0.45454545  0.54545455  0.54545455  0.18181818
  0.45454545  0.45454545  0.63636364  0.54545455  0.54545455  0.63636364
  0.45454545  0.72727273  0.63636364  0.54545455  0.54545455  0.63636364
  0.90909091  0.63636364  0.18181818] B OUTPUT
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.
  0.  0.  0.  0.  1.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.]
X  OUTPUT
   [ 0.          0.          0.          0.09090909  0.          0.          0.
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.          0.          0.09090909  0.          0.
  0.09090909  0.          0.          0.09090909  0.09090909  0.          0.
  0.          0.          0.          0.          0.09090909  0.09090909
  0.09090909  0.09090909  0.          0.          0.09090909  0.
  0.09090909  0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.          0.          0.          0.09090909  0.09090909  0.18181818
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.09090909  0.          0.09090909  0.36363636  0.18181818  0.18181818
  0.09090909  0.18181818  0.          0.          0.27272727  0.09090909
  0.09090909  0.27272727  0.09090909  0.09090909  0.09090909  0.09090909
  0.09090909  0.18181818  0.          0.36363636  0.          0.09090909
  0.09090909  0.27272727  0.27272727  0.18181818  0.          0.09090909
  0.36363636  0.18181818  0.18181818  0.27272727  0.45454545  0.18181818
  0.27272727  0.09090909  0.09090909  0.36363636  0.18181818  0.45454545
  0.          0.36363636  0.45454545  0.45454545  0.45454545  0.36363636
  0.54545455  0.          0.54545455  0.36363636  0.45454545  0.27272727
  0.09090909  0.54545455  0.18181818  0.09090909  0.27272727  0.45454545
  0.27272727  0.45454545  0.45454545  0.36363636  0.54545455  0.54545455
  0.09090909  0.18181818  0.27272727  0.18181818  0.36363636  0.
  0.54545455  0.          0.45454545  0.54545455  0.18181818  0.18181818
  0.18181818  0.36363636  0.18181818  0.54545455  0.45454545  0.36363636
  0.54545455  0.18181818  0.45454545  0.54545455  0.54545455  0.18181818
  0.45454545  0.45454545  0.63636364  0.54545455  0.54545455  0.63636364
  0.45454545  0.72727273  0.63636364  0.54545455  0.54545455  0.63636364
  0.90909091  0.63636364  0.18181818] B OUTPUT
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.
  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  1.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  1.  1.
  1.  1.  1.  0.  1.  1.  1.  1.  1.  1.  1.  0.  0.  1.  0.  1.  0.  1.
  1.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  1.  0.  0.  1.  0.  0.  1.
  0.  1.  1.  1.  0.  1.  0.  0.  1.  1.  1.  1.  1.  1.  0.  1.  1.  1.
  1.  1.  1.  1.  0.]
X  OUTPUT
   [ 0.          0.          0.          0.09090909  0.          0.          0.
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.          0.          0.09090909  0.          0.
  0.09090909  0.          0.          0.09090909  0.09090909  0.          0.
  0.          0.          0.          0.          0.09090909  0.09090909
  0.09090909  0.09090909  0.          0.          0.09090909  0.
  0.09090909  0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.          0.          0.          0.09090909  0.09090909  0.18181818
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.09090909  0.          0.09090909  0.36363636  0.18181818  0.18181818
  0.09090909  0.18181818  0.          0.          0.27272727  0.09090909
  0.09090909  0.27272727  0.09090909  0.09090909  0.09090909  0.09090909
  0.09090909  0.18181818  0.          0.36363636  0.          0.09090909
  0.09090909  0.27272727  0.27272727  0.18181818  0.          0.09090909
  0.36363636  0.18181818  0.18181818  0.27272727  0.45454545  0.18181818
  0.27272727  0.09090909  0.09090909  0.36363636  0.18181818  0.45454545
  0.          0.36363636  0.45454545  0.45454545  0.45454545  0.36363636
  0.54545455  0.          0.54545455  0.36363636  0.45454545  0.27272727
  0.09090909  0.54545455  0.18181818  0.09090909  0.27272727  0.45454545
  0.27272727  0.45454545  0.45454545  0.36363636  0.54545455  0.54545455
  0.09090909  0.18181818  0.27272727  0.18181818  0.36363636  0.
  0.54545455  0.          0.45454545  0.54545455  0.18181818  0.18181818
  0.18181818  0.36363636  0.18181818  0.54545455  0.45454545  0.36363636
  0.54545455  0.18181818  0.45454545  0.54545455  0.54545455  0.18181818
  0.45454545  0.45454545  0.63636364  0.54545455  0.54545455  0.63636364
  0.45454545  0.72727273  0.63636364  0.54545455  0.54545455  0.63636364
  0.90909091  0.63636364  0.18181818] B OUTPUT
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.
  0.  1.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.
  0.  0.  0.  0.  0.  0.  1.  0.  1.  1.  0.  1.  0.  1.  0.  1.  0.  1.
  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  1.  0.  0.  0.  0.  0.  0.
  0.  1.  0.  0.  0.  0.  1.  0.  1.  0.  0.  0.  0.  1.  0.  0.  0.  0.
  0.  1.  1.  1.  0.]
X  OUTPUT
   [ 0.          0.          0.          0.09090909  0.          0.          0.
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.          0.          0.09090909  0.          0.
  0.09090909  0.          0.          0.09090909  0.09090909  0.          0.
  0.          0.          0.          0.          0.09090909  0.09090909
  0.09090909  0.09090909  0.          0.          0.09090909  0.
  0.09090909  0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.          0.          0.          0.09090909  0.09090909  0.18181818
  0.          0.          0.09090909  0.          0.          0.09090909
  0.          0.09090909  0.09090909  0.          0.09090909  0.09090909
  0.09090909  0.          0.09090909  0.36363636  0.18181818  0.18181818
  0.09090909  0.18181818  0.          0.          0.27272727  0.09090909
  0.09090909  0.27272727  0.09090909  0.09090909  0.09090909  0.09090909
  0.09090909  0.18181818  0.          0.36363636  0.          0.09090909
  0.09090909  0.27272727  0.27272727  0.18181818  0.          0.09090909
  0.36363636  0.18181818  0.18181818  0.27272727  0.45454545  0.18181818
  0.27272727  0.09090909  0.09090909  0.36363636  0.18181818  0.45454545
  0.          0.36363636  0.45454545  0.45454545  0.45454545  0.36363636
  0.54545455  0.          0.54545455  0.36363636  0.45454545  0.27272727
  0.09090909  0.54545455  0.18181818  0.09090909  0.27272727  0.45454545
  0.27272727  0.45454545  0.45454545  0.36363636  0.54545455  0.54545455
  0.09090909  0.18181818  0.27272727  0.18181818  0.36363636  0.
  0.54545455  0.          0.45454545  0.54545455  0.18181818  0.18181818
  0.18181818  0.36363636  0.18181818  0.54545455  0.45454545  0.36363636
  0.54545455  0.18181818  0.45454545  0.54545455  0.54545455  0.18181818
  0.45454545  0.45454545  0.63636364  0.54545455  0.54545455  0.63636364
  0.45454545  0.72727273  0.63636364  0.54545455  0.54545455  0.63636364
  0.90909091  0.63636364  0.18181818] B OUTPUT
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  1.  1.  0.  0.  1.  0.  0.  0.  0.  1.  1.  0.  0.  0.  0.
  0.  1.  0.  0.  1.  0.  1.  1.  0.  0.  0.  0.  0.  1.  1.  1.  0.  0.
  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.  0.  1.  0.
  0.  0.  0.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.
  0.  0.  0.  0.  1.  1.  0.  0.  0.  0.  1.  0.  0.  1.  1.  0.  0.  0.
  0.  0.  1.  0.  1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  1.  0.  0.
  0.  0.  1.  0.  1.]

在这些数据中,我只使用了11个样本

我只是从我的样本和属性提取中复制粘贴了测试向量,但我遇到了同样的问题。问题=X和B不是1和0,X也应该只包含1和0的

您使用的是球树。如文件所述:

球树递归地将数据划分为由质心C和半径r[…]定义的节点。通过这种设置,测试点和质心之间的单个距离计算就足以确定到节点内所有点的距离的下限和上限。

换句话说,球树不仅仅计算点之间的距离,它还经常计算点和某组点的质心之间的距离。尽管所有的点都有坐标0或1,但其中某一组点的质心通常不会。

相关内容

  • 没有找到相关文章

最新更新