机器学习day3 机器学习实战kNN约会网站的预测

这篇博客讲述了作者在机器学习day3中使用kNN算法对约会网站数据进行预测的过程。通过分析数据,将用户分为三类,并进行了数据的归一化处理。使用自编的KNN分类器,得到5%的误差率,最终成功预测用户魅力类型。
摘要由CSDN通过智能技术生成

从昨天中午开始整这个kNN,昨天晚上一直没吃饭终于整好,无数次的失败,成功之后很开心。

数据集在csdn可以下载到,放在执行python的目录里。

通过数据分析出3类人,没有魅力的,有点魅力的,极具魅力的。

这里关键是给出操作的步骤,忽略的细节请参考《机器学习实战》

step1:

首先是数据的获取,将下载好的数据放在python的目录中,名字为'datingTestSet2.txt',这一点书上写错了,按照'datingTestSet.txt'来的,这一点注意一下。数据有4个值,是飞机行程,游戏时间,冰淇淋数量,人的类型(1,2,3),个人感觉不用在意数据的大小和实际意义,全部归一化即可。

#从文件中提取数据
def createDataSet(filename):
    #取得文件行数
    f = open(filename)
    flines = f.readlines()
    linelen = len(flines)
    #建立一个len * 3的空白矩阵
    mat = zeros((linelen, 3))
    index = 0
    lavels = []
    for line in flines:
        linewithoutblock = line.strip()
        linelist = linewithoutblock.split()
        mat[index, : ] = linelist[0 : 3]
        lavels.append(int(linelist[-1]))
        index += 1
    return mat, lavels

mat, lavels为我们得到的数据转化成的二维矩阵和标签列表

测试结果:

step2:

将数据图形化看数据的分布

分布图如下,能明显看出数据每一类的分布,可以使用KNN算法进行预测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值