gpt4 book ai didi

python - 理解 IPython 中的 numpy.linalg.norm()

转载 作者:太空狗 更新时间:2023-10-29 20:22:58 25 4
gpt4 key购买 nike

我正在为监督学习创建一个线性回归模型。

我在图上绘制了一堆数据点 (x1, y1)、(x2, y2)、(x3, y3) 等,其中 x 是真实数据,y 值是训练数据值.

作为编写基本最近邻算法的下一步的一部分,我想创建一个距离度量来测量两个实例之间的距离(和相似性)。

如果我想在 ipython 中编写一个通用函数来计算 L-Norm 距离,我知道很多人使用 numpy.linalg.norm(arr, ord = , axis=)。我感到困惑的是如何格式化我的数据点数组,以便它正确计算 L 范数值。

如果我只有两个数据点,比如 (3, 4) 和 (5, 9),我的数组是否需要看起来像这样,每个数据点的值都在一行中?

arry = ([[3,4] 
[5,9]])

还是需要看起来像这样,其中所有 x 轴值都在一行中,而 y 轴值在另一行中?

arry = ([[3,5]
[4,9]])

最佳答案

numpy.linalg.norm(x) == numpy.linalg.norm(x.T) 其中 .T 表示转置。所以没关系。

例如:

>>> import numpy as np
>>> x = np.random.rand(5000, 2)
>>> x.shape
(5000, 2)
>>> x.T.shape
(2, 5000)
>>> np.linalg.norm(x)
57.82467111195578
>>> np.linalg.norm(x.T)
57.82467111195578

编辑:

鉴于你的向量基本上是

x = [[real_1, training_1],
[real_2, training_2],
...
[real_n, training_n]]

那么弗罗贝尼乌斯范数基本上就是计算

np.sqrt(np.sum(x**2))

您确定这是正确的指标吗?还有一大堆其他规范。这里有 3 个

np.sum((x[:,0]**2 - x[:,1]**2) # N-dimensional euclidean norm
np.sqrt(np.sum(x[:,0]**2) + np.sum(x[:,1]**2)) # L^2 norm
np.sqrt(x[:,0].dot(x[:,1])) # sqrt dot product

关于python - 理解 IPython 中的 numpy.linalg.norm(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22027767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com