2

公称および数値機能のデータセットがあります。可能であれば、このデータセットを完全に数値で表現できるようにしたいと考えています。

理想的には、n-ary 名義機能に対してこれを行うことができます。バイナリの場合、2 つの公称値を整数で表すことができることに気付きました。しかし、名目上の特徴が多くの順列を持つことができる場合、これはどのように可能になるのでしょうか?

4

3 に答える 3

2

カテゴリ属性を数値として「埋め込む」方法は多数あります。

たとえばredgreenとの値を取ることができるカテゴリ変数が与えられた場合、これをとの3 つの属性としてblue自明にエンコードできます。isRed={0,1}isGreen={0,1}isBlue={0,1}

これは人気があり、明らかに「機能する」ものですが、多くの人は、その後の数値処理技術によって適切な結果が得られると仮定するという誤りに陥ります。

この方法でエンコードされたデータセットに対して k-means などを実行すると、後で結果があまり意味をなさない可能性があります。特に、次のような平均を取得した場合、isRed=.3 isGreen=.2 isBlue=.5これを元のデータに合理的にマッピングすることはできません。さらに悪いことに、一部のアルゴリズムでは、isRed=0 isGreen=0 isBlue=0.

実際のデータに取り組み、できるだけエンコードを避けることをお勧めします。優れたツールがあれば、さまざまなデータ型を使用できます。すべてを数値ベクトルにしようとしないでください。このデータの数学的ビューは非常に限定されており、このビューから利益を得るために必要なすべての数学的仮定がデータから得られるわけではありません (たとえば、メトリック スペース)。

于 2013-11-29T10:14:04.473 に答える
1

これをしないでください:特定の名義属性を整数としてエンコードしようとしています。

ただし、名目上の特徴に順列が 2 つしかない場合は除きます。それぞれに異なる整数 (たとえば、1 と 3) を使用してもかまいません。

ただし、順列が 3 つ以上ある場合、整数は使用できません。1、2、3 を 3 つの順列に割り当てたとしましょう。ご覧のとおり、違いがあるため、1-3 よりも 1-2 と 2-3 の間に高い関係があります。

むしろ、各名義属性の値ごとに個別のバイナリ機能を使用してください。したがって、あなたの質問の答え:それは不可能です/賢明ではありません。

于 2013-11-29T00:44:25.670 に答える