《机器学习实战》k邻近算法代码(2-1)详解

本文详细解析了《机器学习实战》中的k邻近算法,包括创建训练集矩阵,计算距离,以及对最近的k个标签进行统计以确定分类。通过使用numpy库,实现了欧式距离计算和排序等关键步骤。
摘要由CSDN通过智能技术生成

注明:此文的代码源于《机器学习实战》。注释为个人为学习而添加,仅供参考。
概述:利用矩阵计算距离
步骤:1.得到训练集矩阵和对应的标签 ; 
     2. 将每个变量集复制和训练集矩阵同结构的矩阵;
     3. 变量集矩阵和训练集矩阵相减,结果中每个元素计算2次幂之后,再按行对元素进行求和后开2次方,使用的是欧式距离计算公式
     4. 对距离最近的前k个标签进行统计,结果最大的也就变量集应该属于的标签

from numpy as np
import operator as op 

# 输入已知的训练集和标签:
def createdataset():
    group = np.array([1.0,1.1],[1.0,1.0],[0,0],[0,0.1])
    labels = ['A','A','B','B']
    return group,labels
    
#计算距离和排序:
def classify0(inx, dataset, labels, k):
    datasetsize = dataset.shape(0)
    #dataset.shape(0):求矩阵dataset的第一维度(列)的长度
    #shape是个numpy函数:作用是求矩阵的行列数或者某个维度/列的长度。如果求某个维度的长度,需要在shape后面加上(维度索引位置),否则是得到矩阵的行列数值。
    diffmat = tile(inx, (datasetsize, 1)) - dataset 
    # tile(inx, (datasetsize

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值