TODO für Tag 21 Einfaches Bag-of-Words Modell mit CountVectorizer Ein Bag-of-Words Modell stellt eine Methode dar, um Text in ein numerisches Format umzuwandeln, das von Computeralgorithmen verarbeitet werden kann. Bei diesem Modell wird ein Textdokument als eine ungeordnete Sammlung seiner Wörter betrachtet, wobei die Grammatik und die Reihenfolge der Wörter vollständig ignoriert werden. Der Fokus liegt einzig auf der Häufigkeit, mit der jedes Wort im Dokument vorkommt. In scikit-learn implementiert der CountVectorizer dieses Bag-of-Words Konzept auf eine einfache und effiziente Weise. Seine Hauptaufgabe ist es, eine Sammlung von Textdokumenten, zu nehmen und daraus eine Matrix von Wort-Zählungen zu erstellen. Zunächst analysiert der CountVectorizer den gesamten Korpus, um ein Vokabular aller einzigartigen Wörter zu erstellen, die im Text vorkommen. Dieses Vokabular bildet die Grundlage für…
Kommentare sind geschlossenKategorie: Allgemein
TODO für Tag 20 Prinzipielle Einführung in PCA Die Hauptkomponentenanalyse, als PCA abgekürzt, ist eine Technik zur Dimensionalitätsreduktion. Ihr Hauptziel besteht darin, die Anzahl der Dimensionen eines Datensatzes zu verringern, während gleichzeitig so viel wie möglich von der ursprünglichen Varianz, also der Information, in den Daten erhalten bleibt. Dies ist besonders nützlich bei hochdimensionalen Datensätzen, wo viele Merkmale redundant sein können. Die grundlegende Idee hinter PCA ist es, einen neuen Satz von Features zu finden, die sogenannten Hauptkomponenten. Diese Hauptkomponenten sind Kombinationen der ursprünglichen Merkmale. Die erste Hauptkomponente ist die Richtung im Merkmalsraum, entlang derer die Daten die größte Varianz aufweisen. Jede nachfolgende Hauptkomponente wird so gewählt, dass sie die nächstgrößte verbleibende Varianz erklärt, unter der Bedingung, dass sie unkorreliert…
Kommentare sind geschlossenTODO für Tag 18 Cross-Validation innerhalb einer Pipeline durchführen Die Durchführung von Kreuzvalidierung innerhalb einer Pipeline ist ein Ansatz, der dabei hilft, robuste und verlässliche Modelle zu entwickeln. Das Prinzip ist, sicherzustellen, dass alle Schritte der Datenvorverarbeitung, wie Skalierung, Imputation fehlender Werte oder Merkmalsextraktion, korrekt innerhalb jedes einzelnen Kreuzvalidierungs-Splits angewendet werden. Dies verhindert ein sogenanntes „Data Leakage“, bei dem Informationen aus den Testdaten (oder Validierungsdaten innerhalb eines Folds) unbeabsichtigt in den Trainingsprozess der Vorverarbeitungsschritte einfließen und so zu optimistischen und unrealistischen Leistungsschätzungen führen. Eine Pipeline führt eine Sequenz von Datentransformatoren und einem finalen Schätzer (dem eigentlichen Modell) zu einem einzigen Objekt zusammen. Wenn dieses Pipeline-Objekt dann einer Kreuzvalidierungsfunktion wie GridSearchCV übergeben wird, behandelt die Kreuzvalidierungslogik die gesamte Pipeline als eine Einheit. Die…
Kommentare sind geschlossenTODO für Tag 18 Erst mal eine kurze Vorstellung der 3 Algorithmen, auch wenn sie schon in den vorherigen Tagen der 30 Tage scikit-learn Challenge verwendet wurden. Logistic Regression Die Logistische Regression ist ein Algorithmus der hauptsächlich für Klassifikationsaufgaben verwendet wird, insbesondere für binäre Klassifikationsprobleme (d.h. Probleme mit zwei möglichen Ergebnissen, z.B. Ja/Nein, 0/1, Spam/Kein Spam). Trotz des Namens „Regression“ im Titel ist das primäre Ziel die Klassifikation. Ähnlich wie die lineare Regression berechnet sie eine gewichtete Summe der Eingabemerkmale (plus einem Bias-Term). Das Ergebnis dieser linearen Kombination wird dann durch die Sigmoid-Funktion geleitet. Diese Funktion „quetscht“ jeden beliebigen reellen Eingabewert in einen Ausgabewert zwischen 0 und 1. Der Ausgabewert der Sigmoid-Funktion wird als Wahrscheinlichkeit interpretiert, dass die gegebene Eingabe zur positiven Klasse gehört…
Kommentare sind geschlossenTODO für Tag 17 Confusion Matrix Beim Training eines Klassifikationsmodells, das zum Beispiel E-Mails als Spam oder Nicht-Spam einordnet, möchte man visualisieren, wie gut es funktioniert. Eine einfache Prozentzahl der korrekt zugeordneten E-Mails (die Gesamtgenauigkeit) reicht dabei oft nicht aus, denn es gibt verschiedene Arten von Fehlern und richtigen Vorhersagen. Dabei kann die Confusion Matrix helfen. Die Confusion Matrix ist in den letzten Tagen schon öfter zum Einsatz gekommen. Sie zeigt, wie oft ein Modell eine positive Klasse (z. B. Spam) korrekt als positiv identifiziert hat (True Positives), wie oft es eine negative Klasse (z. B. Nicht-Spam) korrekt als negativ erkannt hat (True Negatives). Aber sie zeigt auch, wie oft das Modell etwas als positiv vorhergesagt hat, obwohl es tatsächlich negativ…
Kommentare sind geschlossenTODO für Tag 16 KMeans Der KMeans-Algorithmus für eine Aufteilung in 3 Gruppen funktioniert in etwa so: Zuerst wählt er 3 zufällige Stellen aus, die als erste Schätzungen für die Mittelpunkte einer Gruppen dienen. Dann schaut er sich jeden einzelnen Punkt an und packt ihn in die Gruppe, deren Mittelpunkt ihm am nächsten ist. Wenn alle Punkte einer Gruppe zugeordnet sind, berechnet der Algorithmus für jede Gruppe neu, wo genau die Mitte aller Punkte in dieser Gruppe liegt. Diese neuen Mitten sind dann die verbesserten Schätzungen für die Gruppenmittelpunkte. Diesen Vorgang wiederholt der Algorithmus immer wieder. Das macht er so lange, bis sich die Mittelpunkte der Gruppen kaum noch bewegen. Am Ende hat man dann die Punkte so in 3…
Kommentare sind geschlossenTODO Für Tag 15 SimpleImputer verstehen Der SimpleImputer in scikit-learn ist ein Werkzeug zur Vorverarbeitung von Daten, das speziell dafür entwickelt wurde, fehlende Werte in numerischen oder kategorischen Datensätzen systematisch zu ersetzen. Er analysiert die vorhandenen Daten und füllt Lücken, die beispielsweise durch NaN-Werte entstanden sind, mithilfe einer vorher definierten Strategie. Dabei kann der Benutzer festlegen, ob fehlende Werte durch den arithmetischen Mittelwert, den Median, den häufigsten Wert oder einen konstanten Wert ersetzt werden sollen. Diese Strategien ermöglichen eine unkomplizierte und schnelle Bereinigung von unvollständigen Datensätzen, was besonders wichtig ist, da viele Machine-Learning-Algorithmen nicht in der Lage sind, mit fehlenden Werten umzugehen. Der Imputer wird zunächst mit den Trainingsdaten „gelernt“, wobei er die notwendigen Kennzahlen wie Mittelwert oder Modus berechnet,…
Kommentare sind geschlossenTODO Für Tag 14 Unterschied zwischen StandardScaler, MinMaxScaler In scikit-learn gibt es sowohl den StandardScaler als auch den MinMaxScaler zur Skalierung von numerischen Features. Beide sind Werkzeuge zur Vorverarbeitung von Daten für Machine-Learning-Modelle, da viele Algorithmen empfindlich auf die Skalierung der Features reagieren. Der StandardScaler skaliert die Daten so, dass sie einen Mittelwert von 0 und eine Standardabweichung von 1 aufweisen. Im Gegensatz dazu skaliert der MinMaxScaler die Features auf einen vorgegebenen Bereich, indem er die Min- und Max-Werte des Features verwendet. Dies stellt sicher, dass alle Werte innerhalb dieses Bereichs liegen. Die Wahl zwischen beiden hängt oft vom spezifischen Algorithmus und der Natur der Daten ab. Beispiel: StandardScaler in Aktion Ausgabe: In den Originaldaten gibt es 2 Features: Der Mittelwert wird spaltenweise berechnet:…
Kommentare sind geschlossenTODO Für Tag 13 Erklärung und Vorteile von Pipeline In scikit-learn sind Pipelines ein Konzept zur strukturierten und reproduzierbaren Modellierung von ML-Workflows. Sie dienen dazu, eine Abfolge von Verarbeitungsschritten (Vorverarbeitung, Feature-Transformation, Modelltraining, etc.) logisch miteinander zu verknüpfen. Eine Pipeline kapselt alle Schritte eines Prozesses, die typischerweise in einer festen Reihenfolge auf Trainings- und Testdaten angewendet werden, und stellt sicher, dass diese konsistent und korrekt ausgeführt werden. Dabei übernimmt sie nicht nur das Verketten der Verarbeitungsschritte, sondern sorgt auch dafür, dass die Parameter jedes Schrittes im Rahmen von Modelloptimierung oder Cross-Validation kontrolliert und verändert werden können. Die Vorteile von Pipelines liegen unter anderem in der Vermeidung häufiger Fehlerquellen, z.B. dass Testdaten unbeabsichtigt in die Trainingsphase einfließen. Da eine Pipeline immer den…
Kommentare sind geschlossenTODO Für Tag 12 SVC (Support Vector Classification) SVC ist eine Implementierung von Support Vector Machines (SVM) für Klassifikationsaufgaben. Die zugrunde liegenden Konzepte basieren auf der Idee, eine optimale Trennlinie zwischen Klassen zu finden. Dabei maximiert die SVM den Abstand zwischen dieser Trennlinie und den nächstgelegenen Punkten beider Klassen (Support Vektors). Kernel verstehen Ein Kernel ist eine Funktion die das Skalarprodukt zweier Punkte in einem höherdimensionalen Raum darstellt, ohne die Punkte explizit zu transformieren. In scikit-learn sind folgende Kernel vorhanden. Linear Kernel Der Linear-Kernel trennt die Daten mit einer einfachen geraden Linie (oder einer Ebene im mehrdimensionalen Raum). Er sagt im Grunde: „Ich suche nach einer Linie/Ebene, die die zwei Gruppen möglichst klar voneinander trennt.“ Der Linear Kernel kann verwendet…
Kommentare sind geschlossen