データ セット内の列の 1 つに 0、1、2 の 3 つの値しかない場合、それらを公称 v/s 数値として宣言すると、WEKA はそれらをどのように扱いますか?
また、列の属性に多数の公称値がある場合、序数値が非常に高いこの公称属性を宣言する簡単な方法はありますか?
データ セット内の列の 1 つに 0、1、2 の 3 つの値しかない場合、それらを公称 v/s 数値として宣言すると、WEKA はそれらをどのように扱いますか?
また、列の属性に多数の公称値がある場合、序数値が非常に高いこの公称属性を宣言する簡単な方法はありますか?
大まかに言えば(実際のアルゴリズムに依存します):
数値として扱うと、1 対 2 と 1 対 3 の差はおよそ 2 倍になります。(他の属性がない場合)。
文字列として扱われる場合、'1' != '2' と '1' != '3' のように、おそらくどちらも同じように異なります。(ただし、結果は、たとえば、数値の頻度に依存する場合があります。たとえば、カテゴリ データの一般的な非類似度には相対頻度が含まれます)。
数値とカテゴリ値の処理方法は、使用している Weka 内の実際の機械学習アルゴリズムによって異なります。属性の両方のクラスを処理できないものもあり、間違った属性タイプでそのようなアルゴリズムを選択すると、Weka が教えてくれます。
一般に、属性は実際のものとして宣言する必要があります。つまり、値が数値の場合、実際の値がわずかしかなくても数値として宣言する必要があります。同様に、属性がカテゴリである場合は、さまざまな値が多数ある場合でもそのように宣言します。
最後の質問についてですが、Weka は実際の値が少ない場合と多い場合のカテゴリ値を区別しているとは思いません。それは他のすべてのものと同じでなければなりません。