要点是......我们有两组点A和B。集合A和B具有相同数量的点n。
正式问题:
在A和B中的点之间构造最小成本完全二分匹配。匹配(a, b)的成本是距离(a, b)。是否存在比O(n^3)更快的算法?
笔记:
例子:
解决方案:
匹配1:(a,b)(d,c)
sum (距离(a, b),距离(d, c)) …
algorithm matching bipartite euclidean-distance network-flow
虽然我想在 KNeighborsClassifier 中使用标准的欧几里得度量。
knn = KNeighborsRegressor(n_neighbors=k,metric='seuclidean' )
knn.fit(newx,y)
Run Code Online (Sandbox Code Playgroud)
和显示的类型错误:
C:\Anaconda3\lib\site-packages\sklearn\neighbors\base.py in fit(self, X, y)
741 X, y = check_X_y(X, y, "csr", multi_output=True)
742 self._y = y
--> 743 return self._fit(X)
744
745
C:\Anaconda3\lib\site-packages\sklearn\neighbors\base.py in _fit(self, X)
238 self._tree = BallTree(X, self.leaf_size,
239 metric=self.effective_metric_,
--> 240 **self.effective_metric_params_)
241 elif self._fit_method == 'kd_tree':
242 self._tree = KDTree(X, self.leaf_size,
sklearn\neighbors\binary_tree.pxi in sklearn.neighbors.ball_tree.BinaryTree.__init__ (sklearn\neighbors\ball_tree.c:9220)()
sklearn\neighbors\dist_metrics.pyx in sklearn.neighbors.dist_metrics.DistanceMetric.get_metric (sklearn\neighbors\dist_metrics.c:4821)()
sklearn\neighbors\dist_metrics.pyx in sklearn.neighbors.dist_metrics.SEuclideanDistance.__init__ (sklearn\neighbors\dist_metrics.c:6399)()
TypeError: __init__() takes exactly 1 positional argument (0 given)
Run Code Online (Sandbox Code Playgroud)
我只是输入我自己的函数来实现 knn 像: …
我正在 python 和 Spark 上从头开始实现 kmeans 算法。事实上,这是我的作业。问题是用不同的初始化方法实现具有预定义质心的kmeans,其中一种是随机初始化(c1),另一种是kmeans++(c2)。此外,还需要使用不同的距离度量、欧几里得距离和曼哈顿距离。两者的公式介绍如下:
每个部分中的第二个公式用于相应的成本函数,该函数将被最小化。我已经实现了这两个,但我认为有一个问题。这是使用不同设置的 kmeans 每次迭代的成本函数图:
第一个图看起来不错,但第二个图似乎有问题,因为就我而言,每次迭代后 kmeans 的成本必须减少。那么,问题是什么?这是我的代码或公式吗?
这些是我计算距离和成本的函数:
def Euclidean_distance(point1, point2):
return np.sqrt(np.sum((point1 - point2) ** 2))
def Manhattan_distance(point1, point2):
return np.sum(np.absolute(point1 - point2))
def cost_per_point(point, center, cost_type = 'E'):
if cost_type =='E':
return Euclidean_distance(point, center)**2
else:
return Manhattan_distance(point, center)
Run Code Online (Sandbox Code Playgroud)
这是我在 GitHub 上的完整代码: https://github.com/mrasoolmirzaei/My-Data-Science-Projects/blob/master/Implementing%20Kmeans%20With%20Spark.ipynb
我有两个相同大小的 rgb 图像,我想计算一个相似性度量。我想从欧几里得距离开始:
import scipy.spatial.distance as dist
import cv2
im1 = cv2.imread("im1.jpg")
im2 = cv2.imread("im2.jpg")
>> im1.shape
(820, 740, 3)
>> dist.euclidean(im1,im2)
ValueError: Input vector should be 1-D.
Run Code Online (Sandbox Code Playgroud)
我知道dist.euclidean需要一个1-d阵列和im1和im2是3-d,但有将与3-d阵列工作,或者是否有可能变换函数im1和im2到1-d阵列蜜饯在图像中的信息?
我正在尝试编写一个函数来计算 n 维上两点之间的欧几里德距离。
我有以下代码:
euc_dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2))
Run Code Online (Sandbox Code Playgroud)
这适用于两点x1和之间x2。但是,我正在尝试对两点之间的 n 维执行此操作。
例如,在 Python 中,它适用于:
def euc_distance(p, q):
return math.sqrt(sum((px - qx) ** 2 for px, qx in zip(p, q)))
Run Code Online (Sandbox Code Playgroud)
即您可以输入例如三个维度(两点之间):
euc_distance([2, 1, 4], [4, 9, 8])
Run Code Online (Sandbox Code Playgroud)
我如何编辑我的 R 代码来完成同样的事情?
它被描述为-||xi-xy||^2.
那么对于2个二维点,我这样编码吗?
- ((x1-x2) + (y1-y2))^2
Run Code Online (Sandbox Code Playgroud)
要么
-( (x1-x2)^2 + (y1-y2)^2 )
Run Code Online (Sandbox Code Playgroud)
要么
-(sqrt( (x1-x2)^2 + (y1-y2)^2 ))
Run Code Online (Sandbox Code Playgroud)
还是其他一些方式?
我试图使用iPhone OS 3.2在MKMapView上找到两点之间的欧几里德距离.问题是我在纬度和经度方面有这些坐标,这在数学上为我提供了足够的数据来找到距离,但它需要一些棘手的三角函数.有没有更简单的解决方案?
谢谢!
我有这个功能的问题:
function encludean_method($lat1,$lon1,$lat2,$lon2)
{
$x1 = $lat1;
$y1 = $lon1;
$x2 = $lat2;
$y2 = $lon2;
$x = ( pow($x2,2) - pow($x1,2));
$y = ( pow($y2,2) - pow($y1,2));
$distance = (sqrt($x + $y));
return $distance;
}
Run Code Online (Sandbox Code Playgroud)
当我用一些值调用上面的函数时的问题
(1.57454123333,103.6200516333,1.57483825,103.619484475)
Run Code Online (Sandbox Code Playgroud)
它返回NaN.任何人都可以告诉我为什么NaN返回以及如何解决它?
我正在尝试计算已计算的两个描述符之间的距离(欧几里德或汉明).问题是我不想使用匹配器,我只想计算两个描述符之间的距离.我正在使用OpenCV 2.4.9,并且我的遗留描述符存储在Mat类型中:
Mat descriptors1;
Mat descriptors2;
Run Code Online (Sandbox Code Playgroud)
现在我只想计算描述符1的row1和描述符2的row1之间的距离(最好是因为我使用二进制描述符的汉明距离)(例如).
我试过使用bitwise_xor()函数,但后来我没有一个有效的方法来做bitcount.没有函数来计算两个阵列之间的汉明距离?
我注意到我对OpenCV很新,但我很感激任何帮助.谢谢
c++ opencv euclidean-distance hamming-distance feature-descriptor
我遇到了一个问题.问题陈述是
一个由3人组成的团队,将参加比赛.根据本次比赛的规定,每支队伍都配备一台位于三角桌上的电脑和三把椅子.
团队认为参与者最方便的位置是三个参与者中的每一个都坐在他/她自己的三角桌旁边,并且,重要的是,恰好在这一侧的中间.当然,椅子应该采用相同的方式.
重要的是,在比赛期间,参与者彼此坐得不是很远.梦之队的队长认为对这个因素的正确估计是这些参与者的所有对之间的平均距离.
在本次比赛的情况下,必须计算三角桌边的中点之间的平均距离.写一个程序来计算这个.Note that the distance is Euclidean – that is, the distance between (x1,y1) and (x2,y2) is sqrt((x_1 - x_2)^2 + (y_1 - y_2)^2).
输入
输入文件包含三个不超过100的正整数 - 表格边长.保证这样的表将具有非零区域.
产量
输出表格两侧中间点之间的平均距离,这在输入中有所描述.
Examples
Input Output
3 4 5 2.00000000
5 5 7 2.83333333
Run Code Online (Sandbox Code Playgroud)
我想到了解决这个问题的一种方法
1. Assume origin as 1 point.
2. If one of the length is 3, assume the point as …Run Code Online (Sandbox Code Playgroud) python ×3
algorithm ×2
math ×2
bipartite ×1
c++ ×1
distance ×1
function ×1
iphone ×1
k-means ×1
matching ×1
mkmapview ×1
network-flow ×1
objective-c ×1
opencv ×1
php ×1
r ×1
scikit-learn ×1
similarity ×1
triangular ×1