2016-10-03 5 views
0

Ich lerne, wie man einen einfachen Entscheidungsbaum in C# implementiert. Kann mir jemand erklären, wie es in Pseudocode aussieht oder ein einfaches Tutorial zur Implementierung in C# haben?Implementierender Entscheidungsbaum

Ich habe diesen Datensatz:

enter image description here

(von hier: http://storm.cis.fordham.edu/~gweiss/data-mining/weka-data/weather.nominal.arff)

und ich habe grafischen Entscheidungsbaum enter image description here

(Sorry für mein Englisch) getan

+1

Es gibt nicht ein Weg ist, den Entscheidungsbaum zu implementieren. Es gibt eine Menge verschiedener Techniken und Algorithmen. Sie könnten die Optionen manuell codieren. Sie könnten eine Entscheidungstabelle genau wie die Sie erstellen und abfragen. Sie könnten sogar einen tatsächlichen Baum verwenden, dessen Knoten die Regelbezeichnungen sind. Das Finden einer bestimmten Antwort wäre dann genauso wie das Finden eines Blattknotens mit einem bestimmten Pfad. –

+0

Ich suche nach dem einfachsten Weg, es zu implementieren ... Brauche einen Leitfaden, um zu beginnen. – Revolt

+0

Der einfachste Weg ist, über Entscheidungsbäume und Implementierungen zu lesen und einen zu finden, der für Sie am besten aussieht. –

Antwort

1

Um die Frage teilweise zu beantworten, scheint die konz ept eines Entscheidungsbaums wird beschrieben here. Um einen Entscheidungsbaum für den obigen Typ zu implementieren, können Sie eine Klasse angeben, die dem Typ aus der Tabelle in Ihrer Frage entspricht. Basierend auf diesem Typ müssen Sie eine Baumdatenstruktur erstellen, in der die Anzahl der untergeordneten Elemente nicht begrenzt ist. Während die eigentlichen Daten nur in den Blättern enthalten sind, wäre es am besten, wenn jedes Element des Basistyps als Nullwert definiert ist. Auf diese Weise können Sie in jedem Knoten nur die Elemente festlegen, die auf einen bestimmten Wert für die untergeordneten Elemente festgelegt sind. Zusätzlich sollte dann die Anzahl der Knoten mit den Werten no und yes dargestellt werden.

0

Meine Idee ist nur so viel:

if outlook = "overcast" then no 
if outlook = "sunny" and humidity = "normal" then yes 
if outlook = "sunny" and humidity = "high" then no 
if outlook = "rain" and wind = "true" then no 
if outlook = "rain" and wind = "fasle" then yes 

Ich weiß wirklich nicht, wie

1

fortzusetzen Wenn Sie einen Entscheidungsbaum bauen basierend auf ID3-Algorithmus, können Sie diesen Pseudo-Code verweisen.

ID3 (Examples, Target_Attribute, Attributes) 
Create a root node for the tree 
If all examples are positive, Return the single-node tree Root, with label = +. 
If all examples are negative, Return the single-node tree Root, with label = -. 
If number of predicting attributes is empty, then Return the single node tree Root, 
with label = most common value of the target attribute in the examples. 
Otherwise Begin 
    A ← The Attribute that best classifies examples. 
    Decision Tree attribute for Root = A. 
    For each possible value, vi, of A, 
     Add a new tree branch below Root, corresponding to the test A = vi. 
     Let Examples(vi) be the subset of examples that have the value vi for A 
     If Examples(vi) is empty 
      Then below this new branch add a leaf node with label = most common target value in the examples 
     Else below this new branch add the subtree ID3 (Examples(vi), Target_Attribute, Attributes – {A}) 
End 
Return Root 

Wenn Sie mehr über ID3-Algorithmus erfahren möchten, gehen Sie bitte auf den Link ID3 algorithm

Verwandte Themen