• 大小: 3.09KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-05-11
  • 语言: Python
  • 标签: KNN  实战  

资源简介


资源截图

代码片段和文件信息

#导入numpy包用于科学计算
#导入operator包用于运算符计算
from numpy import *
import operator
import matplotlib.pyplot as plt

#距离计算函数
#inX 用于分类的输入向量
#dataSet 输入的训练样本集
#labels 标签向量
#k 选择最近邻的数目
def classify0(a dataSet labels k):
    dataSetSize = dataSet.shape[0]                                    #获得数据集的个数
    #差值计算,距离相减
    diffMat = tile(a (dataSetSize1)) - dataSet                    #numpy中tile函数用于将inX,生成dataSetSize行1列的数据
    #差值平方
    sqDiffMat = diffMat**2
    #平方和 axis=1表示将数据的每一行相加
    sqDistances = sqDiffMat.sum(axis=1)
    #开平方
    distances = sqDistances**0.5                                      #0.5次方相当于开平方得到所有点的距离(distances是一个列表,包含了4个点与a点的距离)
    #排序   argsort()序号排序
    sortedDistIndicies = distances.argsort()                          #由低到高进行排序,此处得到的数据排序后的索引值
    print(‘距离最近的k个邻居是:‘dataSet[sortedDistIndicies[:k]])
    # print(‘对应的标签是:‘labels[sortedDistIndicies[:k]])

    classCount={}                                                     #初始化统计字典
    #找出前k个值
    for i in range(k):
        voteIlabel = labels[sortedDistIndicies[i]]                    #获得对应标签
        #统计前k次标签出现的次数
        classCount[voteIlabel] = classCount.get(voteIlabel0) + 1

评论

共有 条评论