kNN算法的python代码和注释

本文介绍了Python中k-近邻算法(k-Nearest Neighbor, kNN)的实现,包括欧氏距离计算、数据集处理和分类过程。通过代码注释帮助理解每个步骤,例如数据集的创建、归一化、文件读取和分类函数classify0的细节。同时,展示了在手写数字识别和约会数据集上的应用实例。" 84830583,5603262,Greenplum与HBase:大数据存储与处理的对比,"['大数据', '数据库', 'Greenplum', 'HBase', 'OLAP/OLTP']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为用matalb较多,刚接触pyton很多代码不懂,给出一些注释。只注释部分函数,不解释算法
对算法的详细注释请参考:k-近邻算法(k-Nearest Neighbor)  http://m.blog.youkuaiyun.com/article/details?id=52032520&from=singlemessage&isappinstalled=0

'''
Created on Sep 16, 2010
kNN: k Nearest Neighbors

Input:      inX: vector to compare to existing dataset (1xN)
            dataSet: size m data set of known vectors (NxM)
            labels: data set labels (1xM vector)
            k: number of neighbors to use for comparison (should be an odd number)
            
Output:     the most popular class label

@author: pbharrin
'''
from numpy import *
import operator
from os import listdir
#这个listdir是用来列出文档路径的

def classify0(inX, dataSet, labels, k):
    dataSetSize = dataSet.shape[0]
#dataSet.shape[0],类似于matalb里的size(dataSet,1)
    diffMat = tile(inX, (dataSetSize,1)) - dataSet
#tile类似于matalb里的repmat tile([1,1],(2,2))就是把【1,1】复制成两行两列的矩阵
    sqDiffMat = diffMat**2
#这的**就是求平方,但***不是求3次方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值