机器学习实战这本书比较适合像我一样的初学者学习。书中介绍了重要的机器学习算法及python实现代码。由于编程能力一般,我在学习过程中遇到很多不懂的代码。用心做了注释,希望能坚持写下去,自我提升并希望能帮到入门的学习者。笔者能力有限,有所错误的地方希望读者指出并理解~
第二章K~近邻算法
准备:
from numpy import *
import operator
def createDataSet():
group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])#数据集,包含四个点坐标
labels = ['A','A','B','B']#标签
return group,labels
程序清单2-1
def classify0(inX,dataSet,labels,k):#inX:输入向量,dataSet:训练样本集,此处即CReatDataSet函数反回的group,labels:标签向量,k要选取的最近邻点的数目
dataSetSize = dataSet.shape[0]#这里返回矩阵的行数
diffMat = tile(inX,(dataSetSize,1)) - dataSet#tile函数有重复的功能,inX本来有一行一列,现在是datasetsize行,一列,与矩阵dataset相减即可得到坐标相减后的结果
sqDiffMat = diffMat**2#上面得到的坐标相减形成的矩阵,这里乘方是实现欧拉公式,配合下几步计算距离
sqDistances = sqDiffMat.sum(ax