k-近邻算法 python实现
必要的注释已经写在code里面了;
import operator
from numpy import* def init():
grp=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
lab=['A','A','B','B']
return grp,lab def Classify(inX,dataset,lab,k):
# 用于分类的向量inX;数据集dataset;属性向量lab;k近邻
datasize=dataset.shape[0]# 行大小
difmt=tile(inX,(datasize,1))-dataset
# tile: 将inX复制成一个 行大小为datasize,列大小为1的矩阵 ######------ 计算欧几里得距离 ------#######
sqrdif=difmt ** 2
sqrdist=sqrdif.sum(axis=1)
distance=sqrdist** 0.5
##########################################
sortedDisIndex=distance.argsort()
# 排序后获得索引值 classcnt={}
for i in range(k):# 取前k个
vtlab=lab[sortedDisIndex[i]]
classcnt[vtlab]=classcnt.get(vtlab,0)+1 sortedClasscnt=sorted(classcnt.items(),key=operator.itemgetter(1),reverse=True)
# sorted:itemgetter(1)按照第二关键字排序,即按照个数从大到小排序(因为reverse=True)
return sortedClasscnt[0][0] grp,lab=init()
ans=Classify([0,0],grp,lab,3)
print(ans)
k-近邻算法 python实现的更多相关文章
- k近邻算法python实现 -- 《机器学习实战》
''' Created on Nov 06, 2017 kNN: k Nearest Neighbors Input: inX: vector to compare to existing datas ...
- 用Python从零开始实现K近邻算法
KNN算法的定义: KNN通过测量不同样本的特征值之间的距离进行分类.它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.K通 ...
- python 机器学习(二)分类算法-k近邻算法
一.什么是K近邻算法? 定义: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 来源: KNN算法最早是由Cover和Hart提 ...
- 机器学习实战笔记--k近邻算法
#encoding:utf-8 from numpy import * import operator import matplotlib import matplotlib.pyplot as pl ...
- 机器学习之K近邻算法(KNN)
机器学习之K近邻算法(KNN) 标签: python 算法 KNN 机械学习 苛求真理的欲望让我想要了解算法的本质,于是我开始了机械学习的算法之旅 from numpy import * import ...
- 机器学习03:K近邻算法
本文来自同步博客. P.S. 不知道怎么显示数学公式以及排版文章.所以如果觉得文章下面格式乱的话请自行跳转到上述链接.后续我将不再对数学公式进行截图,毕竟行内公式截图的话排版会很乱.看原博客地址会有更 ...
- 机器学习——KNN算法(k近邻算法)
一 KNN算法 1. KNN算法简介 KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分 ...
- [机器学习] k近邻算法
算是机器学习中最简单的算法了,顾名思义是看k个近邻的类别,测试点的类别判断为k近邻里某一类点最多的,少数服从多数,要点摘录: 1. 关键参数:k值 && 距离计算方式 &&am ...
- 机器学习实战 - python3 学习笔记(一) - k近邻算法
一. 使用k近邻算法改进约会网站的配对效果 k-近邻算法的一般流程: 收集数据:可以使用爬虫进行数据的收集,也可以使用第三方提供的免费或收费的数据.一般来讲,数据放在txt文本文件中,按照一定的格式进 ...
- 机器学习:k-NN算法(也叫k近邻算法)
一.kNN算法基础 # kNN:k-Nearest Neighboors # 多用于解决分裂问题 1)特点: 是机器学习中唯一一个不需要训练过程的算法,可以别认为是没有模型的算法,也可以认为训练数据集 ...
随机推荐
- 牛掰的python与unix
python的中心哲学 Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on ...
- XP+Android手机DIY家庭视频点播系统-历时3周全力打造吊丝的幸福生活
需求场景(纯熟虚构): 1. 哥电脑里有200G电影copy到手机上看没那么大空间,copy一部看一部删除一部,很是不方便也费时间. 2. 小林同学需求比较旺盛但是媳妇总有不方便的时候,家里有 ...
- 加载 bean.xml 的几种方式 (java or web project)
1. java project ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:bean1.xm ...
- Codeforces 768A Oath of the Night's Watch 2017-02-21 22:13 39人阅读 评论(0) 收藏
A. Oath of the Night's Watch time limit per test 2 seconds memory limit per test 256 megabytes input ...
- 机器学习—集成学习(XGBoost)
一.原理部分: 二.xgboost实现 看看大神的博客瞬间了解:https://blog.csdn.net/han_xiaoyang/article/details/52665396
- 【树状DP】星象仪
题目描述 在寂寞的夜里,星象仪是非常浪漫的东西.但是,你作为一个精神稍微有点不太正常的Geek,把原本正常的星象仪改造得像电报发送器一样.当然,你这个的构造还要更加奇葩一点.具体来说,你的星象仪是一棵 ...
- 层层递进Struts1(五)之处理流程
这篇博客我们深入Struts框架执行部分源码,从ActionServlet的process函数开始,看一下其内在的执行过程. 流程图 以下流程图展示的是ActionServlet和RequestPro ...
- Android-画板
在上一篇博客,Android-图像原理/绘制原理,讲解到绘图原理中,画布 + 画笔
- Android-SurfaceView生命周期
SurfaceView的生命周期,和 Activity生命周期,Service生命周期,BroadcastReceiver生命周期,等,不一样: 因为SurfaceView显示的是(视频画面,游戏画面 ...
- /usr/bin/curl: Argument list too long的解决方法
使用curl发送http请求时,会出现-bash: /usr/bin/curl: Argument list too long的错误,此时,可用采用httpie代替curl发送请求: pip inst ...