最近在看Machine Learning INACTION ,于是打算写一系列的关于机器学习的文章,今天是第二天
因为使用python,以前一直用sublimeText2当作编辑器,感觉pyth27自带的IDE不好,所以就使用sublimeText2
好了废话少说了
在第一天已经写好了一个简单的KNN算法,现在将这个KNN算法用于其他地方
example 1:
a lady打算和某一些人中的一个出去约会,她有这一些人的一些数据,然后她对他们的态度是分为三类:
她不喜欢,她喜欢一点点,她非常喜欢
现在我们获得了她的数据,想用KNN算法给她一个合理的决策。
但是这些数据存储在一个文件里。我们需要将它提取出来,so 第一个函数出现了,
file2matrix 目的:从文件读取数据
数据主要是这样的:
每一行记载了这样:收入 一起看电影的时间 每星期吃冰淇淋 类型 (sorry 我的超烂的英语。。。。)
def file2matrix(filename):
fr = open(filename)
numberofLines = len(fr.readlines())
returnMat =np.zeros((numberofLines,3))
classLabelVector = []
fr = open(filename)
index = 0
for line in fr.readlines():
line = line.strip()
listFromLine = line.split('\t')
returnMat[index,:] = listFromLine[0:3]
# print listFromLine
# if index == 0 :
# print returnMat
classLabelVector.append(int(listFromLine[-1]))
index += 1
return returnMat,classLabelVector
这样我们就提取出来数据了。(数据可以在网上获得,也可以给我要,我的QQ1020181331)
按理说,现在我们该直接使用算法了,可是有一个问题出现了:
数据是这样的:
40920 8.326976 0.953952 3