NISHIO Hirokazu[日本語][English]

高次元正規分布の距離は平均√D, 分散0.5

from 高次元空間において正規分布はほぼ超球面上の一様分布 高次元正規分布の距離は平均√D, 分散0.5(標準偏差0.7)

image

image :

mean= 9.972699059944992 sd= 0.70375223347664
mean= 19.98802691399663 sd= 0.7060739521568569
mean= 29.992667664100654 sd= 0.7078926693796469
mean= 39.99309275039724 sd= 0.7074454497781785

py

import numpy as np
import matplotlib.pyplot as plt

# サンプル数と次元数の設定
num_samples = 100000
dimensions = [100, 400, 900, 1600]  # 次元数の例

# 距離の分布をプロット
plt.figure(figsize=(10, 6))
for d in dimensions:
    # d次元の正規分布に従うランダムデータを生成
    data = np.random.normal(0, 1, (num_samples, d))
    
    # 各データ点の原点からの距離を計算
    distances = np.linalg.norm(data, axis=1)

    # 平均と分散
    print("mean=", distances.mean(), "sd=", distances.std())
    
    # ヒストグラムをプロット
    plt.hist(distances, bins=30, alpha=0.5, label=f'{d} dimensions', density=True)

# グラフの設定
plt.xlabel('Distance from Origin')
plt.ylabel('Density')
plt.legend()
plt.title('Distribution of Distances from Origin in High-Dimensional Space')
plt.show()

(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]