Python 在10维单位球体上生成随机点
我需要生成一个均匀采样的向量,10个方向(10个随机数的集合)位于一个单位球体上。所以,10个值的平方和应该是1 这正是我需要生成这些点的问题: 实现感知器算法,并在以下程序上运行它Python 在10维单位球体上生成随机点,python,random,Python,Random,我需要生成一个均匀采样的向量,10个方向(10个随机数的集合)位于一个单位球体上。所以,10个值的平方和应该是1 这正是我需要生成这些点的问题: 实现感知器算法,并在以下程序上运行它 中的合成数据集ℝ10:按照@Andrex的建议选择,以下是正确的解决方案: import numpy as np import math s = np.random.normal(0, 1, 10) norm=math.sqrt(sum(s*s)) result=s/norm 其中,result是答案。您可以
中的合成数据集ℝ10:按照@Andrex的建议选择,以下是正确的解决方案:
import numpy as np
import math
s = np.random.normal(0, 1, 10)
norm=math.sqrt(sum(s*s))
result=s/norm
其中,result
是答案。您可以评估结果:
sum([x*x for x in result])
1.0
有一种说法,如果
X=(X1,…,XN)
是一个标准正态分布为Xi
的向量,那么X/NORM(X)
在单位范围内是一致的,其中NORM
是欧几里德范数。因此,您必须从标准正态分布(使用numpy?)中抽取10个点,然后对结果进行标准化。尝试这样做时出现了什么问题?我认为这是不正确的!你必须从正态分布中取样,我不明白为什么它应该来自正态分布?在问题的哪一部分,我们被限制为正态分布?毕竟,当你应用sqrt时,它不再是正态的,那么重点是什么呢?如果我们想要在球体上均匀分布,我们必须严格。有一个强大的数学基础背后我的发言,你可以在这里看到!你说得对!谢谢分享链接,很高兴知道X/NORM(X)
如果取范数,结果是1单位球面上点的定义是什么!?这是标准(X)=1吗