K-近邻算法之约会网站配对及手写识别系统
一、约会网站配对
1.1案例分析
我的朋友海伦一直使用在线约会网站寻找适合自己的约会对象。尽管约会网站会推荐不同的人选,但她没有从中找到喜欢的人。经过一番总结,她发现曾交往过三种类型的人:
□ 不喜欢的人
□ 魅力一般的人
□ 极具魅力的人
海伦收集了自己的一些约会记录的数据信息。每个样本数据占据一行,总共有1000行。
数据文件 datingTestSet2.txt
海伦的样本数据局主要包含以下3种特征:
□ 每年获得的飞行常客里程数
□ 玩视频游戏所耗时间百分比
□ 每周消费的冰淇淋公升数
她希望通过以上这三个特征来进行判断自我感觉。
1.2数据格式
数据存储在文件datingTestSet.txt 中,每个样本数据占据一行,总共有1000行,以下是样本特征
□ 每年获得的飞行常客里程数
□ 玩视频游戏所耗时间百分比
□ 每周消费的冰激凌公升数
1.3代码实现
def file2matrix1(filename):
fr = open(filename)
arrayLines = fr.readlines() # 读取数据
numberLines = len(arrayLines) # 记录行数
returnMat = zeros((numberLines,3))
classlabelVector = []
index = 0
for line in arrayLines:
line = line.strip()
listFromLine = line.split('\t')
returnMat[index,:] = listFromLine[0:3]
classlabelVector.append(int(listFromLine[-1]))
index +=1
return returnMat,classlabelVector
def file2matrix(filename):
love_dictionary={
'largeDoses':3