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的id()函数解密过程
Dec 25 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python3.4实现远程控制电脑开关机
Feb 22 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
python序列化与数据持久化实例详解
Dec 20 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
Python DES加密实现原理及实例解析
Jul 17 Python
python 获取剪切板内容的两种方法
Nov 28 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
浅析51个PHP处理字符串的函数
2013/08/02 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
js实现表格筛选功能
2017/01/18 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python实现删除文件但保留指定文件
2015/06/21 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
python安装sklearn模块的方法详解
2020/11/28 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
精灵市场:Pixie Market
2019/06/18 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
护士见习期自我鉴定
2014/02/08 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
食堂卫生管理制度
2015/08/04 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript
Vue Element plus使用方法梳理
2022/12/24 Vue.js