2

ベクトルのセットがあります。n 次元のベクトルを単項値 (1-d) に減らす方法に取り組んでいます。

(x1,x2,....,xn) ------> y

この単一の値は、ベクトルの特性値である必要があります。一意の各ベクトルは、一意の出力値を生成します。次の方法のうち、適切なものはどれですか。

1- ベクトルのノルム - 原点からのユークリッド距離を測定する平方和の平方根

2- 衝突を回避するいくつかのハッシュ技術を使用して、F のハッシュを計算する

3- 線形回帰を使用して計算します。y = w1*x1 + w2*x2 + ... + wn*xn - 入力値が出力に適切に依存していない場合、適切である可能性は低いです。

4-入力ベクトルのセットに基づいて x1、x2、..xn のそれぞれに重みを割り当てる PCA のような特徴抽出手法

4

1 に答える 1

0

メソッドからは、この変換に必要なプロパティが不明であるため、一意性と可逆性以外のプロパティを保持するために変換は必要ないと推測しています。

あなたが提案するテクニックはどれも、一般的に衝突を避けることはできません:

  1. ノルム - 反対方向を指す 2 つのベクトルのノルムは同じです。

  2. ハッシュ - 入力がアプリオリに知られていない場合 - 一般的にハッシュ関数が意味するものは有限のイメージを持ち、可能なベクトルは無限にある - 良くない。

  3. 線形回帰の結果に対して同じ結果を与えるベクトルを見つけるのは簡単です (考えてみてください)。

  4. PCA は特定の種類の線形変換であるため、線形回帰と同じ問題があります。

したがって、一意性だけを探している場合は、ベクトルを「文字列化」できます。これを行う 1 つの方法は、異なる座標を特殊文字 (アンダースコアなど) で区切ってテキスト文字列として書き留めることです。次に、この文字列のバイナリ値を表現として使用します。

スペースが重要で、より効率的な表現が必要な場合は、より効率的なビット エンコーディングを考えることができます: セット 0,1,...,9,'.',' ' 内の各文字は 4 ビットで表現できます - 16 進数 (「.」を A に、「」を B にマップします)。この文字列を 16 進数としてエンコードし、半分のスペースを節約します。

于 2013-04-16T03:55:13.800 に答える