函数学习]机器学习实战"/>
[python函数学习]机器学习实战
[python函数学习]机器学习实战 - k近邻
K近邻(KNN)
在测试点周围寻找近邻的K个点,将测试点标记成其中出现频率最多的分类。
def classify0(inX, dataSet, labels, k):#计算距离dataSetSize = dataSet.shape[0]diffMat = tile(inX, (dataSetSize, 1)) - dataSet #tile函数将数组重复(m维, 每维n次)sqDiffMat = diffMat**2sqDistances = sqDiffMat.sum(axis = 1) # axis = 1时列相加 压缩为一列distances = sqDistances**0.5sortedDistIndicies = distances.argsort() #argsotr从小到大排序 返回索引值 [3,1,2] -> [1, 2, 0] 返回序#选择距离最小的k个点classCount = {}for i in range(k):voteIlabel = labels[sortedDistIndicies[i]]classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1 #get函数 key -- 字典中要查找的键。default -- 如果指定键的值不存在时,返回该默认值值。# 返回指定键的值,如果值不在字典中返回默认值。#选择频率最多的类 sortedClassCount = sorted(classCount.items(), key = operator.itemgetter(1), reverse = True)#items 将字典拆分为列表#sorted(iterable, cmp=None, key=None, reverse=False)#可迭代对象, 比较函数, 进行比较的元素 指定可迭代对象中的一个元素来进行排序, 排序规则 T降序 F升序# operator.itemgetter(i) 获得第i维数据return sortedClassCount[0][0]
tile(A,(repsM, repsN))
将A重复repsM维,repsN次
A和reps都是array_like
A的类型众多,几乎所有类型都可以:array, list, tuple, dict, matrix以及基本数据类型int, string, float以及bool类型。
reps的类型也很多,可以是tuple,list, dict, array, int, bool.但不可以是float, string, matrix类型。
numpy.sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)
a – 待求数组\向量\矩阵
axis – 求和的方向,None或没有axis参数表示全部数据相加,axis=0,表示按列相加,axis=1,表示按行相加,对于一维数组,只有axis=0,表示按行相加,没有axis=1,输入axis=1会报错
argsort(a, axis=-1, kind=‘quicksort’, order=None)
从小到大排序a,返回序索引值
axis – axis=0,按列索引。 axis=1,按行索引。
kind – ‘quicksort’(快速排序) ‘mergesort’(归并排序) ‘heapsort’(堆排序)
order – order: 如果数组包含字段,则是要排序的字段
dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回默认值。
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值。
sorted(iterable, cmp=None, key=None, reverse=False)
对所有可迭代的对象进行排序操作。返回重新排序的对象
iterable – 可迭代对象。
cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
dict.items()
将字典拆分为列表,返回拆分后的列表。
operator.itemgetter(i)
获得第i维数据,函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。
更多推荐
[python函数学习]机器学习实战
发布评论