2.2实例:使用k-近邻算法改进约会网站的配对效果
2.2.1准备数据:从文本文件中解析数据
将文本记录到转换Numpy的解析程序
def filezmatrix(filename):
fr = open(filename)
arrayOfLines = fr.readlines()
numberOfLines = len(arrayOLines)
returnMat = zeros((numberOfLines,3))
classLabelVector = {}
index = 0
for line in arrayOlines
line = line.strip()
listFromLine = line.split('\t')
returnMat[index,:] = listFromLine[0:3]
classLabelVector.append(int(listFromLine[-1]))
index += 1
return returnMat,classLabelVector
从上面的代码可以看到,python处理文本文件非常容易。首先我们需要知道文本文件有多少行。打开文件,得到文件的行数。然后创建以零填充的矩阵Numpy。为简化处理,将该矩阵的另一维度设置为固定值3,可以根据实际需求增加相应的代码以适应变化的输入值。循环处理文件中的每行数据,首先使用函数line.strip()截取所有的回车字符,然后使用tab字符\t将上一步得到的整行数据分割成一个元素列表。接着,我们选取前三个元素,将他们存储到特征矩阵中。
注意:必须明确的通知解释器,列表中存储的元素为整型,否则python会将这些元素作为字符串处理。
2.2.2分析数据:使用matplotlib创建散点图