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读写Excel文件方法介绍
Nov 22 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
python实现linux下使用xcopy的方法
Jun 28 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
python实现逻辑回归的方法示例
May 02 Python
Python实现对百度云的文件上传(实例讲解)
Oct 21 Python
python字典操作实例详解
Nov 16 Python
python实现最长公共子序列
May 22 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
Python和Sublime整合过程图示
Dec 25 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 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数据加密详解
2013/06/18 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
php 常用的系统函数
2017/02/07 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
DOM事件探秘篇
2017/02/15 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
《月光启蒙》教学反思
2014/03/01 职场文书
教师工作失职检讨书
2014/09/18 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
2016年情人节问候语
2015/11/11 职场文书