2013-01-16 7 views
7

I Formel weiß zur Entropie-Berechnung:Berechnung Entropie in Entscheidungsbaum (Maschinelles Lernen)

H(Y) = - ∑ (p(yj) * log2(p(yj))) 

In Worten, wählen Sie ein Attribut und für jeden Wert Prüfziel-Attributwert ... so p (yj) ist der Bruchteil der Muster am Knoten N in der Kategorie yj - eins für wahr im Zielwert und eins für falsch.

Aber ich habe ein Dataset, in dem Zielattribut ist Preis, daher Bereich. Wie berechnet man die Entropie für diese Art von Daten?

(Geworben: http://decisiontrees.net/decision-trees-tutorial/tutorial-5-exercise-2/)

Antwort

6

Als erstes müssen Sie die Daten in irgendeiner Weise auf diskretisieren, wie sie numerisch in eine Anzahl von Eimern zu sortieren. Es gibt viele Methoden zur Diskretisierung, einige werden überwacht (dh sie berücksichtigen den Wert Ihrer Zielfunktion) und andere nicht. This paper skizziert verschiedene Techniken in ziemlich allgemeinen Begriffen. Genauer gesagt gibt es in Machine-Learning-Bibliotheken wie Weka viele Diskretisierungsalgorithmen. Die Entropie kontinuierlicher Verteilungen heißt differential entropy und kann auch geschätzt werden, indem man annimmt, dass Ihre Daten in irgendeiner Weise verteilt sind (normalverteilt zum Beispiel), dann die unterliegende Verteilung auf normale Weise abschätzen und daraus eine Entropie berechnen Wert.

+0

aber wie kann ich Bereiche entscheiden? Angenommen, ich sortiere die Daten, wie kann ich die Entfernung bestimmen ... nur raten, wenn ich binär dann avg dieser Daten will? –

+0

Es gibt viele Methoden dafür verwendet, ich werde mehr Informationen zur Antwort hinzufügen, geben Sie mir eine ... –

+0

oops das macht keinen Sinn .. wenn Attribute haben zwei Werte dann binary ... danke @Vic Smith! –

0

Zusammen mit Vic Smith ist Diskretisierung in der Regel ein guter Weg zu gehen. Meiner Erfahrung nach sind die meisten scheinbar kontinuierlichen Daten tatsächlich "klumpig" und es ist wenig verloren.

Wenn jedoch die Diskretisierung aus anderen Gründen unerwünscht ist, wird die Entropie auch für kontinuierliche Verteilungen definiert (siehe Wikipedia auf Ihrer bevorzugten Distribution, zum Beispiel http://en.wikipedia.org/wiki/Normal_distribution).

Ein Ansatz wäre, eine Verteilungsform anzunehmen, z. normal, lognormal usw. und berechnen die Entropie aus geschätzten Parametern. Ich glaube nicht, dass die Skalen der Boltzmann-Entropie (kontinuierlich) und der Shannon-Entropie (diskret) auf denselben Skalen liegen, also würden sie diese nicht mischen.