Sie sind auf Seite 1von 63

Geschäftsbericht – Projekt zur prädiktiven Modellierung

By- Shorya Goel

Problem 1- Sie werden von einem der führenden Nachrichtensender CNBE eingestellt, der die jüngsten
Wahlen analysieren möchte. Diese Umfrage wurde unter 1525 Wählern mit 9 Variablen durchgeführt. Sie
müssen ein Modell erstellen, um vorherzusagen, für welche Partei ein Wähler auf der Grundlage der
gegebenen Informationen stimmen wird, um eine Exit-Umfrage zu erstellen, die bei der Vorhersage des
Gesamtsiegs und der von einer bestimmten Partei abgedeckten Sitze hilft.

1.1 Lesen des Datensatzes. Führen Sie die deskriptive Statistik und die
Nullwertbedingungsprüfung durch. Schreibe eine Schlussfolgerung darauf.

Lesen Sie den Datensatz – "Election_Data.xlsx"

Explorative Datenanalyse:
Top 5 Einträge im Datensatz.

"Unbenannt: 0" ist eine Variable, die einfach den Index in den Daten darstellt. Daher sollte es fallen
gelassen werden, da es im Modell keinen Nutzen hat.

Außerdem enthalten einige Variablen den Operator ‘.’ in ihrem Namen, der sich auf das Modell auswirken
kann. Daher ersetzen wir das ‘.‘. ’Mit‘_’Operator.

Form des Datensatzes


Anzahl der Zeilen: 1525
Anzahl der Spalten: 9

Infos zum Datensatz


Im Datensatz sind insgesamt 10 Variablen vorhanden.
2 Kategorische Variablen - Abstimmung, Geschlecht.
7 Numerische Typvariablen - Alter, Economic_COND_National, Economic_COND_Haushalt, Blair, Den
Haag, Europa, politisches_Wissen.

Beschreibende Statistiken des Datensatzes


Numerische Spalten -

Kategorische Spalten-

Die obige Tabelle enthält Informationen wie eindeutige Werte, Mittelwert, Median, Standardabweichung,
Fünf-Punkte-Zusammenfassung, Min-Max, Zählung usw. für alle im Datensatz vorhandenen Variablen.

Auf Nullwerte prüfen-


Aus dem Vorstehenden wird deutlich, dass im Datensatz keine Nullwerte vorhanden sind.
Die Funktionisnull () wird hier verwendet, um nach fehlenden Werten zu suchen.
Die Funktion sum() wird verwendet, um die Gesamtzahl der in einer bestimmten Variablen vorhandenen
Nullwerte zu ermitteln.

Auf Duplikate prüfen-


Es gibt insgesamt 8 doppelte Zeilen.

Da es keine Identifikation oder einen eindeutigen Code für jede vorhandene Zeile gibt. Wir können nicht
eindeutig sagen, dass dies die gleiche Person oder anders ist. Daher werden wir die Duplikate in diesem
Fall nicht entfernen.

Schiefe des Datensatzes

Die Schiefe ist ein Maß für die Asymmetrie der Wahrscheinlichkeitsverteilung einer reellwertigen
Zufallsvariablen um ihren Mittelwert.
Nur zwei Variablen sind positiv verzerrt und ruhen negativ verzerrt mit maximaler Verzerrung in Blair.

Überprüfung des Variationskoeffizienten


Der Variationskoeffizient (CV) ist ein Maß für die relative Variabilität. Es ist das Verhältnis der
Standardabweichung zum Mittelwert (Durchschnitt).

1.2 Führen Sie eine univariate und bivariate Analyse durch. Führen Sie
explorative Datenanalysen durch. Nach Ausreißern suchen.

Univariate Analyse
Für kontinuierliche Variablen
Wir können sehen, dass alle numerischen Variablen normalverteilt sind (aber nicht ganz normal und in
einigen Fällen auch multimodal sind.
Es gibt Ausreißer in den Variablen "economic_cond_national" und "economic_cond_household", die auch
aus den Boxplots auf der rechten Seite ersichtlich sind.
Auch aus den Boxplots sind die Min- und Max-Werte der Variablen nicht sehr klar, wir können sie separat
erhalten, während wir nach Ausreißern suchen.
Bivariate Analyse-

Pairplot-

Pairplot erzählt uns von der Interaktion jeder Variablen mit jeder anderen vorhandenen Variablen.
Daher besteht keine starke Beziehung zwischen den Variablen.
Es gibt jedoch eine Mischung aus positiven und negativen Beziehungen, die erwartet wird.

Insgesamt handelt es sich um eine grobe Schätzung der Wechselwirkungen, ein klareres Bild kann durch
Heatmap-Werte und auch verschiedene Arten von Diagrammen erhalten werden.
Analyse - Blair und Alter

Menschen über 45 Jahre denken im Allgemeinen, dass Blair gute Arbeit leistet.

Analyse - Haag und Alter

Den Haag weist bei Menschen über 50 Jahren eine etwas höhere Konzentration an Nuteralpunkten auf als
Blair.

Catplot-Analyse - Blair (count) auf economic_cond_household.


Catplot-Analyse - Den Haag (count) auf economic_cond_household

Blair hat mehr Punkte in Bezug auf Wirtschaftshaushalte als Den Haag.

Catplot-Analyse - Blair (count) auf economic_cond_national


Catplot-Analyse - Den Haag (count) auf economic_cond_national

Blair hat mehr Punkte in Bezug auf die wirtschaftliche Nationalität als Den Haag.
Catplot-Analyse - Blair (count) auf Europa

Catplot-Analyse - Den Haag (count) auf Europa

Wenn wir uns die Daten in ganz Europa ansehen, dann ist Blair führend.
Catplot-Analyse - Blair (count) auf political_knowledge

Catplot-Analyse - Den Haag (count) auf political_knowledge

In Bezug auf politisches Wissen wird Blair als besser angesehen.


Kovarianzmatrix-

Korrelationsmatrix-

Heatmap-

Multikollinearität ist ein wichtiges Thema, das dem Modell schaden kann. Heatmap ist eine gute
Möglichkeit, dieses Problem zu identifizieren. Es gibt uns eine grundlegende Vorstellung von der
Beziehung, die die Variablen zueinander haben.
Beobachtungen-
 Die höchste positive Korrelation besteht zwischen „economic_cond_national“ und
„economic_cond_household“ (35 %). Aber das Gute ist, dass es nicht riesig ist.
 Die höchste negative Korrelation besteht zwischen „Blair“ und „Europa“ (30 %), aber auch diese ist
nicht riesig.

Daher ist Multikollinearität in diesem Datensatz kein Problem.

Ausreißerprüfung/Behandlung-

Mit Boxplot-

Es gibt Ausreißer in den Variablen "economic_cond_national" und "economic_cond_household", die aus


den Boxplots ersichtlich sind.
Wir werden die oberen und unteren Grenzen finden, um ein klares Bild der Ausreißer zu erhalten.
Die obere und untere Grenze sind nicht so weit voneinander entfernt und die Ausreißer befinden sich auf
der unteren Seite nur mit dem Wert 1, wobei die untere Grenze 1,5 beträgt.
Daher ist es nicht ratsam, die Ausreißer in diesem Fall zu behandeln.
Wir werden voranschreiten, ohne die Ausreißer zu behandeln.

1.3 Codieren Sie die Daten (mit Zeichenfolgenwerten) für die Modellierung. Ist
hier eine Skalierung notwendig oder nicht? Datenaufteilung: Aufteilung der
Daten in Zug und Test (70:30).
Codierung des Datensatzes

Da viele Machine-Learning-Modelle nicht mit String-Werten arbeiten können, werden wir die kategorialen
Variablen codieren und ihre Datentypen in Ganzzahltypen konvertieren.
Aus den Informationen des Datensatzes wissen wir, dass es 2 kategoriale Typvariablen gibt, daher müssen
wir diese 2 Variablen mit der geeigneten Technik kodieren.
Diese beiden Variablen sind "Abstimmung" und "Geschlecht". Ihre Verteilung ist unten angegeben.

Geschlechterverteilung -
Stimmenverteilung -

Aus den obigen Ergebnissen können wir sehen, dass beide Variablen nur zwei Klassifizierungen von Daten enthalten.
Wir können eine einfache kategoriale Konvertierung verwenden (pd.Categorical () oder Dummy-Codierung mit
drop_first = True, beide funktionieren hier). Dadurch werden die Werte in 0 und 1 konvertiert. Da es keine Ebene
oder Reihenfolge in der Unterkategorie gibt, wird jede Codierung das gleiche Ergebnis liefern.
Der Datentyp nach der Konvertierung ist das int8-Format. Wir können diese in das int64-Format konvertieren. Es
funktioniert auch, wenn wir es nicht in int64 ändern.

Nach der Codierung-

Info-

Daten-

Nun kann das Modell auf diesen Daten aufbauen.

Skalierung des Datensatzes


Die Skalierung erfolgt so, dass die Daten, die zu den unterschiedlichsten Bereichen gehören, in einem
ähnlichen relativen Bereich zusammengeführt werden können und so die beste Leistung des Modells
hervorbringen.
Im Allgemeinen führen wir die Funktionsskalierung durch, während wir uns mit den Gradientenabstiegs-
basierten Algorithmen wie der linearen und logistischen Regression befassen, da diese sehr empfindlich
auf den Bereich der Datenpunkte reagieren. Darüber hinaus ist es sehr nützlich, um die Multikollinearität in
den Daten zu überprüfen und zu reduzieren. Vif (Varianzinflationsfaktor) ist ein Wert, der das
Vorhandensein von Multikollinearität anzeigt. Dieser Wert kann erst nach dem Erstellen des
Regressionsmodells berechnet werden.
Es hängt also völlig von dem Modell ab, das wir erstellen, ob eine Skalierung erforderlich ist oder nicht.
Normalerweise würden die entfernungsbasierten Methoden (z. B.: KNN) eine Skalierung erfordern, da sie
empfindlich auf extreme Unterschiede reagieren und eine Verzerrung verursachen können. Die
baumbasierte Methode (z. B.: Entscheidungsbäume) würde jedoch keine Skalierung im Allgemeinen
erfordern, da sie unnötig ist (da sie die Split-Methode verwendet).

Hier werden wir die Skalierung für beide Typen von Modellen durchführen und prüfen, ob es einen
Unterschied in der Leistung des Modells gibt.
Nachdem wir uns die Daten angesehen haben, müssen wir nur die Variable "Alter" skalieren, da der Rest
der Variablen im Bereich von 0-10 bei max.
Wir werden hier die Z-Core-Skalierung verwenden, um die Altersvariable zu skalieren.
Nach der Skalierung mit z-Score oder Standardskalierung, wobei Mittelwert=0 und Standardabweichung=1
ist.

Data Split: Aufteilung der Daten in Test und Zug

Vor der Aufteilung müssen wir die Zielvariable finden. Hier ist die Zielvariable „Vote“.
Votum Datenverteilung-

Es gibt ein Datenungleichgewicht in der Variablen, wie oben gesehen, so dass wir sie nicht im Verhältnis
50:50 aufteilen können, sondern die Daten im Verhältnis 70:30 aufteilen. Außerdem werden wir die
Oversampling-Technik Smote verwenden, um zu überprüfen, ob sie das Modell verbessert oder nicht.

Hier werden wir 2 verschiedene Zug- und Testsets verwenden, eines ohne skalierte Daten und eines mit
skalierten Daten. Dies wird uns helfen zu verstehen, ob die Skalierung die Leistung verbessern kann oder
nicht.

Jetzt werden sowohl X- als auch y-Daten im Verhältnis 70:30 aufgeteilt, wobei die Zugdaten 70 % und die
Testdaten 30 % betragen.
Nach dem Aufteilen - die Form der Daten
Hier
X_Train - bezeichnet 70 % des Trainingsdatensatzes mit 8 Spalten (mit Ausnahme der Zielspalte namens
"Abstimmung").
X_Test - bezeichnet 30 % Testdatensatz mit 8 Spalten (mit Ausnahme der Zielspalte namens
"Abstimmung").
y_train- bezeichnet den 70 % -Trainingsdatensatz mit nur der Zielspalte "Abstimmung".
y_test- bezeichnet 30 % Testdatensatz mit nur der Zielspalte namens "Abstimmung".

In ähnlicher Weise werden die Daten für skalierte Daten UND SMOTE-Oversampling-Daten aufgeteilt.

1.4 Logistische Regression und LDA (lineare Diskriminanzanalyse) anwenden.


Interpretieren Sie die Schlussfolgerungen beider Modelle.
Logistisches Regressionsmodell

Vor dem Anpassen des Modells ist es wichtig, die Hyperparameter zu kennen, die beim Modellbau eine
Rolle spielen. Parameter:
• Strafe
• Löser
• max_iter
• Tol, etc.
Um die beste Kombination unter diesen Parametern zu finden, verwenden wir die "GridSearchCV" -
Methode. Diese Methode kann mehrere Kombinationen dieser Parameter gleichzeitig durchführen und uns
die besten optimalen Ergebnisse liefern.
Nach der Durchführung der Suche ergaben sich die besten Parameter-

Nun die Ergebnisse für unskalierte Daten-

Intercept für das Modell ist: [2.83418594]


Funktionswichtigkeit -

Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,8537117903930131

Wahrscheinlichkeiten auf dem Testset-(0 bevorzugt die Konservative Partei und 1 bevorzugt die Labour
Party)
Nun die Ergebnisse für skalierte Daten-

Intercept für das Modell ist: [2.01329492]


Funktionswichtigkeit -

Zuggenauigkeit - 0,8303655107778819
Testgenauigkeit - 0,8493449781659389

Wahrscheinlichkeiten auf dem Test-Set-


Statistische Modelle können auch hier beim Aufbau des logistischen Regressionsmodells verwendet
werden, um mehr über die Statistiken des Modells im Hintergrund zu erfahren.

Schlussfolgerungen
Pseudo R2 = 0,3809 zeigt, dass das Modell wirklich gut abschneidet, da der Wert zwischen 0,2 – 0,4 zeigt,
dass ein Modell gut abschneidet.
Das Modell schneidet bei den unskalierten Daten etwas gut ab.
Es gibt keine Unter- oder Überanpassung, da die Genauigkeit sowohl für Test- als auch für Zugdaten nicht
sehr unterschiedlich ist.

Außerdem habe ich SMOTE (Oversampling-Technik) durchgeführt, deren Ausgang im


Leistungsmodellvergleich weiter diskutiert wird.

LDA-MODELL (Lineare Diskriminanzanalyse)

Vor dem Anpassen des Modells ist es wichtig, die Hyperparameter zu kennen, die beim Modellbau eine
Rolle spielen.
Parameter:
• Löser
• Schrumpfung
Nach der Durchführung der GridSearchCV sind die besten erhaltenen Parameter-
 shrinkage = 'auto'
 solver = 'lsqr'
Nun die Ergebnisse für unskalierte Daten-

Intercept für das Modell ist: [3.72460468]


Funktionswichtigkeit -

Zuggenauigkeit - 0,8284910965323337
Prüfgenauigkeit - 0,851528384279476

Wahrscheinlichkeiten auf dem Test-Set-

Nun die Ergebnisse für skalierte Daten-

Intercept für das Modell ist: [2.48783541]


Funktionswichtigkeit -

Zuggenauigkeit - 0,828491096532333
Prüfgenauigkeit - 0,851528384279476
Wahrscheinlichkeiten auf dem Test-Set-

Schlussfolgerungen
Das Modell hat eine gute Leistung erbracht und die Genauigkeit sowohl für die skalierten als auch für die
nicht skalierten Daten ist gleich.

Außerdem habe ich SMOTE (Oversampling-Technik) durchgeführt, deren Ausgang im


Leistungsmodellvergleich weiter diskutiert wird.

1.5. Wenden Sie das KNN-Modell und das Naive Bayes-Modell an.
Interpretieren Sie die Schlussfolgerungen jedes Modells.

K Modell der nächsten Nachbarn

KNN ist ein entfernungsbasierter überwachter maschineller Lernalgorithmus, mit dem sowohl
Klassifizierungs- als auch Regressionsprobleme gelöst werden können. Der Hauptnachteil dieses Modells
ist, dass es bei großen Datenmengen sehr langsam wird und daher eine unpraktische Wahl ist, bei der
schnell Rückschlüsse gezogen werden müssen.

Vor dem Anpassen des Modells ist es wichtig, die Hyperparameter zu kennen, die beim Modellbau eine
Rolle spielen.
Parameter:
• n_Nachbarn
• Gewichte
• Algorithmus
Nach der Durchführung der "GridSearchCV" sind die besten erhaltenen Parameter-
• 'n_neighbors' = 5,
• 'Gewichte' = einheitlich,
• 'algorithm' = auto

Nun die Ergebnisse für unskalierte Daten-

Zuggenauigkeit - 0,8369259606373008
Prüfgenauigkeit - 0,8165938864628821

Wahrscheinlichkeiten auf dem Test-Set-


Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,8603561387066542
Prüfgenauigkeit - 0,8384279475982532

Wahrscheinlichkeiten auf dem Test-Set-

Rückschluss-
Das Modell schnitt mit den skalierten Daten besser ab.
Auch insgesamt hat das Modell gut abgeschnitten, aber es kann zu einer leichten Überanpassung
kommen, da die Genauigkeit eher für den Zug eingestellt ist als für den Test.

Naives Bayes-Modell
Naive Bayes-Klassifikatoren sind ein Modell, das auf der Anwendung des Bayes-Theorems mit starken
(naiven) unabhängigen Annahmen zwischen den Merkmalen basiert. Diese Annahmen sind jedoch in
realen Szenarien möglicherweise nicht der perfekte Fall.

Satz von Bayes-

Hier ist die Methode, die wir verwenden werden, die GaussianNB() -Methode, auch bekannt als
BernoulliNB(). Diese Methode erfordert, dass alle Merkmale kategorial sind. Eine allgemeine Annahme bei
dieser Methode ist, dass die Daten einer Normal- oder Gaußverteilung folgen.
Es gibt keine spezifischen Parameter in diesem Modell wie andere, daher passen wir das Modell einfach
mit Standardparametern an.

Nun die Ergebnisse für unskalierte Daten-

Zuggenauigkeit - 0,8219306466729147
Prüfgenauigkeit - 0,8471615720524017

Wahrscheinlichkeiten auf dem Test-Set-

Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,8219306466729147
Prüfgenauigkeit - 0,8471615720524017

Wahrscheinlichkeiten auf dem Test-Set-


Rückschluss-
Das Modell hat sowohl für unskalierte als auch für skalierte Daten genau die gleiche Leistung erbracht.
Dieses Modell hat sich bei den Daten ohne Über- oder Unteranpassung gut bewährt.

1.6 Modellabstimmung, Bagging (Zufallswald sollte für Bagging verwendet werden)


und Boosting.
Modellabstimmung

Tuning ist der Prozess, bei dem die Leistung eines Modells maximiert wird, ohne dass es zu einer
Überanpassung oder zu einer zu hohen Varianz kommt. Beim maschinellen Lernen wird dies durch die
Auswahl geeigneter „Hyperparameter“ erreicht.

Die Rastersuche ist eine der gebräuchlichsten Methoden zur Optimierung der Parameter. In diesem wird
ein Satz von Parametern definiert und dann wird die Leistung für jede Kombination dieser Parameter
mittels Kreuzvalidierung bewertet. Dann von denen,

Modelle wie Bagging, Boosting, Gradienten-Boosting, Cat-Boosting usw. neigen dazu, Daten zu unter- oder
zu überpassen. Overfitting bedeutet, dass das Modell sehr gut mit den Zugdaten funktioniert, aber relativ
schlecht mit den Testdaten. Unterfütterung bedeutet, dass das Modell sehr gut mit den Testdaten
funktioniert, aber relativ schlecht mit den Trainingsdaten.

Absackmodell (Verwendung eines zufälligen Waldklassifikators)

Das Absacken ist eine Ensemble-Technik. Ensembletechniken sind die maschinellen Lerntechniken, die
mehrere Basismodelle kombinieren, um ein optimales Modell zu erhalten. Die Absackung wurde entwickelt,
um die Leistung bestehender Algorithmen für maschinelles Lernen zu verbessern, die bei der statistischen
Klassifizierung oder Regression verwendet werden. Es wird am häufigsten mit baumbasierten Algorithmen
verwendet. Es ist eine parallele Methode.

Jeder Basisklassifikator wird parallel zu einem Trainingssatz trainiert, der durch zufälliges Zeichnen von N
Daten aus dem Training generiert wird. Der Trainingssatz für jeden der Basisklassifikatoren ist unabhängig
voneinander.

Hier verwenden wir zufällige Gesamtstruktur als Basisklassifikator. Hyperparameter, die im Modell
verwendet werden, sind
• max_depth
• max_features
• min_samples_leaf
• min_samples_split
• n_Schätzer
Es gibt auch andere Parameter, aber wir werden diese für Gridsearch, Rest Standardwerte verwenden.
Nach der Durchführung der "GridSearchCV" sind die besten erhaltenen Parameter-
• ' max_depth ' = 5,
• ' max_features ' = 7,
• ' min_samples_leaf ' = 25,
• ' min_samples_split ' = 60,
• ' n_estimators ' = 101

Nun die Ergebnisse für unskalierte Daten-

Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,834061135371179

Wahrscheinlichkeiten auf dem Test-Set-

Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,834061135371179

Wahrscheinlichkeiten auf dem Test-Set-


Rückschluss-
Das Modell hat sowohl für unskalierte als auch für skalierte Daten genau die gleiche Leistung erbracht.
Dieses Modell schnitt bei den Daten ohne Über- oder Unteranpassung äußerst gut ab.

Boosting-Modell

Boosting ist auch eine Ensemble-Technik. Es verwandelt schwache Lernende in starke Lernende. Im
Gegensatz zum Absacken ist es eine sequentielle Methode, bei der das Ergebnis eines schwachen
Lernenden zum Input für den anderen wird und so weiter, wodurch die Leistung des Modells verbessert
wird.
Jedes Mal, wenn der Basis-Lernalgorithmus angewendet wird, generiert er eine neue Vorhersageregel für
schwache Lernende. Dies ist ein iterativer Prozess und der Boosting-Algorithmus kombiniert diese
schwachen Regeln zu einer einzigen starken Vorhersageregel.
Falsch klassifizierte Eingabedaten gewinnen ein höheres Gewicht und korrekt klassifizierte Beispiele
verlieren an Gewicht. Daher konzentrieren sich zukünftige schwache Lernende mehr auf die Beispiele, die
frühere schwache Lernende falsch klassifiziert haben. Sie sind auch baumbasierte Methoden.

Es gibt viele Arten von Boosting-Techniken, und für dieses Projekt sind die folgenden Boosting-Techniken
zu verwenden.
1. Ada Boost (Adaptiver Boost)
2. Gradientenverstärkung
3. Extreme Gradientenverstärkung
4. CAT-Boost (Kategorischer Boost)

Ada Boosting-Modell

Dieses Modell wird verwendet, um die Effizienz von binären Klassifikatoren zu erhöhen, aber jetzt auch, um
Multiklassenklassifikatoren zu verbessern. AdaBoost kann auf jede Klassifikatormethode angewendet
werden, um aus ihren Problemen zu lernen und ein genaueres Modell hervorzubringen, und wird daher als
"bester Standardklassifikator" bezeichnet.

Vor der Anpassung des Modells ist es wichtig, die Hyperparameter zu kennen, die beim Modellbau eine
Rolle spielen.
Parameter:
• Algorithmus
• n_Schätzer
Es gibt auch andere Parameter, aber wir werden diese für Gridsearch, Rest Standardwerte verwenden.
Nach der Durchführung der "GridSearchCV" sind die besten erhaltenen Parameter-
• ' algorithm ' = ' SAMME',
• ' n_estimators ' = 50

Nun die Ergebnisse für unskalierte Daten-

Zuggenauigkeit - 0,8369259606373008
Prüfgenauigkeit - 0,8427947598253275

Wahrscheinlichkeiten auf dem Test-Set-

Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,8369259606373008
Prüfgenauigkeit - 0,8427947598253275

Wahrscheinlichkeiten auf dem Test-Set-

Rückschluss-
Das Modell hat sowohl für unskalierte als auch für skalierte Daten genau die gleiche Leistung erbracht.
Dieses Modell schnitt bei den Daten ohne Über- oder Unteranpassung äußerst gut ab.
Gradientenverstärkungsmodell

Dieses Modell ist genau wie das ADABoosting-Modell. Gradient Boosting funktioniert, indem die falsch
identifizierten Prädiktoren und unzureichend angepassten Vorhersagen sequentiell zum Ensemble
hinzugefügt werden, um sicherzustellen, dass die zuvor identifizierten Fehler korrigiert werden. Der
Hauptunterschied liegt in dem, was es mit dem falsch identifizierten Wert des vorherigen schwachen
Lernenden macht. Diese Methode versucht, den neuen Prädiktor an die Restfehler des vorherigen
anzupassen.

Vor der Anpassung des Modells ist es wichtig, die Hyperparameter zu kennen, die beim Modellbau eine
Rolle spielen.
Parameter:
• Kriterium
• Verlust
• n_Schätzer
• max_features
• min_samples_split

Es gibt auch andere Parameter, aber wir werden diese für Gridsearch, Rest Standardwerte verwenden.
Nach der Durchführung der "GridSearchCV" sind die besten erhaltenen Parameter-

• 'criterion' = 'friedman_mse',
• 'loss' = 'exponentiell',
• 'n_estimators' = 50,
• 'max_features' = 8,
• 'min_samples_split' = 45

Nun die Ergebnisse für unskalierte Daten-

Zuggenauigkeit - 0,865979381443299
Prüfgenauigkeit - 0,8493449781659389

Wahrscheinlichkeiten auf dem Test-Set-

Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,865979381443299
Prüfgenauigkeit - 0,8493449781659389
Wahrscheinlichkeiten auf dem Test-Set-

Rückschluss-
Das Modell hat sowohl für unskalierte als auch für skalierte Daten genau die gleiche Leistung erbracht.
Auch insgesamt hat das Modell gut abgeschnitten, aber es kann zu einer leichten Überanpassung
kommen, da die Genauigkeit eher für den Zug eingestellt ist als für den Test.

XGBoost-Modell (eXtreme Gradient Boosting)

Dieses Modell basiert, wie der Name schon sagt, auf dem Gradienten-Boosting-Framework. XGBoost
verbessert jedoch das Basis-GBM-Framework durch Systemoptimierung und algorithmische
Verbesserungen. Es verwendet parallele Verarbeitungs- und RAM-Optimierungen, die die Funktionsweise
der Gradienten-Boost-Methode auf ihren Höhepunkt verbessern und den Namen "extrem" machen können.
Ein weiterer Vorteil ist, dass die Nullwerte automatisch behandelt werden, indem der Parameter „missing =
NaN“ übergeben wird.
Ein weiterer Unterschied besteht darin, dass XGB den Parameter ‘min_sample_split’ nicht enthält.
Vor der Anpassung des Modells ist es wichtig, die Hyperparameter zu kennen, die beim Modellbau eine
Rolle spielen.
Parameter:
• Max_depth
• Min_Samples_Leaf
• n_Schätzer
• learning_rare
Es gibt auch andere Parameter, aber wir werden diese für Gridsearch, Rest Standardwerte verwenden.
Nach der Durchführung der "GridSearchCV" sind die besten erhaltenen Parameter-
• 'max_depth': 4,
• 'min_samples_leaf': 15,
• 'n_estimators': 50,
• 'learning_rate': 0,1

Nun die Ergebnisse für unskalierte Daten-

Zuggenauigkeit - 0,8847235238987816
Prüfgenauigkeit - 0,851528384279476

Wahrscheinlichkeiten auf dem Test-Set-


Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,8847235238987816
Prüfgenauigkeit - 0,851528384279476

Wahrscheinlichkeiten auf dem Test-Set-

Rückschluss-
Das Modell hat sowohl für unskalierte als auch für skalierte Daten genau die gleiche Leistung erbracht.
Auch insgesamt hat das Modell gut abgeschnitten, aber es kann zu einer leichten Überanpassung
kommen, da die Genauigkeit eher für den Zug eingestellt ist als für den Test.

CATBoosting-Modell

CATBoosting (CATegorical Boosting) ist ein maschineller Lernalgorithmus, der Gradienten-Boosting auf
Entscheidungsbäumen verwendet. Es handelt sich um eine Open-Source-Bibliothek, die nicht im Rahmen
des üblichen Sklearn-Pakets verfügbar ist. Wir müssen das Paket separat installieren. CAT Boost kann
eine große Menge kategorialer Daten verwalten, was normalerweise ein Problem für den Großteil des
Algorithmus für maschinelles Lernen darstellt. CATBoost ist einfach zu implementieren und sehr
leistungsstark. Es liefert hervorragende Ergebnisse und ist sehr schnell in der Ausführung.

Es gibt viele Parameter zu spezifizieren, aber wir gehen mit den Standardparametern weiter.

Nun die Ergebnisse für unskalierte Daten-


Zuggenauigkeit - 0,9381443298969072
Prüfgenauigkeit - 0,851528384279476

Wahrscheinlichkeiten auf dem Test-Set-

Nun die Ergebnisse für skalierte Daten-

Zuggenauigkeit - 0,9381443298969072
Prüfgenauigkeit - 0,851528384279476

Wahrscheinlichkeiten auf dem Test-Set-


Rückschluss-
Das Modell hat sowohl für unskalierte als auch für skalierte Daten genau die gleiche Leistung erbracht.
Es gibt einen großen Unterschied zwischen den Genauigkeitswerten von Zug- und Testdaten.
Es gibt hier eine Überanpassung der Daten, da die Genauigkeit des Zuges weit mehr ist als Testdaten.

1.7 Leistungsmetriken: Überprüfen Sie die Leistung von Vorhersagen auf Zug-
und Testsätzen mithilfe von Genauigkeit, Verwirrungsmatrix, ROC-Kurve
zeichnen und erhalten Sie ROC_AUC-Score für jedes Modell. Endgültiges
Modell: Vergleichen Sie die Modelle und schreiben Sie Inferenz, welches
Modell am besten/optimiert ist.
Leistungskennzahlen:

In der Regel gibt es viele Leistungsmetriken, die bei der Bewertung der Stärke des Modells verwendet
werden, um zu verstehen, wie sich das Modell entwickelt hat, und um eine fundierte Entscheidung darüber
zu treffen, ob das Modell im Echtzeitszenario weitergeführt werden soll oder nicht.

Die Industriestandards basieren in der Regel auf folgenden Methoden:


• Klassifizierungsgenauigkeit.
• Verwirrungsmatrix.
• Klassifizierungsbericht.
• Bereich unter ROC-Kurve (Visualisierung) und AUC-Score

Logistische Regression

Vor der Skalierung -


Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,8537117903930131

Verwirrungsmatrix-

Für Zugdaten Für Testdaten

True Negative: 212 Falsch positiv: 111 True Negative: 94 Falsch positiv: 45
Falsch Negativ: 70 Wahr Positiv: 674 Falsch Negativ: 22 Wahr Positiv: 297

Klassifizierungsbericht-
Für Zug-Set-
Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

Punktzahl für logistische Regression (Zug): 0,877 Punktzahl für logistische Regression (Test):
0,916

Nach der Skalierung -


Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,8493449781659389

Verwirrungsmatrix-

Für Zugdaten Für Testdaten

True Negative: 211 Falsch positiv: 112 True Negative: 94 Falsch positiv: 45
Falsch Negativ: 69 Richtig Positiv: 675 Falsch Negativ: 24 Wahr Positiv: 295
Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

Punktzahl für logistische Regression (Zug): 0,877 Punktzahl für logistische Regression
(Test): 0,915
SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,8245967741935484 Zuggenauigkeit - 0,8138440860215054
Prüfgenauigkeit - 0,8427947598253275 Prüfgenauigkeit - 0,8384279475982532

----------------------------------------------------------------------------------------------------------------------------------------------

LDA (Lineare Diskriminanzanalyse)

Vor der Skalierung -


Zuggenauigkeit - 0,8284910965323337
Prüfgenauigkeit - 0,851528384279476

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 218 False Positive: 105 True Negative: 100 Falsch positiv: 39
Falsch Negativ: 78 Wahr Positiv: 666 Falsch Negativ: 29 Wahr Positiv: 290

Klassifizierungsbericht-
Für Zug-Set-
Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

LDA (Train) Punktzahl: 0,877 LDA (Test) Punktzahl: 0,915

Nach der Skalierung


Zuggenauigkeit - 0,8284910965323337
Prüfgenauigkeit - 0,851528384279476

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 218 False Positive: 105 True Negative: 100 Falsch positiv: 39
Falsch Negativ: 78 Wahr Positiv: 666 Falsch Negativ: 29 Wahr Positiv: 290

Klassifizierungsbericht-
Für Zug-Set-
Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

LDA (Train) Punktzahl: 0,877 LDA (Test) Punktzahl: 0,915

SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,8245967741935484 Zuggenauigkeit - 0,8125
Prüfgenauigkeit - 0,8427947598253275 Prüfgenauigkeit - 0,8296943231441049

----------------------------------------------------------------------------------------------------------------------------------------------

KNN (K Nächste Nachbarn)

Vor der Skalierung -


Zuggenauigkeit - 0,8369259606373008
Prüfgenauigkeit - 0,8165938864628821

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 219 Falsch Positiv: 104 True Negative: 84 Falsch positiv: 55
Falsch Negativ: 70 Wahr Positiv: 674 Falsch Negativ: 29 Wahr Positiv: 290
Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

KNN (Zug) Punktzahl: 0,915 KNN (Test) Punktzahl: 0,867

Nach der Skalierung -


Zuggenauigkeit - 0,8603561387066542
Prüfgenauigkeit - 0,8384279475982532
Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 239 Falsch Positiv: 84 True Negative: 95 Falsch Positiv: 44


Falsch Negativ: 65 Wahr Positiv: 679 Falsch Negativ: 30 Wahr Positiv: 289

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

KNN (Zug) Punktzahl: 0,933 KNN (Test) Punktzahl: 0,877


SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,8830645161290323 Zuggenauigkeit - 0,8918010752688172
Prüfgenauigkeit - 0,8144104803493449 Prüfgenauigkeit - 0,8231441048034934

Naive Bayes

Vor der Skalierung -


Zuggenauigkeit - 0,8219306466729147
Prüfgenauigkeit - 0,8471615720524017

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 223 Falsch Positiv: 100 True Negative: 101 Falsch Positiv: 38
Falsch Negativ: 90 Wahr Positiv: 654 Falsch Negativ: 32 Wahr Positiv: 287

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

NB (Train) Punktzahl: 0,874 NB (Test) Punktzahl: 0,910

Nach der Skalierung -


Zuggenauigkeit - 0,8219306466729147
Prüfgenauigkeit - 0,8471615720524017

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 223 Falsch Positiv: 100 True Negative: 101 Falsch positiv: 38
Falsch Negativ: 90 Wahr Positiv: 654 Falsch Negativ: 32 Wahr Positiv: 287

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-
Bereich unter ROC-Kurve und AUC-Wert:
Sowohl für Schulungen als auch für Tests:

NB (Train) Punktzahl: 0,874 NB (Test) Punktzahl: 0,910

SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,8205645161290323 Zuggenauigkeit - 0,8077956989247311
Prüfgenauigkeit - 0,8362445414847162 Prüfgenauigkeit - 0,8253275109170306

----------------------------------------------------------------------------------------------------------------------------------------------
Beutelverpackung

Vor der Skalierung -


Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,834061135371179

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 201 Falsch positiv: 122 True Negative: 83 Falsch positiv: 56
Falsch Negativ: 59 Wahr Positiv: 685 Falsch Negativ: 20 Richtig Positiv:
299
Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

Einpacken (Zug) Punktzahl: 0,891 Absack- (Test-) Punktzahl: 0,900

Nach der Skalierung -


Zuggenauigkeit - 0,8303655107778819
Prüfgenauigkeit - 0,834061135371179
Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 201 Falsch positiv: 122 True Negative: 83 Falsch positiv: 56
Falsch Negativ: 59 Wahr Positiv: 685 Falsch Negativ: 20 Richtig Positiv:
299

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

Einpacken (Zug) Punktzahl: 0,891 Absack- (Test-) Punktzahl: 0,900


SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,831989247311828 Zuggenauigkeit - 0,8259408602150538
Prüfgenauigkeit - 0,8078602620087336 Prüfgenauigkeit - 0,8100436681222707

----------------------------------------------------------------------------------------------------------------------------------------------

Ada Boosting

Vor der Skalierung -


Zuggenauigkeit - 0,8369259606373008
Prüfgenauigkeit - 0,8427947598253275

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 224 False Positive: 99 True Negative: 97 Falsch positiv: 42


Falsch Negativ: 75 Wahr Positiv: 669 Falsch Negativ: 30 Wahr Positiv: 289

Klassifizierungsbericht-
Für Zug-Set-
Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

ADABoost (Zug) Punktzahl: 0,889 ADABoost (Test) Punktzahl: 0,906

Nach der Skalierung -


Zuggenauigkeit - 0,8369259606373008
Prüfgenauigkeit - 0,8427947598253275

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 224 False Positive: 99 True Negative: 97 Falsch positiv: 42


Falsch Negativ: 75 Wahr Positiv: 669 Falsch Negativ: 30 Wahr Positiv: 289
Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

ADABoost (Zug) Punktzahl: 0,889 ADABoost (Test) Punktzahl: 0,906

SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,842741935483871 Zuggenauigkeit - 0,8185483870967742
Prüfgenauigkeit - 0,8362445414847162 Prüfgenauigkeit - 0,8013100436681223

----------------------------------------------------------------------------------------------------------------------------------------------
Gradientenverstärkung

Vor der Skalierung -


Zuggenauigkeit - 0,865979381443299
Prüfgenauigkeit - 0,8493449781659389

Verwirrungsmatrix-
Für Zugdaten Für Testdaten
True Negative: 229 False Positive: 94 True Negative: 94 Falsch positiv: 45
Falsch Negativ: 49 Richtig Positiv: 695 Falsch Negativ: 24 Wahr Positiv: 295
Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:
Gradienten-Boost (Zug) Punktzahl: 0,933 Gradienten-Boost (Test) Punktzahl: 0,915

Nach der Skalierung -


Zuggenauigkeit - 0,865979381443299
Prüfgenauigkeit - 0,8493449781659389
Verwirrungsmatrix-
Für Zugdaten Für Testdaten
True Negative: 229 False Positive: 94 True Negative: 94 Falsch positiv: 45
Falsch Negativ: 49 Richtig Positiv: 695 Falsch Negativ: 24 Wahr Positiv: 295

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

Gradienten-Boost (Zug) Punktzahl: 0,933 Gradienten-Boost (Test) Punktzahl: 0,915


SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,8716397849462365 Zuggenauigkeit - 0,8595430107526881
Prüfgenauigkeit - 0,8296943231441049 Prüfgenauigkeit - 0,8296943231441049

----------------------------------------------------------------------------------------------------------------------------------------------

XGBoost

Vor der Skalierung -


Zuggenauigkeit - 0,8847235238987816
Prüfgenauigkeit - 0,851528384279476

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 242 Falsch positiv: 81 True Negative: 96 Falsch Positiv: 43


Falsch Negativ: 42 Wahr Positiv: 702 Falsch Negativ: 25 Richtig Positiv:
294

Klassifizierungsbericht-
Für Zug-Set-
Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:
XGBoost (Zug) Punktzahl: 0,941 XGBoost (Test) Punktzahl: 0,912

Nach der Skalierung -


Zuggenauigkeit - 0,8847235238987816
Prüfgenauigkeit - 0,851528384279476

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 242 Falsch positiv: 81 True Negative: 96 Falsch Positiv: 43


Falsch Negativ: 42 Wahr Positiv: 702 Falsch Negativ: 25 Richtig Positiv:
294
Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

XGBoost (Zug) Punktzahl: 0,941 XGBoost (Test) Punktzahl: 0,912

SMOTE –

Ohne Skalierung Mit Skalierung


Zuggenauigkeit - 0,8803763440860215 Zuggenauigkeit - 0,875
Prüfgenauigkeit - 0,8384279475982532 Prüfgenauigkeit - 0,8362445414847162

----------------------------------------------------------------------------------------------------------------------------------------------
CATBoost

Vor der Skalierung -


Zuggenauigkeit - 0,9381443298969072
Prüfgenauigkeit - 0,851528384279476

Verwirrungsmatrix-
Für Zugdaten Für Testdaten
True Negative: 281 Falsch positiv: 42 True Negative: 97 Falsch positiv: 42
Falsch Negativ: 24 True Positive: 720 Falsch Negativ: 26 Wahr Positiv: 293

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-

Bereich unter ROC-Kurve und AUC-Wert:


Sowohl für Schulungen als auch für Tests:

CATBoost (Zug) Punktzahl: 0,978 CATBoost (Test) Punktzahl: 0,914


Nach der Skalierung -
Zuggenauigkeit - 0,9381443298969072
Prüfgenauigkeit - 0,851528384279476

Verwirrungsmatrix-
Für Zugdaten Für Testdaten

True Negative: 281 Falsch positiv: 42 True Negative: 97 Falsch positiv: 42


Falsch Negativ: 24 True Positive: 720 Falsch Negativ: 26 Wahr Positiv: 293

Klassifizierungsbericht-
Für Zug-Set-

Für Test-Set-
Bereich unter ROC-Kurve und AUC-Wert:
Sowohl für Schulungen als auch für Tests:

CATBoost (Zug) Punktzahl: 0,978 CATBoost (Test) Punktzahl: 0,914

SMOTE –
Ohne Skalierung Mit Skalierung
Zuggenauigkeit - 0,9455645161290323 Zuggenauigkeit - 0,9401881720430108
Prüfgenauigkeit - 0,834061135371179 Testgenauigkeit - 0,8318777292576419

----------------------------------------------------------------------------------------------------------------------------------------------

Modellvergleich-
Dies ist ein Prozess, bei dem wir alle Modelle vergleichen und die am besten optimierten Modelle finden.
Es gibt insgesamt 9 verschiedene Arten von Modellen, die jedes Modell 4 Mal auf folgende Weise baut:
- Ohne Skalierung
- Mit Skalierung
- Smote ohne Skalierung
- Schlagen Sie mit der Waage.
Das sind also insgesamt 36 Modelle.

Die Grundlage, auf der Modelle bewertet werden, werden als Leistungsmetriken bezeichnet. Die Metriken,
anhand derer das Modell bewertet wird, sind-
• Genauigkeit
• AUC
• Rückruf
• Präzision
• F1-Score

Ohne Skalierung-
Von der oben genannten-
- Grundlage für die Genauigkeit – Logistische Regression schnitt besser ab als andere.
- Basierend auf dem AUC-Score - Logistics Regression schnitt besser ab als andere.
- Grundlage für den Rückruf – Das Abfüllen von Säcken schnitt etwas besser ab als andere.
- Basis auf Präzision – Naive Bayes schnitten etwas besser ab als andere.
- Basis auf F1-Score – Logistische Regression zusammen mit einigen anderen hat gut
abgeschnitten.

Alle Modelle schnitten gut ab, mit einem leichten Unterschied von (1-5%).

Mit Skalier-

Von der oben genannten-


- Basierend auf der Genauigkeit – LDA und XGBoost schnitten besser ab als andere.
- Basierend auf dem AUC-Score - Logistics Regression und LDA schnitten besser ab als andere.
- Grundlage für den Rückruf – Das Abfüllen von Säcken schnitt etwas besser ab als andere.
- Basis auf Präzision – Naive Bayes schnitten etwas besser ab als andere.
- Basis auf F1-Score – Logistische Regression zusammen mit einigen anderen hat gut
abgeschnitten.

Smote-Leistungsmetriken -
Hier basiert der Vergleich nur auf Genauigkeitswerten. Dies hilft zu verstehen, ob die Verwendung von
Smote einen positiven Effekt hat oder nicht.

Ohne Skalierung zuschlagen -

Von der oben genannten-


- Auf der Grundlage der Genauigkeit hat die logistische Regression besser abgeschnitten als
andere.

Mit Skalierung zuschlagen -


Von der oben genannten-
- Auf der Grundlage der Genauigkeit hat die logistische Regression besser abgeschnitten als
andere.

Beobachtungen-
- Aus den obigen 4 Tabellen ist ersichtlich, dass die Verwendung von Smote die Leistung der
Modelle nicht erhöht hat. Insgesamt schnitten Modelle ohne Smote sowohl für skalierte als auch
für unskalierte Daten gut ab. Somit macht das Auftragen von Smote hier keinen Sinn.
- Wie bei den skalierten und unskalierten Datenmodellen verbesserte die Skalierung nur die
Leistung der entfernungsbasierten Algorithmen für andere, was die Leistung insgesamt leicht
verringerte. Hier schnitt nur KNN aus dem skalierten Datenmodell etwas besser ab als das
unskalierte KNN-Modell.
- Bestes optimiertes Modell – Auf der Grundlage aller Vergleiche und Leistungsmetriken erzielte
„Logistische Regression“ ohne Skalierung die beste Leistung von allen.

1.8) Geben Sie auf der Grundlage Ihrer Analyse und der Arbeit an dem
Geschäftsproblem geeignete Erkenntnisse und Empfehlungen an, um dem
Management bei der Lösung des Geschäftsziels zu helfen.

Schlussfolgerungen
- Die logistische Regression hat das Beste aus allen gebauten Modellen herausgeholt.
- Logistische Regressionsgleichung für das Modell:
(3.05008) * Intercept + (-0.01891) * Age + (0.41855) * Economic_COND_National + (0.06714) *
Economic_COND_Household + (0.62627) * Blair + (-0.83974) * Hague + (- 0.21413) * Europe +
(-0.40331) * Political_Knowledge + (0.10881) * Gender

Die obige Gleichung hilft beim Verständnis des Modells und der Bedeutung der Merkmale, wie jedes
Merkmal zur vorhergesagten Ausgabe beiträgt.

Die 5 wichtigsten Merkmale des logistischen Regressionsmodells in der Reihenfolge abnehmender


Wichtigkeit sind:
1. Den Haag : |-0.8181846212178241|
2. Blair : |0.5460018962250501|
3. economic_cond_national : |0.37700497490783885|
4. political_knowledge : |-0.3459485608005413|
5. Europa : |-0.19691071679312278|

Einblicke und Empfehlungen

Unser Hauptgeschäftsziel ist - "Ein Modell zu erstellen, um vorherzusagen, für welche Partei ein Wähler auf
der Grundlage der gegebenen Informationen stimmen wird, eine Exit-Umfrage zu erstellen, die bei der
Vorhersage des Gesamtsiegs und der von einer bestimmten Partei abgedeckten Sitze hilft."

 Verwendung des logistischen Regressionsmodells ohne Skalierung zur Vorhersage des


Ergebnisses, da es die beste optimierte Leistung aufweist.
 Hyper-Parameter-Tuning ist ein wichtiger Aspekt des Modellbaus. Dies ist begrenzt, da für die
Verarbeitung dieser Kombinationen eine enorme Menge an Rechenleistung erforderlich ist. Aber
wenn das Tuning mit vielen Parametersätzen durchgeführt werden kann, erhalten wir
möglicherweise noch bessere Ergebnisse.
 Das Sammeln von mehr Daten wird auch dazu beitragen, die Modelle zu trainieren und so ihre
Vorhersagekraft zu verbessern.
 Boosting-Modelle können auch eine gute Leistung erbringen, wie CATBoost auch ohne Tuning.
Wenn wir also ein Hyper-Parameter-Tuning durchführen, können wir bessere Ergebnisse erzielen.
 Wir können auch eine Funktion erstellen, in der alle Modelle das Ergebnis nacheinander
vorhersagen. Dies wird zum besseren Verständnis und zur Wahrscheinlichkeit des Ergebnisses
beitragen.
Problem 2- In diesem speziellen Projekt werden wir an den ersten Korpora der nltk in Python
arbeiten. Wir werden uns die folgenden Reden der Präsidenten der Vereinigten Staaten von
Amerika ansehen:
1. Präsident Franklin D. Roosevelt 1941
2. Präsident John F. Kennedy 1961
3. Präsident Richard Nixon 1973

2.1 Finden Sie die Anzahl der Zeichen, Wörter und Sätze für die genannten
Dokumente.
Zeichen
Figuren in Franklin D. Roosevelts Rede: 7571
Figuren in John F. Kennedys Rede: 7618
Figuren in Richard Nixons Rede: 9991

Wörter
Worte in Franklin D. Roosevelts Rede: 1536
Worte in John F. Kennedys Rede: 1546
Worte in Richard Nixons Rede: 20208

Sätze
Sätze in Franklin D. Roosevelts Rede: 68
Sätze in John F. Kennedys Rede: 52
Sätze in Richard Nixons Rede: 69

2.2 Entfernen Sie alle Stoppwörter aus allen drei Reden.


Um die Stoppwörter zu entfernen, gibt es ein Paket namens "Stoppwörter" in der Bibliothek nltk.corpus.
Um dies zu tun, müssen wir also folgende Bibliotheken importieren -
- aus nltk.corpus import stopwords
- aus nltk.stem.porter import PorterStemmer

Die Stoppwortbibliothek enthält alle Stoppwörter wie ‘and‘, ’a‘, ’is‘, ’to‘, ’is‘, ’.‘, ‘of’, ‘to’ usw., die
normalerweise keine Bedeutung für das Verständnis der Stimmung oder Nützlichkeit in Algorithmen des
maschinellen Lernens haben. Diese im Paket enthaltenen Stoppwörter sind allgemein akzeptierte
Stoppwörter und wir können sie gemäß unserer Anforderung mit der Funktion (.extend ()) hinzufügen oder
entfernen.

Außerdem müssen wir die Sprache angeben, mit der wir arbeiten, bevor wir die Funktionen definieren, da
es viele Sprachpakete gibt. Hier werden wir Englisch verwenden.

Stemming ist ein Prozess, der dem Verarbeiter hilft, die Wörter zu verstehen, die eine ähnliche Bedeutung
haben. Dabei werden die Wörter durch Entfernen der Affixe auf ihre Basis- oder Wurzelebene gebracht. Es
wird häufig in Suchmaschinen verwendet. Zum Beispiel - essen, essen, essen, all dies wird nach dem
Stemming auf Essen reduziert.

Einige der entfernten Stoppwörter sind-


2.3 Welches Wort kommt in seiner Antrittsrede für jeden Präsidenten am
häufigsten vor? Erwähnen Sie die oberen drei Wörter. (nach dem Entfernen
der Stoppwörter)

Ergebnisse nach Entfernen von Stoppwörtern und Abstammung.

 Für Franklin D. Roosevelts Rede:

Hier stehen "peopl", "spirit", "life" und "democraci" aufgrund der gleichen Anzahl von
Vorkommnissen auf dem dritten Platz.
Meist vorkommendes Wort: Nation.

 Für John F. Kennedys Rede:

Meist vorkommendes Wort: Let.

 Für Richard Nixons Rede:

Meist vorkommendes Wort: Wir.

2.4 Zeichnen Sie die Wortwolke jeder der Reden der Variablen. (nach
Entfernen der Stoppwörter)
Word Cloud ist eine Datenvisualisierungstechnik, die zur Darstellung von Textdaten verwendet wird, bei
der die Größe jedes Wortes seine Häufigkeit oder Bedeutung angibt. Zur Erzeugung der Word-Cloud
benötigen wir das Word-Cloud-Paket. Standardmäßig ist es nicht im Kernel installiert, daher müssen wir
es installieren.
Nach dem Import des Pakets werden wir die Stoppwörter wieder entfernen, aber kein Stemming
durchführen. Da das Entfernen von Stopp-Wörtern den Filter entfernen würde, würden die
unerwünschten Wörter, die möglicherweise keine Stimmungsanalyse haben, entfernt.

Wortwolke von Roosevelts Rede:

Wir können einige hervorgehobene Wörter wie "Nation", "wissen", "Menschen" usw. sehen, die wir in der
vorherigen Frage als Top-Wörter beobachtet haben. Dies zeigt, je größer die Größe, desto mehr Frequenz.
Wortwolke von Kennedys Rede:
Wortwolke von Nixons Rede:

Einblicke –
 Unser Ziel war es, alle 3 Reden zu betrachten und zu analysieren. Um die Stärke und das
Gefühl der Reden zu finden.
 Anhand der Ergebnisse können wir sehen, dass es einige ähnliche Wörter gibt, die in allen
Reden vorhanden sind.
 Diese Worte mögen der Punkt sein, der die vielen Menschen inspirierte und ihnen auch den
Sitz des Präsidenten der Vereinigten Staaten von Amerika verschaffte
 Unter allen Reden ist „ Nation “ das Wort, das in allen dreien deutlich hervorgehoben wird.

Das könnte Ihnen auch gefallen