CHAID-Algorithmus für Entscheidungsbäume

Inhalt

Der Baum beginnt mit dem Wurzelknoten bestehend aus den vollständigen Daten und, anschließend, Verwenden Sie intelligente Strategien, um Knoten in mehrere Zweige zu unterteilen.

Der ursprüngliche Datensatz wurde dabei in Teilmengen unterteilt.

Um die grundlegende Frage zu beantworten, dein unbewusstes Gehirn macht einige Berechnungen (im Lichte der unten aufgezeichneten Beispielfragen) und kauft am Ende die nötige Menge Milch. Ist das normal oder unter der Woche?

An Werktagen benötigen wir 1 Liter Milch.

Es ist ein Wochenende? Am Wochenende brauchen wir 1,5 Liter Milch.

Ist es richtig zu sagen, dass wir heute auf Gäste rechnen?? Wir müssen kaufen 250 Zusätzliche ML Milch für jeden Gast, usw.

Bevor Sie zur hypothetischen Idee von Entscheidungsbäumen springen, Wie wäre es, wenn wir zunächst erklären, was Entscheidungsbäume sind?? es ist mehr, Warum wäre es eine gute Idee für uns, sie zu verwenden??

Warum Entscheidungsbäume verwenden??

Unter anderen überwachten Lernmethoden, baumbasierte Algorithmen Excel. Dies sind Vorhersagemodelle mit höherer Präzision und einfacherem Verständnis.

Wie funktioniert der Entscheidungsbaum?

Es gibt verschiedene Algorithmen, die geschrieben wurden, um einen Entscheidungsbaum zu erstellen, die für das Problem verwendet werden können.

Einige der am häufigsten verwendeten Algorithmen sind unten aufgeführt:

• WAGEN

• ID3

• C4,5

• CHAID

Jetzt werden wir den CHAID-Algorithmus Schritt für Schritt erklären. Davor, wir werden ein wenig über chi_square sprechen.

chi_square

Chi-Quadrat ist ein statistisches Maß, um den Unterschied zwischen den Neben- und Hauptknoten zu finden. Um dies zu berechnen, Wir finden die Differenz zwischen den beobachteten und erwarteten Zählungen der Zielvariablen für jeden Knoten und die quadrierte Summe dieser standardisierten Differenzen ergibt den Chi-Quadrat-Wert.

Formel

Um das dominanteste Merkmal zu finden, Chi-Quadrat-Tests verwenden, die auch als CHAID . bezeichnet werden, während ID3 Informationsgewinne nutzt, C4.5 verwendet das Verstärkungsverhältnis und CART verwendet den GINI-Index.

Heute, die meisten Programmierbibliotheken (zum Beispiel, Pandas für Python) Verwenden Sie standardmäßig die Metrik von Pearson für die Korrelation.

Die Chi-Quadrat-Formel: –

√ ((Ja – und ')2 / und ')

wobei y reell ist und erwartet wird und '.

Datensatz

Wir werden Entscheidungsregeln für den folgenden Datensatz erstellen. Die Entscheidungsspalte ist das Ziel, das wir anhand einiger Merkmale finden möchten.

Übrigens, Wir ignorieren die Tagesspalte, da es sich nur um die Zeilennummer handelt.

73416Screenshot20von202021-04-302001-23-16-4096747

um das Python-Implementierungs-Dataset aus der CSV-Datei unten zu lesen: –

Pandas als pd importieren
data = pd.read_csv("dataset.csv")

daten.kopf()

Wir müssen das wichtigste Merkmal in den Zielspalten finden, um den Knoten zum Aufteilen der Daten in diesem Datensatz auszuwählen.

Feuchtigkeitscharakteristik

Es gibt zwei Arten der Klasse, die in den Feuchtigkeitsspalten vorhanden sind: groß und normal. Jetzt berechnen wir die chi_square-Werte für sie.

Jawohl Nein Gesamt Erwartet Chi-Quadrat Ja Chi-Quadrat Nr
Hoch 3 4 7 3,5 0,267 0,267
niedrig 6 1 7 3,5 1.336 1.336

Für jede Reihe, die Summenspalte ist die Summe der Ja- und Nein-Entscheidungen. Die Hälfte der Gesamtspalte wird als Erwartungswert bezeichnet weil da 2 Klassen in Entscheidung. Anhand dieser Tabelle lassen sich die Chi-Quadrat-Werte leicht berechnen..

Zum Beispiel,

Chi-Quadrat ja für hohe Luftfeuchtigkeit ist √ ((3– 3,5)2 / 3,5) = 0,267

während der echte ist 3 und das erwartete ist 3,5.

Dann, der Chi-Quadrat-Wert der Feuchtekennlinie ist

= 0,267 + 0,267 + 1,336 + 1,336

= 3.207

Jetzt, wir finden auch Chi-Quadrat-Werte für andere Merkmale. Das Merkmal mit dem maximalen Chi-Quadrat-Wert ist der Entscheidungspunkt. Was ist mit der Windfunktion?

Windcharakteristik

Es gibt zwei Arten der Klasse, die in den Windspalten vorhanden sind: schwach und stark. Die folgende Tabelle ist die folgende Tabelle.

91463Screenshot20von202021-04-302000-18-19-5628735

Hier, der Chi-Quadrat-Testwert der Windkennlinie ist

= 0,802 + 0,802 + 0 + 0

= 1,604

Dies ist auch ein Wert kleiner als der Chi-Quadrat-Wert der Luftfeuchtigkeit. Was ist mit der Temperaturfunktion?

Temperaturcharakteristik

Es gibt drei Arten der Klasse, die in den Temperaturspalten vorhanden sind: heiße, kalt und glatt. Die folgende Tabelle ist die folgende Tabelle.

49998Screenshot20von202021-04-302000-26-42-2621906

Hier, der Chi-Quadrat-Testwert der Temperaturkennlinie ist

= 0 + 0 + 0,577 + 0,577 + 0,707 + 0,707

= 2.569

Dies ist ein Wert kleiner als der Chi-Quadrat-Wert der Luftfeuchtigkeit und auch größer als der Chi-Quadrat-Wert des Windes. Was ist mit der Outlook-Funktion??

Outlook-Funktion

Es gibt drei Arten von Klassen in den Temperaturspalten: sonnig, regnerisch und bewölkt. Die folgende Tabelle ist die folgende Tabelle.

72011Screenshot20von202021-04-302000-31-37-8035648

Hier, der Wert des Chi-Quadrat-Tests der Perspektivenfunktion ist

= 0,316 + 0,316 + 1,414 + 1,414 + 0,316 + 0,316

= 4.092

Wir haben die Chi-Quadrat-Werte aller Merkmale berechnet. Lass uns sie alle an einem Tisch sehen.

35775Screenshot20von202021-04-302000-40-07-9441197

Wie es aussieht, die Outlook-Spalte hat den höchsten und höchsten Chi-Quadrat-Wert. Dies impliziert, dass es das Hauptmerkmal der Komponente ist. Zusammen mit diesen Werten, Wir werden dieses Feature im Root-Knoten platzieren.

47825Screenshot20von202021-04-302000-44-22-3290339

Wir haben die Rohinformationen basierend auf den Outlook-Klassen in der obigen Abbildung getrennt. Zum Beispiel, der getrübte Zweig hat einfach eine positive Entscheidung über den Subinformationsdatensatz. Dies impliziert, dass der CHAID-Baum JA zurückgibt, wenn das Panorama bewölkt ist.

Sowohl sonnige als auch regnerische Äste haben Ja- und Nein-Entscheidungen. Wir werden Chi-Quadrat-Tests für diese subinformativen Datensätze anwenden.

Ausblick = sonniger Zweig

Diese Filiale hat 5 Beispiele. Heutzutage, wir suchen das vorherrschende Merkmal. Übrigens, Wir werden die Outlook-Funktion jetzt ignorieren, da sie völlig gleich sind. Am Ende des Tages, Wir finden die vorherrschenden Spalten zwischen Temperatur, Feuchtigkeit und Wind.

33074Screenshot20von202021-04-302000-51-09-2093971

Feuchtefunktion bei sonnigem Panorama

50266Screenshot20von202021-04-302000-52-10-9787942

Der Chi-Quadrat-Wert der Luftfeuchtigkeitscharakteristik für eine sonnige Perspektive ist

= 1,225 + 1,225 + 1 + 1

= 4.449

Windfunktion bei sonnigem Panorama

81090Screenshot20von202021-04-302000-53-07-7374550

Der Chi-Quadrat-Wert der Windcharakteristik für die sonnige Perspektive ist

= 0,408 + 0,408 + 0 + 0

= 0,816

Temperaturfunktion bei sonnigem Panorama

70847Screenshot20von202021-04-302000-54-06-7874101

Dann, der Chi-Quadrat-Wert der Temperaturkennlinie für die sonnige Perspektive ist

= 1 + 1 + 0 + 0 + 0,707 + 0,707

= 3.414

Wir haben Chi-Quadrat-Werte für die sonnige Perspektive gefunden. Lass uns sie alle an einem Tisch sehen.

38365Screenshot20von202021-04-302000-56-30-1399006

Heutzutage, Luftfeuchtigkeit ist das vorherrschende Merkmal des sonnigen Pavillonzweigs. Wir werden diese Eigenschaft als Entscheidungsregel verwenden.

96005Screenshot20von202021-04-302000-59-53-5395113

Heutzutage, beide Feuchtezweige für die sonnige Perspektive haben nur eine Entscheidung wie oben beschrieben. Der CHAID-Baum gibt NEIN für eine sonnige Perspektive und hohe Luftfeuchtigkeit und JA für eine sonnige Perspektive und normale Luftfeuchtigkeit zurück.

Regenperspektive Zweig

In Wirklichkeit, dieser Zweig hat sowohl positive als auch negative Entscheidungen. Wir müssen den Chi-Quadrat-Test für diesen Zweig anwenden, um eine genaue Entscheidung zu treffen. Diese Filiale hat 5 verschiedene Instanzen, wie im beigefügten Datensatz zur Erfassung von Unterinformationen gezeigt. Wie wäre es, wenn wir das vorherrschende Merkmal zwischen der Temperatur herausfinden, Feuchtigkeit und Wind?

18553Screenshot20von202021-04-302001-03-59-3273514

Windfunktion für Regenvorhersage

Es gibt zwei Arten einer Klasse, die in der Windcharakteristik für die Regenperspektive vorhanden ist: schwach und stark.

28165Screenshot20von202021-04-302001-06-13-6191309

Dann, der Chi-Quadrat-Wert der Windcharakteristik für die Regenperspektive ist

= 1,225 + 1,225 + 1 + 1

= 4.449

Feuchtefunktion für Regenvorhersage

Es gibt zwei Arten von Klassen, die in der Feuchtigkeitscharakteristik für die Regenperspektive vorhanden sind: groß und normal.

95294Screenshot20von202021-04-302001-08-24-8481698

Der Chi-Quadrat-Wert der Feuchtekennlinie für die Regenperspektive ist

= 0 + 0 + 0.408 + 0.408

= 0,816

Temperaturverlauf für Regenvorhersage

Es gibt zwei Arten von Klassen in den Temperatureigenschaften für die Regenperspektive, wie warm und kühl.

71686Screenshot20von202021-04-302001-11-06-1374808

Der Chi-Quadrat-Wert der Temperaturkennlinie für die Regenperspektive ist

= 0 + 0 + 0.408 + 0.408

= 0,816

Wir haben festgestellt, dass alle Chi-Quadrat-Werte für Regen der Perspektivzweig sind. Sehen wir sie alle an einem Tisch.

57121Screenshot20von202021-04-302001-13-00-8279890

Deswegen, Die Windfunktion ist der Gewinner des Regens ist der Zweig der Perspektive. Fügen Sie diese Spalte in den verbundenen Zweig ein und sehen Sie sich den entsprechenden subinformativen Datensatz an.

44631Screenshot20von202021-04-302001-15-49-7763127

Wie es aussieht, alle Filialen haben subinformative Datensätze mit einer einzigen Entscheidung, wie ja oder nein. Diesen Weg, wir können den CHAID-Baum wie unten dargestellt generieren.

38808Screenshot20von202021-04-302001-17-36-9506564

Die endgültige Form des CHAID-Baumes.

Python-Implementierung eines Entscheidungsbaums mit CHAID

von chefboost importiere Chefboost als cb
Pandas als pd importieren
data = pd.read_csv("/home/kajal/Downloads/weather.csv")
daten.kopf()
79402Screenshot20von202021-05-012012-47-22-4323771
config = {"Algorithmus": "CHAID"}

Baum = cb.fit(Daten, Konfiguration)

Baum

89872Screenshot20from202021-05-012012-59-00-1485956
# test_instance = ['sonnig','heiße','hoch','schwach','Nein']
test_instance = data.iloc[2]

test_instanz
94699Screenshot20von202021-05-012012-48-40-1194733
cb.vorhersagen(Baum,test_instanz)

Ausgang:- 'Jawohl'

#obj[0]: Ausblick, obj[1]: Temperatur, obj[2]: Feuchtigkeit, obj[3]: windig
# {"Besonderheit": "Ausblick", "Instanzen": 14, "metrischer_wert": 4.0933, "Tiefe": 1}

def findEntscheidung(obj): 
          wenn obj[0] == 'regnerisch':
          # {"Besonderheit": " windig", "Instanzen": 5, "metrischer_wert": 4.4495, "Tiefe": 2}
                  wenn obj[3] == 'schwach':
                         return 'yes'
                  elif obj[3] == 'stark':
                         return 'no'
                  else:
                          return 'no'
          elif obj[0] == 'sonnig':
           # {"Besonderheit": " Feuchtigkeit", "Instanzen": 5, "metrischer_wert": 4.4495, "Tiefe": 2}
                 wenn obj[2] == 'hoch':
                        return 'no'
                 elif obj[2] == 'normal':
                         return 'yes'
                 else:
                         return 'yes'
         elif obj[0] == 'bewölkt':
                      return 'yes'
         else:
                    'Ja' zurückgeben

Fazit

Deswegen, Wir haben in diesem Beitrag einen CHAID-Entscheidungsbaum von Grund auf neu erstellt. CHAID verwendet eine Chi-Quadrat-Messmetrik, um das wichtigste Merkmal zu entdecken und es rekursiv anzuwenden, bis subinformative Datensätze eine einzige Entscheidung haben. Obwohl es sich um einen Legacy-Entscheidungsbaumalgorithmus handelt, es ist immer noch der gleiche Prozess für Sortierprobleme.

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.