[Python] 实施kNN算法

一、在PyCharm 5.0.4(编写python程序的IDE) 编写kNN.py文件的代码

--------------------------

1、 kNN.py  运算符模块

--------------------------

1 from numpy import *
2 import operator
3
4 #运算符模块   创建数据集和标签
5 def createDataSet():
6     group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])
7     labels = [‘A‘, ‘A‘, ‘B‘, ‘B‘]
8     return group, labels

1)、打开命令行

  先进入kNN.py的所在文件夹,在对kNN.py进行程序处理,效果如下图所示

--------------------------

2、 kNN.py  k-近邻算法

--------------------------

 1 from numpy import *
 2 import operator
 3
 4 #运算符模块
 5 def createDataSet():
 6     group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])
 7     labels = [‘A‘, ‘A‘, ‘B‘, ‘B‘]
 8     return group, labels
 9
10 #k-近邻算法  此模块需要使用运算符模块的group/labels
11 def classify0(inX, dataSet, labels, k):
12     dataSetSize = dataSet.shape[0]
13     diffMat = tile(inX, (dataSetSize, 1)) - dataSet
14     sqDiffMat = diffMat ** 2
15     sqDistances = sqDiffMat.sum(axis=1)
16     distances = sqDistances ** 0.5
17     sortedDistIndicies = distances.argsort()
18     classCount = {}
19     for i in range(k):
20         voteIlabel = labels[sortedDistIndicies[i]]
21         classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
22
23     sortedClassCount = sorted(classCount.iteritems(),
24                               key=operator.itemgetter(1),
25                               reverse=True)
26     return sortedClassCount[0][0]

2) 在1)的基础上,进行2)的内容,可以修改参数
  

  

时间: 2024-10-20 10:42:34

[Python] 实施kNN算法的相关文章

Python实现KNN算法

Python实现KNN算法 KNN算法的实际用处很多,主要用于分类阶段,是一个基础的分类算法.KNN主要基于距离的计算,一般可以在原始的欧氏空间中计算样本之间的距离.改进版本有:先特征提取到一个更加鉴别的空间中,然后计算距离:或者先使用metric learning度量学习的技术来获得一个鉴别的度量空间,然后计算样本间的马氏距离. 不管怎么说,KNN在很多算法的分类阶段都可以用到,我们这里用python实现KNN. 1. sklearn自带的KNN fromsklearn.neighborsim

[Python] 应用kNN算法预测豆瓣电影用户的性别

应用kNN算法预测豆瓣电影用户的性别 摘要 本文认为不同性别的人偏好的电影类型会有所不同,因此进行了此实验.利用较为活跃的274位豆瓣用户最近观看的100部电影,对其类型进行统计,以得到的37种电影类型作为属性特征,以用户性别作为标签构建样本集.使用kNN算法构建豆瓣电影用户性别分类器,使用样本中的90%作为训练样本,10%作为测试样本,准确率可以达到81.48%. 实验数据 本次实验所用数据为豆瓣用户标记的看过的电影,选取了274位豆瓣用户最近看过的100部电影.对每个用户的电影类型进行统计.

Python 基于KNN算法的手写识别系统

本文主要利用k-近邻分类器实现手写识别系统,训练数据集大约2000个样本,每个数字大约有200个样本,每个样本保存在一个txt文件中,手写体图像本身是32X32的二值图像,如下图所示: 手写数字识别系统的测试代码: from numpy import * import operator from os import listdir #inX    要检测的数据 #dataSet   数据集 #labels    结果集 #k      要对比的长度 def classify0(inX, data

吴裕雄 python 机器学习-KNN算法(1)

import numpy as np import operator as op from os import listdir def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize,1)) - dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distan

《机器学习实战》读书笔记2:K-近邻(kNN)算法

声明:文章是读书笔记,所以必然有大部分内容出自<机器学习实战>.外加个人的理解,另外修改了部分代码,并添加了注释 1.什么是K-近邻算法? 简单地说,k-近邻算法采用测量不同特征值之间距离的方法进行分类.不恰当但是形象地可以表述为近朱者赤,近墨者黑.它有如下特点: 优点:精度高.对异常值不敏感.无数据输入假定 缺点:计算复杂度高.空间复杂度高 适用数据范围:数值型和标称型 2.K-近邻算法的工作原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中的每个数据都存在标签,即我们知道样本集中

机器学习实战之kNN算法

机器学习实战这本书是基于python的,如果我们想要完成python开发,那么python的开发环境必不可少: (1)python3.52,64位,这是我用的python版本 (2)numpy 1.11.3,64位,这是python的科学计算包,是python的一个矩阵类型,包含数组和矩阵,提供了大量的矩阵处理函数,使运算更加容易,执行更加迅速. (3)matplotlib 1.5.3,64位,在下载该工具时,一定要对应好python的版本,处理器版本,matplotlib可以认为是python

机器学习--k-近邻(kNN)算法

一.基本原理 存在一个样本数据集合(也称训练样本集),并且样本集中每个数据都存在标签.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签. 我们一般只选择样本集中前k(k通常是不大于20的整数)个最相似的数据,最后选择k个最相似数据中出现次数最多的分类,作为新数据的分类. 二.算法流程 1)计算已知类别数据集中的点与当前点之间的距离: 2)按照距离递增次序排序: 3)选取与当前点距离最小的k个点: 4)确定前k个点所

Python KNN算法

机器学习新手,接触的是<机器学习实战>这本书,感觉书中描述简单易懂,但对于python语言不熟悉的我,也有很大的空间.今天学习的是k-近邻算法. 1. 简述机器学习 在日常生活中,人们很难直接从原始数据本身获得所需信息.而机器学习就是把生活中无序的数据转换成有用的信息.例如,对于垃圾邮件的检测,侦测一个单词是否存在并没有多大的作用,然而当某几个特定单词同时出现时,再辅以考虑邮件的长度及其他因素,人们就可以更准确地判定该邮件是否为垃圾邮件. 机器学习分为监督学习和无监督学习,其中: (1)监督学

机器学习经典算法详解及Python实现--K近邻(KNN)算法

(一)KNN依然是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习所有算法中理论最简单,最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>=1)个距离最近的邻居进行分类判断(投票法)或者回归.如果K=1,那么新数据被简单分配给其近邻的类.KNN算法算是监督学习还是无监督学习呢?首先来看一下监督学习和无监督学习的定义.对于监督学习,数据都有明确的label(分类针对离散分布,回归针对连续分布),根据机器学习产