TODO für Tag 6 Unterschied zwischen Train/Test Split und Cross-Validation und cross_val_score verwenden Beim Train/Test Split wird der vorhandene Datensatz einmalig in zwei getrennte Teile aufgeteilt – einen Teil zum Trainieren des Modells und einen anderen zum Testen, ob das Modell etwas gelernt hat. Den scikit-learn Code zum splitten der Daten habe ich in den letzten 5 Tagen ja schon diverse male verwendet und beschrieben. Das Modell sieht die Testdaten beim Training nicht und wird danach auf diesen unbekannten Daten bewertet. Der Nachteil dabei ist, dass die Leistung des Modells stark davon abhängen kann, wie genau diese eine Aufteilung zufällig gewählt wurde – manchmal hat man Glück, manchmal Pech, und das Ergebnis kann täuschen. Cross-Validation löst dieses Problem, indem der…
Kommentare sind geschlossenjentsch.io Beiträge
TODO für Tag 5 Lineare Regression verstehen und implementieren Das Ziel der linearen Regression ist es eine Gerade (oder Hyperplane in mehreren Dimensionen) zu finden, die den Zusammenhang zwischen denFeatures und einem Label am besten wiedergibt.scikit-learn stellt mit LinearRegression eine Klasse zur Verfügung, das diese Gewichte über Least Squares (kleinste Fehlerquadrate) optimiert. Hier ist ein kleines Beispiel mit künstlichen Daten: Der Python-Code zeigt ein Beispiel für eine lineare Regression, bei der mit scikit-learn ein Modell auf kleinen Trainingsdaten trainiert wird. Zunächst werden die Featues (X) und die Label (y) als Arrays definiert, danach wird ein LinearRegression-Modell erstellt und mit den Trainingsdaten trainiert. Anschließend werden die erlernte Steigung und der Achsenabschnitt ausgegeben. Das Modell nutzt die gelernten Parameter, um Vorhersagen für…
Kommentare sind geschlossenTODO für Tag 4 k-Nearest Neighbors k-Nearest Neighbors ist ein einfaches, Klassifikationsverfahren mit dem man einen neuen Datenpunkt basierend auf seinen nächsten Nachbarn klassifiziert. Dabei wird die Klassenzugehörigkeit durch Mehrheitsentscheidung der Nachbarn bestimmt. Für jede Vorhersage wird die Distanz zu allen Trainingspunkten berechnet, um die k nächsten Nachbarn zu finden. Das ist jedoch bei großen Datensätzen sehr rechenintensiv (O(n) pro Vorhersage). K-NN sind auch als „lazy learner“ bekannt, da es keine Funktion aus den Trainingsdaten lernt, sondern sich stattdessen den Trainingsdatensatz „merkt“. Deshalb gibt es bei K-NN auch keine Trainingszeit. Es gibt auch eine k-Nearest Neighbors Regression. Bei der Regression wird der Durchschnitt der Nachbarn genommen. In scikit-learn gibt es die beiden Nearest Neighbors-Regressoren KNeighborsRegressor und RadiusNeighborsRegressor. Der Hauptunterschied zwischen…
Kommentare sind geschlossenTODO für Tag 3 Iris-Datensatz genauer anschauen Der Iris-Datensatz ist ein klassischer, multivariater Datensatz in der Statistik und im maschinellen Lernen. Er wurde 1936 vom britischen Statistiker Ronald A. Fisher veröffentlicht, basierend auf Messungen des amerikanischen Botanikers Edgar Anderson. Der Datensatz dient als Beispiel für die lineare Diskriminanzanalyse und wird häufig zum Testen und Vergleichen von Klassifikationsalgorithmen verwendet. Der Datensatz enthält 150 Einträge und dabei jeweils 50 Datensätze je Art (Iris setosa, Iris versicolor, Iris virginica). Jeder Datensatz hat die folgenden 4 Features mit Angabe in Zentimetern: Der Iris Datensatz ist in scikit-learn enthalten und kann mit mit dem Aufruf von „iris = datasets.load_iris()“ geladen werden – wie auch schon gestern und vorgestern gesehen. Das Folgende Python Skript lädt die…
Kommentare sind geschlossenTODO für Tag 2 Dataset laden (Iris-Datensatz) Erst mal die Daten laden. Das habe ich ja gestern schon mal gemacht. Daten in Trainings- und Testdaten aufteilen Beim maschinellen Lernen ist es wichtig, die verfügbaren Daten in Trainings- und Testdaten aufzuteilen. Die Trainingsdaten werden genutzt, um das Modell zu trainieren – also um Muster zu erkennen und Parameter zu lernen. Die Testdaten dienen anschließend zur Bewertung des Modells, um zu prüfen, wie gut es auf neue, unbekannte Daten generalisiert. Ein typisches Aufteilungsverhältnis ist 80 % Training und 20 % Test, kann aber je nach Anwendungsfall variieren. Einfaches Klassifikationsmodell trainieren Dieser Python-Code zeigt, wie man ein logistisches Regressionsmodell mit scikit-learn erstellt und trainiert. Es wird das LogisticRegression-Modell aus scikit-learn importiert – ein klassisches Modell…
To-Do für heute Was ist scikit-learn? Voraussetzungen Installation JupyterLab JupyterLab vereinfacht die Arbeit mit scikit-learn, weil es eine interaktive Umgebung bietet, in der man Code, Visualisierungen und Dokumentation nahtlos kombinieren kann. Man kann Datensätze schrittweise untersuchen, Modelle direkt trainieren und evaluieren, und die Ergebnisse sofort visualisieren – alles in einer übersichtlichen Oberfläche. JupyterLab starten Nache dem Start wird JupyterLab im Broser geöffnet. Alternativ kann man auch mit PyCharm oder einem anderen Editor arbeiten, aber ich bevorzuge Jupyter-Lab wegen dem Komfort. Installation überprüfen Zum überprüfen der Installation kann man ein neues Jupyter-Notebook öffnen und folgenden Python Code ausführen. Wie man sieht habe ich die Version 1.7.dev0 installiert. Die wichtigsten scikit-learn Module scikit-learn bietet viele Module, hier eine Auswahl der wichtigsten. Modul…
Kommentare sind geschlossenTag 1: Einführung und Installation Tag 2: Erstes Modell erstellen Tag 3: Daten verstehen und vorbereiten Tag 4: Klassifikationsmodelle kennenlernen – k-NN Tag 5: Regression einfach erklärt Tag 6: Train/Test Split und Cross Validation Tag 7: Feature Engineering Tag 8: Entscheidungsbäume Tag 9: Random Forest Tag 10: Gradient Boosting Tag 11: Hyperparameter Tuning mit GridSearchCV Tag 12: Support Vector Machines (SVM) Tag 13: Pipeline erstellen Tag 14: Feature Scaling vertiefen Unterschied zwischen StandardScaler, MinMaxScalerWann ist Skalierung unbedingt notwendig? Tag 15: Umgang mit fehlenden Werten Tag 16: Clustering-Grundlagen – KMeans Tag 17: Bewertungskriterien für Klassifikation Tag 18: Mehr Klassifikatoren vergleichen Tag 19: Pipeline + Cross-Validation kombinieren Tag 20: Dimensionalitätsreduktion mit PCA Tag 21: Textdaten mit scikit-learn Tag 22: Modell speichern und…
Kommentare sind geschlossenEine empirische Studie von: Xingyu Zheng, Yuye Li, Haoran Chu, Yue Feng, Xudong Ma, Jie Luo, Jinyang Guo, Haotong Qin, Michele Magno, Xianglong Liu https://arxiv.org/pdf/2505.02214 Wie robust ist Qwen3, wenn es um die Reduzierung der Modellgröße durch Low-Bit-Quantisierung geht? Ein internationales Forscherteam hat genau das untersucht und liefert nun erste Antworten. Warum Quantisierung? Große Sprachmodelle (LLMs) wie Qwen3 sind leistungsfähig, aber auch ressourcenintensiv. Für den Einsatz in Geräten mit begrenzten Ressourcen, wie Smartphones oder Edge-Computing-Plattformen, ist es entscheidend, diese Modelle zu komprimieren. Low-Bit-Quantisierung, bei der die Präzision der Modellgewichte reduziert wird, ist eine vielversprechende Methode, um Speicherbedarf und Rechenleistung zu minimieren. Allerdings kann dies die Leistung des Modells beeinträchtigen. Die Studie im Überblick Das Forscherteam evaluierte fünf etablierte Post-Training-Quantisierungsmethoden: Round-To-Nearest…
Kommentare sind geschlossenDas neue Qwen3 bietet eine neue Flexibilität, wenn es darum geht, das Verhalten eines Modells gezielt zu steuern. Man kann mit einem einfachen Befehl Qwen3 in Ollama bzw. mit Open WebUI dazu bringt, „weniger zu denken“ – sprich, deterministischer oder direkter zu antworten. Mit einem Wort im Prompt kann man explizit das „Thinking“ bei der Nutzung von Qwen3 deaktivieren, also quasi einen „No-Reasoning-Modus“ aktivieren. Das Ziel: Antworten ohne übermäßiges Reflektieren oder Ausschweifen – ideal für klare, schnelle Reaktionen etwa im technischen Support oder bei direkten API-Antworten. Steuerung via „/think“ und „/nothink ist eine einfache, aber elegante Lösung. Man kann in der System- oder Benutzernachricht einfach die Steueranweisungen /think oder /nothink verwenden. Beispiel: System: /nothinkUser: Gib mir die Top 5 Java-Frameworks…
Kommentare sind geschlossenLlama-3.1-Nemotron-8B-UltraLong-4M-Instruct von Nvidia verspricht ein riesiges Kontextfenster von 4 Millionen Token. 4 Millionen Token ermöglicht es, umfangreiche Dokumente, komplexe Codebasen oder multimodale Daten in einem einzigen Durchlauf zu verarbeiten, ohne auf Chunking oder externe Speicherlösungen angewiesen zu sein. Die Nemotron-Modellfamilie basiert auf den offenen Llama 3.1-Modellen von Meta und wurde von NVIDIA durch fortschrittliche Techniken wie strukturiertes Pruning, Distillation und Alignment weiterentwickelt. Durch die offene Lizenzierung und die Bereitstellung der Modelle auf Plattformen wie Hugging Face ermöglicht NVIDIA Entwicklern und Unternehmen den direkten Zugriff auf diese fortschrittlichen KI-Modelle. Mich interessieren hier vor allem 2 Fragen. Für den Test verwende ich das Buch „Machine Learning Systems“, dass man unter https://mlsysbook.ai/ finden kann und das als PDF heruntergeladen werden kann. Das Buch…
Kommentare sind geschlossen