机器学习之KNN2

本文介绍了如何使用KNN算法进行决策,包括从文件中提取数据、规格化处理以及数据切分进行验证。通过两个示例展示了KNN在约会决策和手写数字识别的应用。同时,探讨了KNN算法的优势,如简单、适应性强,以及缺点,如计算量大、非规范化输出。
摘要由CSDN通过智能技术生成

最近在看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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值