Was ist Scikit-Learn (Sklearn)?

Autor

Bryan Clark

Senior Technology Advocate

Was ist scikit-learn (sklearn)?

Scikit-learn (oft als scikit-learn oder sklearn geschrieben) ist eine weit verbreitete Open-Source-Bibliothek für maschinelles Lernen für Python.

Scikit-learn ist heute eine der am häufigsten verwendeten Bibliotheken für maschinelles Lernen (ML). Dieses in Python geschriebene Data-Science-Toolset optimiert maschinelles Lernen (ML) und statistische Modellierung mit künstlicher Intelligenz (KI) und bietet eine konsistente Oberfläche. Es umfasst essenzielle Module für Klassifizierung, Regression, Cluster und Dimensionsreduktion, die alle auf den Bibliotheken NumPy, SciPy und Matplotlib basieren. Die Implementierung von Algorithmen für maschinelles Lernen in Python von Grund auf kann eine rechenintensive und fehleranfällige Aufgabe sein, die Fachwissen in linearer Algebra, Analysis und Optimierung erfordert. Scikit-learn kann eine wertvolle Ressource sein, um diese Probleme zu entschärfen.

Durch die Nutzung der robusten Suite von scikit-learn aus vortrainierten Neural Networks und Algorithmen für maschinelles Lernen können Neueinsteiger auf diesem Gebiet schnell und effektiv Datensätze für die Anwendung von überwachten Lernanwendungen wie Regression oder Klassifizierung vorverarbeiten. Dieser Schritt kann durchgeführt werden, ohne dass ein tiefgreifendes Verständnis komplexer mathematischer Konzepte wie lineare Algebra, Analysis oder Kardinalität erforderlich ist. Darüber hinaus erleichtern diese Tools unüberwachte Lernprozesse, einschließlich Clustering und Dimensionalitätsreduzierung. Dank dieser Tools können sich die Benutzer auf übergeordnete Erkenntnisse und die Schaffung von geschäftlichem Nutzen konzentrieren.

scikit-learn Workflow
scikit-learn Workflow-Diagramm

Komponenten von scikit-learn

Numpy: Eine der wichtigsten Python-Bibliotheken für das wissenschaftliche Rechnen. Diese bietet ein Array-Objekt und verschiedene andere Datensatztypen sowie zahlreiche Funktionen für effiziente Operationen mit Arrays bei der Verwendung von scikit-learn.

Scipy: Ein von der Community getragenes Unterfangen, das darauf abzielt, Open-Source-Software für Data-Science-Zwecke in Python zu erstellen und zu verbreiten. Konkret konzentriert sich die Mission auf die Entwicklung und Pflege des Scipy-Pakets, das unter einer Open-Source-Lizenz (z. B. einer Berkeley Software Distribution-Lizenz, auch bekannt als BSD) frei verfügbar und über GitHub-Repositories innerhalb des Scipy-Unternehmens öffentlich zugänglich ist.

Matplotlib: Eine umfangreiche und flexible Plotbibliothek für Python, mit der Data Scientists ihre Datensätze in informative Diagramme, Grafiken und andere Visualisierungen umwandeln können. Durch die Bereitstellung einer umfassenden Reihe von Tools und Funktionen erleichtert Matplotlib die Datenanalyse, -erkundung und -kommunikation.

Cython: Erweitert die Fähigkeiten von Python, indem es direkte Aufrufe von C-Funktionen und die explizite Deklaration von C-Datensatztypen für Variablen und Klassenattribute ermöglicht. Diese Funktion erleichtert die Generierung von hochoptimiertem C-Code aus dem Cython-Quellcode zur Verwendung in Sklearn.

Die neuesten KI-Trends, präsentiert von Experten

Erhalten Sie kuratierte Einblicke in die wichtigsten – und faszinierendsten – KI-Neuheiten. Abonnieren Sie unseren wöchentlichen Think-Newsletter. Weitere Informationen in der IBM Datenschutzerklärung.

Vielen Dank! Sie haben ein Abonnement abgeschlossen.

Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.

Vorverarbeitung

Bei der Arbeit mit scikit-learn muss sichergestellt sein, dass die Trainingsdaten ordnungsgemäß vorbereitet und formatiert sind, bevor sie in das maschinelle Lernmodell eingegeben werden. Dieser Prozess wird als Vorverarbeitung bezeichnet und scikit-learn bietet eine Reihe von Tools, die bei der Organisation des Datensatzes helfen. Eine häufige Aufgabe in dieser Phase der scikit-learn-Vorverarbeitung ist die Normalisierung, bei der numerische Funktionen mithilfe von Techniken wie MinMax Scaler oder Standard Scaler so skaliert werden, dass sie ähnliche Größenordnungen haben. Wenn der Datensatz von kategorialen Variablen in numerische Repräsentationen kodiert werden muss, können One-Hot Encoding (OHE) oder LabelEncoder (LE) sie mit dem Workflow kompatibel machen. OHE wandelt kategoriale Datenwerte in binäre Vektoren um, sodass für jede Kategorie eine neue Spalte mit einer 1 oder 0 entsteht, die das Vorhandensein oder Nichtvorhandensein der Kategorie angibt. LE wird beim maschinellen Lernen verwendet, wo Kategorien oder Klassen numerische Beschriftungen zugewiesen werden. Im Gegensatz zu One-Hot Encoder werden keine neuen Spalten erstellt, sondern kategoriale Werte durch ganzzahlige Werte ersetzt. Es kann zu Problemen wie der Ordinalitätsannahme führen und wird aufgrund seiner Einschränkungen im modernen maschinellen Lernen seltener als OHE eingesetzt.

Die Vorverarbeitung kann auch die Featureauswahl beinhalten, wobei eine Teilmenge relevanter scikit-learn-Funktionen für das Modelltraining ausgewählt werden kann. Dieser Schritt kann durch das Entfernen irrelevanter Funktionen oder durch Techniken wie Recursive Feature Elimination (RFE) oder Mutual Information (MI) erfolgen. Recursive Feature Elimination ist eine Technik, mit der die wichtigsten Funktionen in einem Datensatz ausgewählt werden. Dabei wird ein Modell iterativ entfernt und mit einem reduzierten Funktionssatz neu trainiert, um schließlich die leistungsstärksten Funktionen zu identifizieren. Mutual Information misst die Menge an Informationen, die eine Zufallsvariable über eine andere enthält, und ermöglicht es so, zu erkennen, welche Funktionen stark korrelieren oder für ein Zielergebnis relevant sind. Diese Methode ist nützlich für die Auswahl informativer Variablen. Darüber hinaus ist der Umgang mit Missing Values von entscheidender Bedeutung. Scikit-learn bietet verschiedene Methoden, um diese Lücken zu imputieren, wie z. B. Mittelwert-/Median-Imputation, Vorwärts-Auffüllung/Rückwärts-Auffüllung oder andere, anspruchsvollere Ansätze.

Um diese Aufgaben zu erfüllen, enthält scikit-learn eine umfassende Suite von Vorverarbeitungswerkzeugen. Die Klassen StandardScaler und MinMaxScaler sind eine beliebte Wahl für die Skalierung numerischer Funktionen, während die Klasse OneHotEncoder ideal für kategorische Variablen ist. Die SimpleImputer-Klasse bietet eine Reihe von Methoden zur Imputation fehlender Werte. Durch eine kreative Kombination dieser Tools lässt sich eine robuste Vorverarbeitungspipeline erstellen, die maschinelles Lernen, Modellleistung und Genauigkeit verbessert.

Beispielsweise kann zunächst der StandardScaler verwendet werden, um die numerischen Funktionen der Daten zu standardisieren. Anschließend kann der OneHotEncoder zum Umwandeln kategorischer Variablen in numerische Darstellungen eingesetzt werden. Für jede eindeutige Kategorie in einer kategorialen Variable wird eine neue Funktion (0 oder 1) erstellt. Wenn eine Beobachtung die Kategorie „X“ hat, wird der Wert für die Funktion, die „X“ entspricht, auf 1 gesetzt und alle anderen Funktionen werden auf 0 gesetzt. Dieser Prozess kann auch als Funktionsextraktion bezeichnet werden. Durch die Verkettung dieser Vorgänge kann ein einheitlicher Datensatz erstellt werden, der für das Training des maschinellen Lernmodells bereit ist.

AI Academy

KI-Experte werden

Erlangen Sie das nötige Wissen, um KI-Investitionen zu priorisieren, die das Unternehmenswachstum vorantreiben. Starten Sie noch heute mit unserer kostenlosen AI Academy und gestalten Sie die Zukunft der KI in Ihrem Unternehmen.

Metriken

Scikit-learn bietet eine Reihe integrierter Metriken sowohl für Klassifizierungs- als auch für Regressionsprobleme und unterstützt so die Entscheidungsfindung hinsichtlich der Modelloptimierung oder Modellauswahl. Im Zusammenhang mit maschinellem Lernen und speziell mit scikit-learn ist ein Regressionsmodell eine Art Prognosemodell, das kontinuierliche Ergebnisse auf der Grundlage von Eingabefunktionen schätzt. Im Gegensatz zu Klassifizierungsmodellen, die diskrete Kennzeichnungen oder Kategorien vorhersagen, werden Regressionsmodelle zum Vorhersagen einer Menge verwendet.

Bei Klassifizierungsaufgaben umfassen die Metriken Genauigkeit, Präzision, Rückruf, F1-Score und die Fläche unter der ROC-Kurve (AUC-ROC).

  • Genauigkeit: Misst den Anteil der richtigen Vorhersagen an den gesamten Vorhersagen.

  • Präzision: Konzentriert sich auf positive Vorhersagen und quantifiziert, wie viele ausgewählte Elemente relevant sind.

  • Recall: Auch bekannt als Sensitivität, bewertet die Fähigkeit des Modells, alle relevanten Instanzen zu finden.

  • F1-Score: Das harmonische Mittel aus Präzision und Recall, das ein Gleichgewicht zwischen diesen beiden Metriken herstellt.

  • AUC-ROC: Eine Metrik zur Bewertung der Leistung eines Klassifizierungsmodells, bei dem die Ausgabe eine Wahrscheinlichkeit ist. Sie stellt visuell den Kompromiss zwischen der Richtig-Positiv-Rate (TPR) und der Falsch-Positiv-Rate (FPR) dar.

Für Regressionsaufgaben umfassen gängige Bewertungsmetriken in scikit-learn den Mean Absolute Error (MAE), den Root Mean Squared Error (RMSE), den R^2-Score und den Mean Squared Error (MSE).

  • MAE: Misst die durchschnittliche Größe von Fehlern, ohne deren Richtung zu berücksichtigen.

  • RMSE: Die Quadratwurzel der mittleren quadratischen Fehler, wobei größeren Fehlern mehr Gewicht beigemessen wird.

  • R2-Score : Dieser Score, der auch als Bestimmtheitskoeffizient bezeichnet wird, stellt den Anteil der Varianz in der abhängigen Variable dar, der aus den unabhängigen Variablen vorhersagbar ist.

  • MSE: Berechnet die durchschnittliche quadratische Differenz zwischen den vorhergesagten und den tatsächlichen Werten und bietet ein Maß dafür, wie gut die Datenpunkte übereinstimmen.

In einem Szenario zur Kreditrisikobewertung, das scikit-learn verwendet, ist beispielsweise die Kennzahl „Area under the receiver operating characteristic curve“ (AUC-ROC) für die Bewertung der Modellleistung von entscheidender Bedeutung. Diese Metrik misst die Fähigkeit des Modells, anhand von Funktionen wie Einkommen, Verhältnis von Schulden zu Einkommen und beruflichem Werdegang zwischen Kreditnehmern zu unterscheiden, die mit ihren Krediten in Zahlungsverzug geraten sind, und denen, die dies nicht getan haben. AUC-ROC-Werte, die näher bei 1 liegen, stehen für bessere Modelle mit höheren Differenzierungsfunktionen. Dies hilft Bankmanagern dabei, die Eignung des Modells für Kreditentscheidungen zu bestimmen oder Bereiche mit Verbesserungspotenzial zu identifizieren.

Die Metriken von scikit-learn ermöglichen eine gründliche Auswertung von Modellen für maschinelles Lernen über verschiedene Aufgaben und Szenarien hinweg. Das Verständnis dieser Metriken hilft bei der Interpretation der Modellleistung, der Identifizierung potenzieller Verbesserungsbereiche und der Auswahl oder Optimierung des leistungsstärksten Modells für ein bestimmtes Problem.

Anwendungsfälle für scikit-learn

Erkennung von E-Mail-Spam: Die Klassifizierungsalgorithmen von scikit-Learn, einschließlich logistischer Regression oder Support Vector Machines (SVM), helfen dabei, unerwünschte E-Mails herauszufiltern, indem sie sie als Spam einstufen oder nicht. Sklearn hat auch die Möglichkeit einer Kreuzvalidierung, indem es Cross_val_score verwendet, um zu bewerten, wie gut der Naive-Bayes-Klassifikator zwischen Spam- und Nicht-Spam-E-Mails unterscheiden kann. Sklearn verwendet eine Kreuzvalidierung, um das Modell über 5 verschiedene Aufteilungen Ihrer Daten hinweg zu trainieren und zu schulen. So erhalten Sie eine durchschnittliche Leistungsmetrik, die Ihnen eine bessere Vorstellung davon gibt, wie die Leistung des Modells bei neuen, noch nicht gesehenen E-Mails abschneiden könnte.

Vorhersage von Immobilienpreisen: Scikit-learn kann für Regressionstechniken wie die lineare Regression verwendet werden, um Immobilienpreise auf der Grundlage von Funktionen wie Standort, Größe und Ausstattung zu schätzen und Käufern zu helfen, fundierte Entscheidungen zu treffen. Scikit-Learn lässt sich nahtlos mit Datenvisualisierungen wie Plotly und Matplotlib integrieren. Dies ermöglicht Visualisierungen, die das Verständnis und die Interpretation der Ergebnisse der Regression verbessern und so eine bessere fundierte Entscheidungsfindung in einem Anwendungsfall wie diesem ermöglichen.

Erkennung der Beech Leaf Disease (Erkrankung des Buchenbaums, BLD): Der Entscheidungsbaum-Algorithmus von scikit-Learn kann in den östlichen Wäldern der USA eingesetzt werden, um die Beech Leaf Disease (BLD) zu erkennen. Durch die Analyse von Faktoren wie Baumalter, Standort und Blattzustand kann das Modell Buchen identifizieren, bei denen das Risiko von BLD besteht. Durch den Einsatz von maschinellem Lernen und datengesteuerten Ansätzen können die am stärksten gefährdeten Bäume ermittelt und Strategien bereitgestellt werden, um sie zu schützen.

Erkennung von Anomalien: In der Cybersicherheit kann das k-means-Clustering von scikit-Learn eingesetzt werden, um ungewöhnliche Muster oder Verhaltensweisen zu erkennen, die auf potenzielle Sicherheitslücken hinweisen könnten. Durch die Gruppierung ähnlicher Datenpunkte hilft k-means, Sonderfälle. also Datenpunkte, die erheblich von etablierten Clustern abweichen, als potenzielle Anomalien zu identifizieren. Diese Anomalien können auf unbefugte Zugriffsversuche, Malware-Aktivitäten oder andere böswillige Aktionen hinweisen. Die rechtzeitige Erkennung solcher Anomalien mit sklearn ermöglicht es den Cybersicherheitsteams, Bedrohungen schnell zu untersuchen und zu entschärfen, wodurch die allgemeine Sicherheitsstatus eines Unternehmens verbessert wird.

Bewertung des Kreditrisikos: Finanzinstitute verwenden den Random Forests-Algorithmus von scikit-Learn, um bei der Bewertung des Kreditrisikos für potenzielle Kreditnehmer die wichtigsten Funktionen, wie Kreditwürdigkeit, Einkommen und Schulden-Einkommens-Verhältnis, zu identifizieren. Durch die Einstufung der Wichtigkeit von Variablen mit Random Forests können Kreditgeber fundiertere Entscheidungen darüber treffen, wer Kredite zu welchen Zinssätzen erhält.

Genomikforschung: Sklearn kann Techniken wie die Principal Component Analysis (PCA) anwenden, um die Komplexität genetischer Daten zu reduzieren, wodurch es einfacher wird, signifikante Muster zu identifizieren, ohne vom Rauschen überwältigt zu werden.

Textanalyse: Bei der Arbeit mit großen Dokumenten oder Datensätzen hilft die Dimensionsreduzierung dabei, wichtige Bereiche oder Themen effizient zusammenzufassen und zu visualisieren, was für Stimmungsanalysen oder Inhaltsempfehlungssysteme von entscheidender Bedeutung ist.

LLM-Integration in scikit-learn

Scikit-Learn konzentriert sich in erster Linie auf Algorithmen für maschinelles Lernen, kann aber um große Sprachmodelle (LLMs) erweitert werden. Obwohl sich scikit-learn ursprünglich auf traditionelle Modelle wie Decision Trees, Unterstützung von Vektormaschinen und Clustering-Algorithmen konzentrierte, ermöglicht das flexible Ökosystem auch die Integration mit LLMs über Programmierschnittstelle-Konfigurationen (API). Dazu gehört die Nutzung von Modellen wie der GPT-Serie von OpenAI und anderen von der Community bereitgestellten Optionen wie Anthropic- oder AzurechatOpenAI-Modellen.

Die Integration ist ähnlich wie bei Projekten wie Auto-GPT optimiert, sodass er Entwicklern zugänglich ist, die mit dem Workflow von scikit-learn vertraut sind. Scikit-learn bietet auf seiner GitHub-Seite Ressourcen an, einschließlich Tutorials, die Benutzer beim Erkunden von Open-Source-LLMs unterstützen. Diese Einrichtung erleichtert die Bereitstellung des gewählten LLM-Modells über API-Anmeldeinformationen, sodass scikit-learn von den verbesserten Funktionen zur Verarbeitung natürlicher Sprache profitieren kann.

Anforderungen

Für die Nutzung der Effizienz von scikit-learn ist ein grundlegendes Verständnis von Python-Umgebungen, NumPy, SciPy, Pandas und Matplotlib unerlässlich, da diese die Basis für die Datenvorverarbeitung, die Funktionsentwicklung und die Visualisierung in maschinellen Lern-Pipelines bilden. Diese Bibliotheken bilden die Basis für die Datenvorverarbeitung, die Funktionsentwicklung und die Visualisierung in maschinellen Lern-Pipelines. Die Vertrautheit mit ihren Funktionen ermöglicht den effizienten Umgang mit Datensätzen, die Auswahl relevanter Funktionen und die Visualisierung der Ergebnisse – was letztlich zu einer verbesserten Leistung des Modells führt.

Python-Umgebung

 

Eine eigenständige Installation von Python und seinen Abhängigkeiten, mit der Sie die Anforderungen Ihres Projekts isolieren und die Konsistenz über verschiedene Projekte hinweg sicherstellen können. Es kann mit Tools wie Conda oder Virtualenv erstellt werden.

Numpy

 

Eine Bibliothek, die große, mehrdimensionale Arrays und Matrizen sowie eine breite Palette leistungsstarker mathematischer Funktionen zu deren Bearbeitung mit hoher Leistung unterstützt. Es handelt sich um ein grundlegendes Paket für das wissenschaftliche Rechnen in Python.

Scipy

 

Eine Bibliothek, die auf NumPy aufbaut und Funktionen für wissenschaftliche und technische Anwendungen wie Signalverarbeitung, lineare Algebra, Optimierung und Statistiken bereitstellt. Es ist in Bereichen wie Physik, Ingenieurwesen und Datenanalyse weit verbreitet.

Pandas

 

Eine Bibliothek, die Datenstrukturen und Funktionen zur effizienten Verarbeitung strukturierter Daten bereitstellt, einschließlich tabellarischer Daten wie Tabellenkalkulationen und SQL-Tabellen. Es ist besonders nützlich für das Bereinigen, Filtern, Gruppieren und Zusammenführen von Daten.

Matplotlib

 

Eine Plot-Bibliothek, die eine breite Palette von Visualisierungswerkzeugen bietet, mit denen Sie hochwertige 2D- und 3D-Plots, Diagramme und Grafiken erstellen können. Es wird oft in Verbindung mit NumPy und Pandas verwendet, um wissenschaftliche Daten zu visualisieren.

Zukünftige Entwicklungen

Während sich scikit-learn weiter entwickelt, ist man bestrebt, seine Fähigkeiten durch fortschrittliche Ensemble-Techniken und Meta-Learning-Ansätze zu erweitern. Durch die Nutzung der Leistungsfähigkeit von Neural Networks in Verbindung mit traditionellen Algorithmen möchte scikit-learn ein umfassendes Toolkit bereitstellen, das immer mehr Herausforderungen des maschinellen Lernens bewältigt. Diese Entwicklungen werden den Zugang für Fachleute, die in ihrer Arbeit modernste Technologien einsetzen möchten, weiter vereinfachen.

Weiterführende Lösungen
IBM watsonx.ai

Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.

watsonx.ai erkunden
Lösungen im Bereich künstlicher Intelligenz

Setzen Sie KI in Ihrem Unternehmen ein
– mit branchenführendem Fachwissen im Bereich KI und dem umfassenden Lösungsportfolio von IBM an Ihrer Seite.

Erkunden Sie KI-Lösungen
Beratung und Services zu künstlicher Intelligenz (KI)

Die KI-Services von IBM Consulting unterstützen Sie dabei, die Art und Weise, wie Unternehmen mit KI arbeiten, neu zu denken.

KI-Services entdecken
Machen Sie den nächsten Schritt

Mithilfe von KI liefert IBM Concert wichtige Erkenntnisse über Ihre Abläufe und gibt anwendungsspezifische Empfehlungen zur Verbesserung. Entdecken Sie, wie Concert Ihr Unternehmen voranbringen kann.

Entdecken Sie Concert Erkunden Sie Lösungen zur Geschäftsprozessautomatisierung