今のところk最近傍法で分類するために、私は少しの機械学習(およびPython)を学ぼうとしています。このエラーが発生します(何が起こっているのですか?):
dataSetSize = dataSet.shape[0]
TypeError: 'tuple' object is not callable
呼び出し可能かどうかの確認:
>>> callable(group)
False
>>> callable(labels)
False
>>> g = group()
それらは誤りですが、どのようにしてそれらを真にするのですか?
データ:
>>> group
array([[ 1. , 1.1],
[ 1. , 1. ],
[ 0. , 0. ],
[ 0. , 0.1]])
>>> labels
['A', 'A', 'B', 'B']
グループ変数でこれを行うと、次のようになります。
group.shape[0]
4
この関数への私の呼び出し:
>>> kNN.classify0([0, 0], group, labels, 3)
def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0]
diffMat = tile(inX, (dataSetSize,1)) - dataSet
sqDiffMat = diffMat**2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances**0.5
sortedDistIndices = distances.argsort()
classCount = {}
for i in range(k):
voteIlabel = labels[sortedDistIndices[i]]
classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]