我已经设置了大约200个点(x,y)的图像。这200个数据属于11个类别(我认为这将成为类别标签)。我的问题是如何将x,y值表示为一个数据?
我的第一个想法是,我应该用标签分别表示它们,然后当我得到一个点进行分类时,我将分别对x和y进行分类。我的内心告诉我,这是不正确的。
请告诉我如何将x,y值表示为一个数据元素。
发布于 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是我写的一个函数)来计算距离,而不需要迭代。
发布于 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)表示要计算的第一个点,作为本例中点的距离。
https://stackoverflow.com/questions/16953259
复制相似问题