博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我想去做机器学习 接下来发一些机器学习实战的算法
阅读量:5117 次
发布时间:2019-06-13

本文共 1045 字,大约阅读时间需要 3 分钟。

kNN算法  K近邻  简单说就是找出最近的K个点然后找出他们的分类最多的就是本身

from numpy import *  #导入包numpyimport operator      #运算符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;def classify(inX,dataSet,labels,k):  #kNN  输入向量  数据集 数据集对应的类型 K个    dataSetSize=dataSet.shape[0];    #算出来有几个点    diffMat=tile(inX,(dataSetSize,1))-dataSet; #用输入的点填满 然后去减掉数据集对应的位子    sqDiffMat=diffMat**2;                      #平方    sqDistances=sqDiffMat.sum(axis=1);         #把每一行加起来    distances=sqDistances**0.5;                #对每一个结果开根号    sortedDisIndicies=distances.argsort();     #排序 返回他们的下标    classCount={};                             #map存类型和数目    for i in range(k):        voteIlabel=labels[sortedDisIndicies[i]];        classCount[voteIlabel]=classCount.get(voteIlabel,0)+1;  #数目增加    sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True) #对数目排序 降序    return sortedClassCount[0][0];   #返回值
View Code

 

转载于:https://www.cnblogs.com/cherryMJY/p/8516692.html

你可能感兴趣的文章
如何判断主机是大端还是小端(字节序)
查看>>
Centos7 日志查看工具
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>
前端框架性能对比
查看>>