0

これが私の問題です。マルチターゲットデシジョンツリーアルゴリズムを実装する必要があります。マルチターゲットは、マルチラベル学習の拡張であり、ラベルはバイナリではありませんが、連続的、カテゴリ的などの場合があります。たとえば、マルチラベル分類問題のラベルベクトルは次のようになります{1,0,1,0,0,0,1}、マルチターゲットの場合は次のようになります{2,35,3、-2、 24}。私の問題はこれです。3つの離散値をとるラベルがある場合、それらをベクトルで表すにはどうすればよいですか?私がjobというラベルを持っていて、メカニック、教師、アスリートの3つの値を取るとします。ベクトルで使用するためにこのラベルをコーディングするにはどうすればよいですか?分割を見つけるために決定木の各ノードで、このノードのすべてのラベルベクトルの平均ベクトルを計算する必要があります(分散法の方程式を使用して分割を見つけています)。バイナリラベルがあれば、0と1を追加しても問題がないため、これは簡単です。これらの3つのジョブを0,1,2でコーディングすると、これは問題になります。これは、ラベルアスリートを含むラベルベクトルを追加すると、ジョブメカニックを含むベクトルを追加するよりもカウントされ、平均ベクトルが不正確になるためです。

この例を見てみましょう。私はこれらの3つのラベルを持っています:

          job: {mechanic,teacher,athlete}
          married:{yes,no}
          age:  continuous value

結婚したラベルは{0,1}としてコード化でき、年齢ラベルは連続した数字としてコード化できると言うのは簡単です。しかし、どうすればジョブラベルをコーディングできますか?{0,1,2}としてコーディングすると、次の問題が発生します。ノード内の2つのラベルベクトルを想像してみてください。{0,0,45}はメカニック、既婚、45歳に対応し、{2,1,48}はアスリート、未婚、45歳に対応します。平均ベクトルは{1,0.5,46.5}です。このベクトルを使用すると、そのノードに分類されるインスタンスの年齢は46.5であると予測できます。つまり、インスタンスは結婚していないと言えます(0.5以上のルールでは1です)。仕事は先生です。他の人は大丈夫ですが、先生の仕事は完全に間違っています。これで、カテゴリラベルのコーディングの問題がわかります。ヘルプまたはアドバイス??? ありがとう

4

1 に答える 1

1

フィーチャのすべての個別の値を取得し、値が2を超える場合は、それらすべてをフィーチャに変換します。たとえば、次のようになります。

job: {mechanic, teacher, athlete}
married:{yes, no}
age:  continuous value

5次元のvecorになります

(メカニック0/1、教師0/1、アスリート0/1、既婚0/1、年齢0-inf)

于 2011-12-30T18:29:26.227 に答える