from numpy import *
import operator
def createDataSet():
# 创建数据集
group = array([[1.0,1.1],[1.0,1.1],[0,0],[0,0.1]])
labels = ['A','A','B','B']
return group,labels
def classify0(inX,dataSet,labels,k):
# inX: 要测试的数据[0,0],[1,1]等
# dataSet:数据集
# labels:数据集的标签
# k:选取的前几个标签
# 距离计算
dataSetSize = dataSet.shape[0]
# print(dataSet.ndim) 数组维数 比如一维数组和二维数组
# dataSet.shape[0]:行数 dataSet.shape[1]:列数
# dataSet 是4行2列 dataSet.shape是元组 dataSet.shape = (4,2)
diffMat = tile(inX, (dataSetSize,1))- dataSet
# tile(A,reps) A指待输入数组 reps决定A重复的次数
# 用于重复数组A来构建新的数据
# reps的纬度为d 那么新数组的纬度为max(d,A.ndim)
# reps第一位决定行上的重复次数 第二位决定列上的重复次数 如果只有一位只在列上重复
# tile是numpy中的函数:tile将原来的一个数组扩充为4个一样的数组
# diffMat得到了一个目标与训练数值之间的差值
sqDiffMat = diffMat**2
# (x1-x2)^2 各个元素分别平方
sqDistances = sqDiffMat.sum(axis = 1
机器学习实战读书笔记(一):K近邻算法
最新推荐文章于 2024-07-28 15:46:11 发布