1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import numpy import operator
def createData(): group = numpy.array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]]) labels = ['a', 'a', 'A', 'a'] return group, labels
def classify_k(inx, dataset, labels, k): dataSetSize = len(dataset) datasub = numpy.tile(inx, (dataSetSize, 1)) - dataSetSize dataradical = dataset ** 2 datatotal = dataradical.sum(axis=1) distance = numpy.sqrt(datatotal) sort_distance = distance.argsort() classCount = {} for i in range(k): votallabel = labels[sort_distance[i]] classCount[votallabel] = classCount.get(votallabel, 0) + 1 sortedclass = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) return sortedclass[0][0]
def autoNum(dataset): minvals = dataset.min(0) maxvals = dataset.max(0) range = maxvals - minvals zerodata = numpy.zeros(shape=numpy.shape(dataset)) m = dataset.shape(0) zerodata = dataset - numpy.tile(minvals, (m, 1)) zerodata = zerodata / numpy.tile(range, (m, 1)) return zerodata, range, minvals
|