1

K Nereast Neighbour を見つけるためのコードを書いています。計算には numPy Python パッケージを使用する必要があります。以下の関数コードを添付しています:

#Import packages
import numpy as np

def knn(Q,R,k,classvar):
#Function that does k-NN and selects the k Nearest Neighbours
#Input parameters
#Q array of Query points, R array of reference points
#k is the no of closest points in k-NN
#classvar is binary class variable either 1 or 0


#for loop over all Query points
#calculate distance from ith Query point to all reference points
        dist = np.apply_along_axis(np.linalg.norm, 1, R-Q)
#sort distances and find indexes
        index=np.argsort(dist)
#pick the kth closest indexes
        knearest=index[1:k]
#find the count of 1's and 0's in the binary class variable
#if count of 1 is more than count of 0 predict class 1 else class 0
        if sum(e==0) > sum(e==1):
           preclassQ=0;
        else:
           preclassQ=1;
        return preclassQ

最初に知りたいのですが、ステートメントを含める必要がありますか

from numpy import *

関数定義では、iPython コマンド ラインで指定しますか?

このコードを knn.py として保存し、コマンド ラインにインポートして、次のように関数を呼び出しました。

In [58]: import knn

In [59]: knn.knn(b,a,1,[(0),( 0),( 1),( 1)])

しかし、関数は実行されず、次のようなエラーが発生します!:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)

/Project/<ipython console> in <module>()

/Project/knn.py in knn(Q, R, k, classvar)
     14         dist = np.apply_along_axis(np.linalg.norm, 1, R-Q)
     15 #sort distances and find indexes

---> 16         index=np.argsort(dist)
     17 #pick the kth closest indexes

     18         knearest=index[1:k]

NameError: global name 'numpy' is not defined
4

2 に答える 2