机器学习实战-kNN-2.2.1

import numpy as np
"""
Parameters:
    filename - 文件名
Returns:
    returnMat - 特征矩阵
    classLabelVector - 分类Label向量
"""
# 函数说明:打开并解析文件,对数据进行分类:1代表不喜欢,2代表魅力一般,3代表极具魅力
def file2matrix(filename):
    fr=open(filename)#打开文件
    arrayOfLines=fr.readlines()#读取文件的所有内容
    numberOflines=len(arrayOfLines)#得到文件的行数
    returnMat=np.zeros((numberOflines,3))#创建返回的NumPy矩阵
    classLabelVector=[]#返回分类标签向量
    index=0
    #循环处理每一行的文件
    for line in arrayOfLines:
        line =line.strip()#s.strip(rm),当rm空时,默认删除空白符(包括'\n','\r','\t',' ')
        listFromLine=line.split('\t')#将上一行得到的整行数据根据“\t"(tap)分割为一个元素列表
        returnMat[index,:]=listFromLine[0:3]#选取前三列元素,每次循环是一行
        #classLabelVector.append(listFromLine[-1])#输出标签的文本
        ####根据文本中标记的喜欢的程度进行分类,1代表不喜欢,2代表魅力一般,3代表极具魅力
        if listFromLine[-1] == 'didntLike':
            classLabelVector.append(1)
        elif listFromLine[-1] == 'smallDoses':
            classLabelVector.append(2)
        elif listFromLine[-1] == 'largeDoses':
            classLabelVector.append(3)
        index+=1
    return returnMat,classLabelVector

if __name__=="__main__":
    filename="datingTestSet.txt"
    datingDataMat, datingLabels=file2matrix(filename)
    print(datingDataMat)
    print(datingLabels)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值