Spark の正規化アルゴリズムを理解しようとしています。私の小さなテスト セットには 5 つのベクトルが含まれています。
{0.95, 0.018, 0.0, 24.0, 24.0, 14.4, 70000.0},
{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 70000.0},
{-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 70000.0},
{-0.95, 0.018, 0.0, 24.0, 24.0, 14.4, 70000.0},
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 70000.0},
feature-0、`feature-1 などのすべての値にわたって、各ベクトル フィーチャが正規化される場所がnew Normalizer().transform(vectors)
作成されると予想されます。
結果のセットは次のとおりです。 JavaRDD
(v-mean)/stdev
[-1.4285714276967932E-5,-1.4285714276967932E-5,-1.4285714276967932E-5,-1.4285714276967932E-5,-1.4285714276967932E-5,-1.4285714276967932E-5,0.9999999993877552]
[1.357142668768307E-5,2.571428214508371E-7,0.0,3.428570952677828E-4,3.428570952677828E-4,2.057142571606697E-4,0.9999998611976999]
[-1.357142668768307E-5,2.571428214508371E-7,0.0,3.428570952677828E-4,3.428570952677828E-4,2.057142571606697E-4,0.9999998611976999]
[1.4285714276967932E-5,1.4285714276967932E-5,1.4285714276967932E-5,1.4285714276967932E-5,1.4285714276967932E-5,1.4285714276967932E-5,0.9999999993877552]
[0.0,0.0,0.0,0.0,0.0,0.0,1.0]
すべての元の値 7000.0 は、異なる「正規化された」値になることに注意してください。また、たとえば、値が 、 、 、 、 の場合、どのように計算され1.357142668768307E-5
ましたか? さらに、機能を削除すると、結果が異なります。この問題に関するドキュメントは見つかりませんでした。
実際、私の質問は、RDD のすべてのベクトルを正しく正規化する方法です。.95
1
-1
-.95
0