2016-04-04 7 views
1

私は現在、10のフィーチャと3つのクラスの教師なし学習を使用してデータセットを試していますが、どのフィーチャがどのクラスに最も影響を与えるかを調べるためにどのフィーチャ選択アルゴリズムを使用するのかという質問が発生しました。機能はどのクラスになります。どの機能が各クラスに最も影響するかを調べるためにどの機能選択アルゴリズムを使用するのですか?

例時間または睡眠時間を調べ、合格または不合格になる可能性があります。

enter image description here

私は時間研究インパクトパスクラスとどのように影響を与えるインクルードは、時間のクラスと同じで、それが合格影響を与えるか、失敗しない方法眠っ失敗しない方法を知りたいです。

どのようなフィーチャ選択方法では、Hours SleptがPassに失敗し、Passに影響し、調査したHoursについて同じことがわかりますか?

答えて

2

1つの方法は、与えられた属性の属性値に従ってクラス値を分割した後、クラスラベル分布のエントロピーがどのように変化するかを観察することです。最大のエントロピー削減をもたらす属性が「最良の」属性である。 (これは、離散属性に対して動作します。例えばhoursSlept>7sleptAlotに変換すると言う; 5 <=hoursSlept<=7sleptEnoughに変換し、あなたがこの方法を使用するために属性を離散化する必要があります。そしてsleepDeprivedからhoursSlept<5

のエントロピーHを離散分布(p1,p2,...,pk)

H = -p1*log_2 p1 - p2*log_2 p2 - ... - pk*log_2 pk 

として定義され、それはおおよそ、分布の不純物を言えば、測定します。あなたが結果を知ることができないほど、エントロピーが高いほど優先されます。より多くのあなたは、結果を知ることができますapriori小さなエントロピー。実際、すべてiの分布pi=1/k(すべての結果が等しくなる可能性が高い)は、可能な限り高いエントロピー(値log_2 k)を持ちます。いくつかのipi=1が可能な限り低いエントロピー(値0)を持つ分布。

pi=ni/nを定義します。ここで、nは例の数であり、nii番目のクラスの値の例です。これは離散分布を誘導する(p1,p2,...,pk)ここで、kはクラス値の数です。値属性Aaiに等しく、これらの実施例の設定するSiを定義a1,a2,...,ar可能な値を持つ属性Aについて

。セットSiのそれぞれは、離散分布(前と同じ方法で定義されています)を誘導します。 |Si|をセットSiの例の数とします。対応するエントロピーをH(Si)で表す。

Gain(A) = H - |S1|/n * H(S1) - ... - |Sr|/n * H(Sr) 

を計算し、Gain(A)を最大化する属性を選択します。この差異を最大にする属性が例を分割するので、多くの場合Siの例では同じようなラベル(例:エントロピーが低い)があるという直感です。

Gain(A)の値は直感的にクラスラベルについての属性Aがどの程度有益であるかを示しています。

参考までに、これは意思決定ツリーの学習に広く使用されており、その措置は情報利得と呼ばれています。例えば、these slidesを参照されたい。このexplanation on Math.SEは本当に素晴らしいです(意思決定ツリーの学習のコンテキストではありますが)。

+0

素敵な、ありがとうBlazs私は今理解していると思う、本当に詳細、それは別の質問thoに私を導いた。クラスの特定の属性値に影響を及ぼすために使用するものEgは、スリープ時間が属性であり、sleptAlotが属性値であると述べたように、属性を離散化したと言うことができます。 。ありがとう!!! –

+0

個々の属性値がどのようにクラスに影響するのかという疑問があります。 'H(S_sleptAlot)'を計算し、それを 'H 'と比較することで(例えば差分を取る)これを数量化することができます。属性値が実際のクラス値にどのように影響するかを知りたければ、配布自体を見ることができます。 – blazs

+0

ありがとうBlazs .....これは本当に助けになった!! –