python k-近邻算法实例分享


Posted in Python onJune 11, 2014

简单说明

这个算法主要工作是测量不同特征值之间的距离,有个这个距离,就可以进行分类了。

简称kNN。

已知:训练集,以及每个训练集的标签。

接下来:和训练集中的数据对比,计算最相似的k个距离。选择相似数据中最多的那个分类。作为新数据的分类。

python实例

# -*- coding: cp936 -*-
#win系统中应用cp936编码,linux中最好还是utf-8比较好。
from numpy import *#引入科学计算包
import operator #经典python函数库。运算符模块。
#创建数据集
def createDataSet():
    group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels=['A','A','B','B']
    return group,labels
#算法核心
#inX:用于分类的输入向量。即将对其进行分类。
#dataSet:训练样本集
#labels:标签向量
def classfy0(inX,dataSet,labels,k):
    #距离计算
    dataSetSize =dataSet.shape[0]#得到数组的行数。即知道有几个训练数据
    diffMat     =tile(inX,(dataSetSize,1))-dataSet#tile:numpy中的函数。tile将原来的一个数组,扩充成了4个一样的数组。diffMat得到了目标与训练数值之间的差值。
    sqDiffMat   =diffMat**2#各个元素分别平方
    sqDistances =sqDiffMat.sum(axis=1)#对应列相乘,即得到了每一个距离的平方
    distances   =sqDistances**0.5#开方,得到距离。
    sortedDistIndicies=distances.argsort()#升序排列
    #选择距离最小的k个点。
    classCount={}
    for i in range(k):
        voteIlabel=labels[sortedDistIndicies[i]]
        classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
    #排序
    sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
    return sortedClassCount[0][0]

意外收获

把自己写的模块加入到python默认就有的搜索路径:在python/lib/-packages目录下建立一个 xxx.pth的文件,写入自己写的模块所在的路径即可

Python 相关文章推荐
使用Python的内建模块collections的教程
Apr 28 Python
python之Socket网络编程详解
Sep 29 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
python调用百度语音识别api
Aug 30 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
python 多个参数不为空校验方法
Feb 14 Python
Python常用的json标准库
Feb 19 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
Python如何发送与接收大型数组
Aug 07 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
浅析python 内置字符串处理函数的使用方法
Jun 11 #Python
python使用正则表达式检测密码强度源码分享
Jun 11 #Python
Python查看多台服务器进程的脚本分享
Jun 11 #Python
Python SQLite3数据库操作类分享
Jun 10 #Python
Python不规范的日期字符串处理类
Jun 10 #Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 #Python
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 #Python
You might like
PHP 错误之引号中使用变量
2009/05/04 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
js+html制作简单验证码
2017/02/16 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
python文件比较示例分享
2014/01/10 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
python pip如何手动安装二进制包
2020/09/30 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
总经理岗位职责
2013/11/09 职场文书
教师党员一句话承诺
2014/03/28 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS