KNN算法及python问题
来源:互联网 发布:怎样安装办公软件 编辑:程序博客网 时间:2024/05/16 12:45
机器学习实战之KNN
创造数据集
from numpy import *import operatordef createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B']return group,labels
创造一个4*2的array,数值可理解为坐标,label就是对应分类
python时间
tile
tile的作用是把一个矩阵复制出一个新的矩阵,如A是一个矩阵
tile(A,1) = Atile(A,2,3)就是把A作为一个元素,复制成新的2*3的矩阵,每一个元素就是一个A
shape
shape是获取矩阵的size的函数
A = [1,2,3;4,5,6;7,8,9]A.shape = (3,3)A.shape[0] = A.shape[1] = A.shape[2] = 3
argsort
argsort是一个排序后获取下标的函数
A = [5,4,3,1,2]B = A.argsort() = [3,4,2,1,0]
itemgetter
itemgetter是operator的一个函数
b=operator.itemgetter(n-1)b成为获取对象第n个元素的函数A = [1,2,3]b(A) = 2
axis
axis是表示矩阵的行列的
a = [1,2,3; 4,5,6]axis默认为0,表示列a.sum() = 21a.sum(axis=0) = [5,7,9] 列求和a.sum(axis=1) = [6,15] 行求和
dict.get
python中的字典dict,获取对应值有两种方式1. key2 = dict[key1] ,但是假如字典不存在key1会发生错误2. key2 = dict.get(key1,default) 当不存在key1,返回默认值default
完整代码及注释
py import *import operatordef createDataSet(): group = 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): #inX是待分类的数据,dataSet是已知的数据集,labels是已知数据集的分类,k是算法抽取的最相邻点的数量 dataSetSize = dataSet.shape[0] #获取dataSet的点的个数 diffMat = tile(inX,(dataSetSize,1)) - dataSet #tile函数把待分类点组成一个n维向量,再和原有数据集每个点作差 #相当于,得到(x-x1),(x-x2),(x-x3)··· sqDiffMat = diffMat ** 2 #(x-x1)^2 ··· sqDistances = sqDiffMat.sum(axis=1) #各个维度的差的平方求和 distances = sqDistances ** 0.5 #和开方最终得到欧式距离 sortedDistIndicies = distances.argsort() #根据求得的距离进行排序,并得到对应的数据集的下标 classCount = {} #新建字典,放置距离小的数据的标签及其对应数量 for i in range(k): #放置距离小的前K个点 voteIlabel = labels[sortedDistIndicies[i]] #根据下标得到当前这个数据点的label classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1 #字典中label对应值+1 sortedClassCount = sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True) #根据字典的key2进行排序 sorted classCount return sortedClassCount[0][0] #排序产生的是一个列表,列表的元素是一个tuple #返回出现最多的标签,也就是最终分类结果
阅读全文
0 0
- KNN算法及python问题
- KNN算法及python实现
- python kNN算法
- Python实现KNN算法
- KNN算法Python实现
- python实现knn算法
- Python实现KNN算法
- KNN 算法 python 实现
- Python KNN算法
- python--knn算法练习
- KNN python 算法实现
- Python实现KNN算法
- knn算法python实现
- Python-KNN算法实践
- python实现knn算法
- Python实现KNN算法
- python 实现 kNN 算法
- KNN算法---Python实现
- 模式识别hw3-------常见模式识别算法用于人脸图片性别识别
- 分布式锁
- 测试文章
- c#数据库相关技术
- tomcat无法部署项目的一个诡异问题
- KNN算法及python问题
- linux换键
- github基础操作
- linux-find命令
- linux命令--mkdir 与文件权限
- Bailian2686 打印完数【暴力】
- tomcat又乱码了【更新】
- Mybatis之主键的返回(6)
- Mybatis之批量新增数据(7)