English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python Implementierung des Klassifikationsalgorithmus für Decision Trees

Dieser Artikel teilt den spezifischen Code zur Implementierung des Klassifikationsalgorithmus des Entscheidungsbaums in Python mit, um allen zur Verfügung zu stellen, der genaue Inhalt ist wie folgt

1、Überblick

Entscheidungsbaum (Decision Tree) - ist ein weit verbreiteter Klassifikationsalgorithmus.

Der Vorteil des Entscheidungsbaums gegenüber dem Bayes-Algorithmus liegt darin, dass der Aufbau des Entscheidungsbaums keine Fachkenntnisse oder Parameteranpassung erfordert

In der Praxis ist der Entscheidungsbaum für die explorative Entdeckung von Wissen besser geeignet.

2、Algorithmusdenken

In einfachen Worten, die Idee der Entscheidungsbaum-Klassifikation ähnelt der Suche nach einem Partner. Stellen Sie sich vor, eine Mutter will einer Tochter einen Freund vorstellen, und hier ist der folgende Dialog:

      Töchterchen: Wie alt ist sie?

      Mutter:26。

      Töchterchen: Ist sie schön?

      Mutter: Sie ist sehr charmant.

      Töchterchen: Hat sie ein hohes Einkommen?

      Mutter: Nicht besonders hoch, durchschnittlich.

      Töchterchen: Ist sie Beamte?

      Mutter: Ja, sie arbeitet im Finanzamt.

      Töchterchen: Na gut, ich werde es mal sehen. 

Der Entscheidungsprozess dieses Mädchens ist ein typischer Klassifikationstree-Entscheidungsprozess.

Substanz:Durch Alter, Äußeres, Einkommen und Beamtenstatus die Männer in zwei Kategorien: Treffen und Nichttreffen zu unterteilen

Angenommen, die Anforderungen dieses Mädchens an Männer sind:3Unter 20 Jahren, mittlere oder höhere äußere Erscheinung und höhere oder mittlere Einkommen oder Beamte mit mittleren oder höheren Einkommen, dann kann dies durch das folgende Diagramm das Entscheidungslogik dieses Mädchens dargestellt werden

Das obige Diagramm zeigt die Strategie der Entscheidung dieses Mädchens, ob es einen Termin mit einem Partner treffen will, darunter:

◊Grüne Knoten zeigen die Entscheidungsbedingungen an

◊Orange Knoten zeigen das Entscheidungsresultat an

◊Pfeile zeigen den Entscheidungsweg unter verschiedenen Bedingungen eines bestimmten Entscheidungsbedingungen

Die roten Pfeile im Diagramm zeigen den Entscheidungsprozess der Mädchen im obigen Beispiel an. 

Dieses Diagramm kann im Grunde als ein Entscheidungsbaum betrachtet werden, gesagt wird, es "kann im Grunde betrachtet werden", weil die Bedingungen im Diagramm nicht quantifiziert sind, wie Einkommen hoch, mittler, etc., noch nicht als Entscheidungsbaum im eigentlichen Sinne betrachtet werden können. Wenn alle Bedingungen quantifiziert werden, wird es ein echter Entscheidungsbaum. 

Der Schlüssel der Entscheidungsbaum-Klassifikationsalgorithmen ist die Konstruktion eines besten Entscheidungsbaums basierend auf "vorherigen Daten", um die Kategorien unbekannter Daten vorherzusagen 

Entscheidungsbaum: Es ist eine Baumstruktur (kann ein Binärbaum oder ein nicht binärer Baum sein). Jeder nicht blättrige Knoten stellt einen Test über ein Merkmal dar, jede Branche repräsentiert die Ausgabe dieses Merkmals in einem bestimmten Wertebereich, und jeder Blattknoten enthält eine Kategorie. Der Prozess der Entscheidungsfindung mit dem Entscheidungsbaum ist von der Wurzelknoten aus zu beginnen, das entsprechende Merkmal des zu klassifizierenden Elements zu testen und entsprechend der Werte die Ausgangsbranche auszuwählen, bis zum Blattknoten zu gelangen, um die in der Blattknoten gespeicherte Kategorie als Entscheidungsresultat zu erhalten.

3、Entscheidungsbaum-Konstruktion

Geben wir an, dass es folgende Datenmuster zur Beurteilung der Qualität der Äpfel gibt:

Stammdaten    Rot     Groß      Guter Apfel

0         1      1         1

1         1      0         1

2         0      1         0

3         0      0         0

Stammdaten enthält2Attribute gibt es, A0 zeigt an, ob der Apfel rot ist. A1Anzeige, ob der Apfel groß ist. Wenn man daraufhin basierend auf diesem Datenmuster einen Entscheidungsbaum zum automatischen Beurteilen der Qualität der Äpfel konstruieren will.

Da die Daten in diesem Beispiel nur2Attribute, daher können wir alle möglichen decision trees, die man konstruieren kann, aufzählen, da2Baum, wie im folgenden Diagramm gezeigt:

Es ist offensichtlich, dass der Entscheidungsbaum, der links zunächst A0 (rot) als Grundlage für die Teilung verwendet, besser ist als der Entscheidungsbaum, der rechts A verwendet.1(Größe) als Grundlage für die Teilung des Entscheidungsbaums.

Natürlich ist dies ein intuitiver Erkenntnisprozess. Der Intuition ist jedoch显然不适合转化为程序的实现,因此需要一种定量的考察来评价这两棵树的性能优劣。

Die quantitativen Untersuchungsmethoden, die für die Bewertung des Entscheidungsbaums verwendet werden:Berechnung des Informationsschwerpunkts der每种划分情况的增益:

Wenn die Informationsschwerpunkte durch die Zuordnung der Daten nach einem bestimmten gewählten Attribut am stärksten abnehmen, dann ist dieses Zuordnungsattribut die beste Wahl. 

Basis für die Auswahl der Attributteiler (d.h. die Konstruktion eines Entscheidungsbaums):

Einfach gesagt, der Informationsschwerpunkt ist das Ausmaß des Zufalls und der Unordnung.

Durch Berechnung zu verstehen:

1、die Informationsschwerpunkte der ursprünglichen Stammdatensätze:

Gesamtzahl der Beispiele:4

Gute Äpfel:2

Schlechte Äpfel:2

Schwerpunkt der Information: -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1

Informationsschwerpunkt ist1Darstellung des derzeitigen Zustands als vollständig chaotisch und unordentlich.

2、两颗决策树的划分结果熵增益计算

树1先选A0作划分,各子节点信息熵计算如下:

0,1叶子节点有2个正例,0个负例。信息熵为:e1 = -(2/2 * log(2/2) + 0/2 * log(0/2)) = 0。

2,3叶子节点有0个正例,2个负例。信息熵为:e2 = -(0/2 * log(0/2) + 2/2 * log(2/2)) = 0。

因此选择A0划分后的信息熵为每个子节点的信息熵所占比重的加权和:E = e1*2/4 + e2*2/4 = 0。

选择A0做划分的信息熵增益G(S, A0)=S - E = 1 - 0 = 1.

事实上,决策树叶子节点表示已经都属于相同类别,因此信息熵一定为0。 

树2先选A1作划分,各子节点信息熵计算如下:

0,2子节点有1个正例,1个负例。信息熵为:e1 = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1。

1,3子节点有1个正例,1个负例。信息熵为:e2 = -(1/2 * log(1/2) + 1/2 * log(1/2)) = 1。

因此选择A1划分后的信息熵为每个子节点的信息熵所占比重的加权和:E = e1*2/4 + e2*2/4 = 1。也就是说分了跟没分一样!

选择A1做划分的信息熵增益G(S, A1)=S - E = 1 - 1 = 0. 

因此,每次划分之前,我们只需要计算出信息熵增益最大的那种划分即可。

先做A0划分时的信息熵增益为1>先做A1划分时的信息熵增益,所以先做A0划分是最优选择!!!

4、算法指导思想

经过决策属性的划分后,数据的无序度越来越低,也就是信息熵越来越小。 

5、算法实现

梳理出数据中的属性

比较按照某特定属性划分后的数据的信息熵增益,选择信息熵增益最大的那个属性作为第一划分依据,然后继续选择第二属性,以此类推。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于互联网,版权归原作者所有。内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#oldtoolbag.com(在发邮件时,请将#更换为@进行举报,并提供相关证据。一经查实,本站将立刻删除涉嫌侵权内容。)

Möchten Sie auch