机器学习实战—实施kNN算法
来源:互联网 发布:万网域名注册白金词 编辑:程序博客网 时间:2024/05/17 04:21
因为python刚入门,所以很多不会的,一边学习一边记录机器学习上的代码。
numpy库tile()函数: 可以在各个维度重复array。
>>>from numpy import tile>>>> tile([1,2],2)//x轴打印两遍array([1, 2, 1, 2])>>>tile([1,2],(2,1))//y轴两遍,x轴一遍array([[1, 2], [1, 2]])>>> tile([1,2],(2,2,3))array([[[1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2]], [[1, 2, 1, 2, 1, 2], [1, 2, 1, 2, 1, 2]]])
shape[0]返回矩阵第一维度长度。
python中sum函数的用法
用于相加:
>>> L=[1,2,3,4,5]>>> sum(L)15>>> sum(L,1)16>>> sum(L,-5)0
python中numpy.sum的用法
>>> from numpy import *>>> import numpy as mp>>> mp=array([[0,1,2],[2,3,4]])>>> mparray([[0, 1, 2], [2, 3, 4]])>>> mp.sum(axis=1)//axis=1 表示行相加array([3, 9])>>> mp.sum(axis=0)//axis=0 表示列相加array([2, 4, 6])
def classify0(inX,dataSet,labels,k): dataSetSize=dataSet.shape[0]#获取第一维度的长度 diffMat=tile(inX,(dataSetSize,1))-dataSet#求inX和dataSet之间的距离 sqDiffMat=diffMat**2#平方 sqDistances=sqDiffMat.sum(axis=1)#第一列相加 distances=sqDistances**0.5#开方 sortedDistIndicies=distances.agsort()#agsort是排序,将元素从小到大排序并返回下标,比如([3,2,1])返回的下标是([2,1,0]) classCount={} for i in range(k): voteIlabel=labels[sortedDistIndicies[i]] classCount[voteIlabel]=classCount.get(voteIlabel,0)+1#get是字典中的用法,如果不存在就返回后面的值(0),这行代码的意思就是算离目标点距离最近的k个点的类别,这个点是哪个类别哪个类别就加1,选择距离最近的k个点sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)#key=operator.itemgetter(1)的意思是按照字典里的第一个排序,{A:1,B:2},要按照第1个(AB是第0个),即‘1’‘2’排序。reverse=True是降序排序return sortedClassCount[0][0]//返回距离最近的点
阅读全文
0 0
- 机器学习实战—实施kNN算法
- 机器学习实战——kNN算法
- 机器学习实战——kNN算法
- 机器学习实战—笔记-kNN算法
- 机器学习实战-KNN算法
- 机器学习实战 KNN算法
- 《机器学习实战》-- KNN算法
- 机器学习实战 kNN算法
- 机器学习实战-KNN算法
- 机器学习实战--KNN算法
- 机器学习实战-KNN 算法
- 机器学习实战:KNN算法
- 机器学习实战-KNN算法
- 《机器学习》实施kNN分类算法
- 机器学习实战k-邻近算法(kNN)简单实施代码解读
- 《机器学习实战》学习笔记——kNN算法
- 机器学习实战学习笔记1——KNN算法
- kNN算法——菜鸟学习机器学习实战
- Eclipse之java was started but returned exit code 1报错并退出的解决方法
- C++ 什么是句柄?为什么会有句柄?HANDLE
- Hive SQL的编译过程
- 使用python的turtle库画图
- 新手入门or应届生准备简历-拉勾看岗位要求
- 机器学习实战—实施kNN算法
- 《数据结构》线性表的学习 1
- 基于xmpp openfire smack开发之openfire介绍和部署[1]
- ArcGIS10.5新特性OrthoMapping之“你问我答”
- 机器学习模型性能度量
- HDFS NameNode重启优化
- BOM浏览器模式和window对象
- 频分多址、时分多址、码分多址
- C++之三种创建对象方法的区别