
5.10
詳細:多様体学習
451
図5-97 距離行列から復元されたMDS 埋め込み
MDS
アルゴリズムは、データポイント間の関係を記述する
N
×
N
の距離行列のみを使用して、
データの
2
次元座標表現の可能性の
1
つを復元します。
5.10.3
多様体学習としての
MDS
距離行列は任意の次元データから計算できるという事実を考慮すると、この有用性が明らかとな
ります。したがって、例えば、
2
次元平面上のデータを単純に回転させるのではなく、次の関数(先
に使用した回転行列の
3
次元一般化)を使用して
3
次元に投影することができます。
In[9]: def random_projection(X, dimension=3, rseed=42):
assert dimension >= X.shape[1]
rng = np.random.RandomState(rseed)
C = rng.ran
dn(dimension, dimension)
e, V = np.linalg.eigh(np.dot(C, C.T))
return np.dot(X, V[:X.shape[1]])
X3 = random_projection(X, 3)
X3.shape
Out[9]: (1000, 3)
可視化して、これらの点がどのようになっているのかを見てみましょう(図 5-98)。
In[10]: from mpl_toolkits import mplot3d
ax = plt.axes(projection='3d') ...