首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >K近邻分类器

K近邻分类器
EN

Stack Overflow用户
提问于 2013-06-06 11:27:38
回答 2查看 959关注 0票数 0

我已经设置了大约200个点(x,y)的图像。这200个数据属于11个类别(我认为这将成为类别标签)。我的问题是如何将x,y值表示为一个数据?

我的第一个想法是,我应该用标签分别表示它们,然后当我得到一个点进行分类时,我将分别对x和y进行分类。我的内心告诉我,这是不正确的。

请告诉我如何将x,y值表示为一个数据元素。

EN

回答 2

Stack Overflow用户

发布于 2014-03-13 18:12:12

我无法想象你会遇到什么问题。在kNN算法中,我们可以使用多维的变量,你只需要使用python标准库中的list或Numpy库中的array来组织数据,如:group = numpy.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])group = [[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]来表示(1.0,1.1) (1.0,1.0) (0,0) (0,0.1)。

但是,我建议使用numpy,因为它有这么多的函数,而且它们都是用C语言实现的,这保证了程序的效率。

如果你使用numpy,你最好用矩阵的方式来做所有的运算,例如,你可以使用point=tile([0,0],(3,1))distance(group-point)( distance是我写的一个函数)来计算距离,而不需要迭代。

票数 0
EN

Stack Overflow用户

发布于 2018-06-21 09:18:20

关键不是表示,而是距离计算。在您的案例中,要点本质上是一个元素维度,但具有两个维度维度( (x, y) )。kNN算法本身可以处理n维的情况:它找到k个最近的邻居。因此,您可以使用欧几里德距离d((x1, y1), (x2, y2))=((x1-x2)^2 + (y1-y2)^2)^0.5,其中(x1, y1)表示要计算的第一个点,作为本例中点的距离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16953259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档