K近邻(KNN)算法原理及python实现

1.算法原理

KNN是一个极其简单的算法,工作流程如下:
在这里插入图片描述
距离计算公式可以使用欧几里得距离,曼哈顿距离,闵可夫斯基距离等等,代码展示为了简单使用欧几里得距离。

2.代码实现

""" 
函数功能:KNN分类器
参数说明:
    inx:需要预测分类的样本
    dataSet:已知分类标签的数据集(训练集)
    k:k-近邻算法参数,选择距离最小的k个点
    返回:result:分类结果 
""" 
def classify0(inX,dataSet,k):
	dim = dataSet.shape[1]
    result = []
    dist = list((((dataSet.iloc[:,:dim-1]-inX)**2).sum(1))**0.5)
    dist_l = pd.DataFrame({'dist':dist,'labels':(dataSet.iloc[:, dim])})
    dr = dist_l.sort_values(by = 'dist')[: k]
    re = dr.loc[:, 'labels'].value_counts()
    result.append(re.index[0])
    return result
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值