机器学习实战源码KNN

本文根据《机器学习实战》一书,详细介绍了KNN算法的实现过程。首先,数据按特征和类别分隔,通过读取文件并处理成numpy数组。接着进行特征归一化,确保数值在0到1之间。然后,计算测试数据与训练数据的欧氏距离,选取最近的K个邻居。通过对这些邻居的类别计数,确定预测类别。最后,使用前numTestVecs个样本作为测试集,应用KNN算法进行预测。
摘要由CSDN通过智能技术生成

按照《机器学习实战》这书的内容来,稍微总结一下。

数据格式:

数据中的格式应该是 特征1 特征2 特征3 ...类别,中间是tab键分割

1.读文件。

将文件中的数据,特征读到numpy  array数组之中,类似于矩阵。特征读到list当中。先读,然后每一行进行处理,处理包括用\t进行分割,然后加到特征数组

特征加到特征的list当中。

#读文件,将文件读到array里。返回一个属性的array[m,n]和一个标签的list
def file2matrix(filename):
    fr=open(filename)
    arrayOLines=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

2.数据归一化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值