《机器学习实战》kNN学习笔记(二)
在约会网站上使用k-近邻算法 首先,把约会数据存放在文本文件datingTestSet中,样本主要包括以下三个特征 每年获得的飞行常客里程数 玩视频游戏所耗时间百分比 每周消耗的冰激凌公升数 在kNN.py中创建名为file2matrix的函数,以此来处理输入格式问题。该函数的输入为文件名字符串,输出为训练样本矩阵和类标签向量 def file2matrix(filename): # 打开文件 fr = open(filename) # 读取文件所有内容 arrayOlines = fr.readlines() # 得到文件行数 numberOfLines = len(arrayOlines) # 返回的NumPy矩阵numberOfLines行,3列 returnMat = np.zeros((numberOfLines, 3)) # 创建分类标签向量 classLabelVector = [] # 行的索引值 index = 0 # 读取每一行 for line in arrayOlines: # 去掉每一行首尾的空白符,例如'\n','\r','\t',' ' line = line.strip() # 将每一行内容根据'\t'符进行切片,本例中一共有4列 listFromLine = line.split('\t') # 将数据的前3列进行提取保存在returnMat矩阵中