Heim > Technologie-Peripheriegeräte > IT Industrie > Eine Grundierung auf maschinelles Lernen mit Python

Eine Grundierung auf maschinelles Lernen mit Python

Christopher Nolan
Freigeben: 2025-02-10 15:54:09
Original
785 Leute haben es durchsucht

A Primer on Machine Learning with Python

In den letzten zehn Jahren hat sich maschinelles Lernen von wissenschaftlichen Forschungslabors zu alltäglichen Web- und mobilen Anwendungen gewechselt. Maschinelles Lernen ermöglicht es Ihrer Anwendung, bisher schwierige Aufgaben auszuführen, z. B. das Erkennen von Objekten und Gesichtern in Bildern, das Erkennen von Spam- und Hassreden sowie das Generieren intelligenter Antworten für E -Mail- und Nachrichtenanwendungen.

unterscheidet sich jedoch grundlegend von der klassischen Programmierung. In diesem Artikel lernen Sie die Grundlagen des maschinellen Lernens und erstellen ein Basismodell, das Blumenarten basierend auf Blumenmessungen vorhersagen kann.

Schlüsselpunkte

  • maschinelles Lernen hat sich von einem wissenschaftlichen Forschungslabor zu alltäglichen Web- und mobilen Anwendungen entwickelt, wodurch Anwendungen die bisher schwer zu programmierenden Aufgaben ausführen können.
  • maschinelles Lernen stützt sich auf Erfahrung, trainiert Modelle anhand von Beispielen, anstatt ihnen Regeln zu liefern. Es gibt verschiedene Kategorien von Algorithmen für maschinelles Lernen, von denen jedes spezifische Probleme lösen kann: überwachendes Lernen, unbeaufsichtigtes Lernen und Verstärkungslernen.
  • Python ist aufgrund seiner Einfachheit, Lesbarkeit und eines breiten Ökosystems, einschließlich Bibliotheken und Frameworks wie Scikit-Learn, Tensorflow und Pytorch, zu einer beliebten Sprache für maschinelles Lernen geworden. Das Verständnis der grundlegenden Konzepte der Python -Programmierung, Bibliotheken wie Numpy, Pandas und Matplotlib sowie Statistik und Wahrscheinlichkeit ist jedoch eine Voraussetzung.
  • Der Prozess der Implementierung eines maschinellen Lernmodells umfasst das Definieren von Problemen, das Sammeln von Daten, die Aufteilung des Datensatzes in Trainings- und Testsätze, das Erstellen des Modells und die Bewertung seiner Leistung. Techniken wie die Aufteilung des Kreuzvalidations- und Trainingstests sowie Indikatoren wie Genauigkeit, Genauigkeit, Rückruf und F1-Score können verwendet werden, um die Leistung des Modells zu überprüfen.

Wie funktioniert maschinelles Lernen?

klassische Programmierung basiert auf gut definierten Problemen, die in verschiedene Klassen, Funktionen und IF-ELSE-Befehle unterteilt werden können. Das maschinelle Lernen hingegen beruht auf der Entwicklung seines Verhaltens auf der Grundlage der Erfahrung. Anstatt Regeln für maschinelle Lernmodelle bereitzustellen, trainieren Sie sie anhand von Beispielen.

Es gibt verschiedene Kategorien von Algorithmen für maschinelles Lernen, von denen jede spezifische Probleme lösen kann.

beaufsichtigtes Lernen

überwachtes Lernen eignet sich für Fragen, die Sie von Eingabedaten zum Ergebnis erhalten möchten. Ein gemeinsames Merkmal aller beaufsichtigten Lernprobleme ist die Existenz einer realen Situation, mit der das Modell getestet werden kann, z. B. markierte Bilder oder historische Verkaufsdaten.

überwachte Lernmodelle können Regressions- oder Klassifizierungsprobleme lösen. Das Regressionsmodell prognostiziert die Menge (z. B. die Menge der verkauften Waren oder den Preis für Aktien), während das Klassifizierungsproblem versucht, die Kategorien der Eingabedaten zu bestimmen (z. B. Katzen/Hund/Fisch/Vogel, Betrug/Nicht-Auseinandersetzung).

Bildklassifizierung, Gesichtserkennung, Aktienkursvorhersage und Umsatzvorhersage sind Beispiele für Probleme, die das überwachte Lernen lösen kann.

Einige beliebte überwachte Lernalgorithmen sind lineare Regression und logistische Regression, Unterstützung von Vektormaschinen, Entscheidungsbäumen und künstlichen neuronalen Netzwerken.

unbeaufsichtigtes Lernen

unbeaufsichtigtes Lernen eignet sich für Probleme, bei denen Sie Daten haben, aber keine Ergebnisse, sondern nach Mustern suchen. Zum Beispiel möchten Sie sie möglicherweise in Segmenten gruppieren, die auf Ihrer Ähnlichkeit basieren. Dies wird als Clustering im unbeaufsichtigten Lernen bezeichnet. Alternativ möchten Sie möglicherweise einen böswilligen Netzwerkverkehr erkennen, der von den normalen Aktivitäten Ihres Unternehmens abweicht. Dies wird als Anomalie -Erkennung bezeichnet, was eine weitere unbeaufsichtigte Lernaufgabe ist. Unüberwachtes Lernen kann auch zur Reduzierung der Dimensionalität verwendet werden, eine Technik zur Vereinfachung des maschinellen Lernens durch Entfernen irrelevanter Merkmale.

Einige beliebte unbeaufsichtigte Lernalgorithmen sind K-Mean-Clustering und Hauptkomponentenanalyse (PCA).

Verstärkungslernen

Verstärkungslernen ist ein Zweig des maschinellen Lernens, in dem Agenten versuchen, ihre Ziele zu erreichen, indem sie mit ihrer Umgebung interagieren. Das Verstärkungslernen beinhaltet Aktionen, Status und Belohnungen. Untrainierte Verstärkungslernmittel beginnen mit zufälliger Wirkung. Jede Aktion verändert den Umweltzustand. Wenn sich der Agent im gewünschten Zustand befindet, erhält er eine Belohnung. Der Agent versucht, die Abfolge von Aktionen und Zuständen zu finden, die die meisten Belohnungen erzeugen.

Verstärkungslernen wird in Empfehlungssystemen, Robotik und Gaming -Robotern wie Alphago und Alphastar von Google verwendet.

Einrichten der Python -Umgebung

In diesem Artikel werden wir uns auf das überwachte Lernen konzentrieren, da es der beliebteste Zweig des maschinellen Lernens ist und seine Ergebnisse leichter zu bewerten sind. Wir werden Python verwenden, da es viele Funktionen und Bibliotheken enthält, die Anwendungen für maschinelles Lernen unterstützen. Das allgemeine Konzept kann jedoch auf jede Programmiersprache mit ähnlichen Bibliotheken angewendet werden.

(Wenn Sie mit Python nicht vertraut sind, bietet FreecodeCamp einen großartigen Crashkurs, um Ihnen den Einstieg zu erleichtern.)

Eine der Python-Bibliotheken, die üblicherweise in Datenwissenschaft und maschinellem Lernen verwendet werden, ist Scikit-Learn, das Implementierungen populärer Algorithmen für maschinelles Lernen bietet. Scikit-Learn ist nicht Teil einer grundlegenden Python-Installation, Sie müssen sie manuell installieren.

macOS und Linux sind mit Python vorinstalliert. Um die Scikit-Learn-Bibliothek zu installieren, geben Sie den folgenden Befehl im Terminalfenster ein:

<code>pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

oder für Python 3:

<code>python3 -m pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Auf Microsoft Windows müssen Sie zuerst Python installieren. Sie können die neueste Version von Windows Python 3 Installer von der offiziellen Website erhalten. Geben Sie nach der Installation von Python den folgenden Befehl in das Befehlszeilenfenster ein:

<code>python -m pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Alternativ können Sie das Anaconda-Framework installieren, das eigenständige Python 3 sowie Scikit-Learn und viele andere Bibliotheken für Datenwissenschaft und maschinelles Lernen umfasst, wie numpy , scipy > und Matplotlib . Die Installationsanweisungen für die kostenlose persönliche Version von Anaconda finden Sie auf der offiziellen Website.

Schritt 1: Definieren Sie das Problem

Der erste Schritt in jedem Projekt für maschinelles Lernen besteht darin, das Problem zu verstehen, das Sie lösen möchten. Das Definieren einer Frage hilft Ihnen, die Art der Daten zu ermitteln, die Sie sammeln müssen, und geben Sie eine Vorstellung davon, welchen Algorithmus für maschinelles Lernen Sie verwenden müssen.

In unserem Beispiel möchten wir ein Modell erstellen, das die Art der Blume vorhersagt, die auf Messungen von Blütenblättern und Sepallänge und Breite basiert.

Dies ist ein Problem mit der Überwachungsklassifizierung. Wir müssen eine Liste von Messungen verschiedener Blütenproben und ihrer entsprechenden Arten sammeln. Wir werden diese Daten dann verwenden, um ein maschinelles Lernmodell zu trainieren und zu testen, das Messungen an Arten abbilden kann.

Schritt 2: Daten sammeln

Einer der schwierigsten Teile des maschinellen Lernens ist das Sammeln von Daten, um Ihr Modell zu trainieren. Sie müssen eine Quelle finden, die die Datenmenge sammeln kann, die zum Training des Modells erforderlich ist. Sie müssen auch die Qualität Ihrer Daten überprüfen, sicherstellen, dass es die verschiedenen Situationen darstellt, die das Modell behandelt, und vermeiden Sie das Sammeln von Daten, die versteckte Verzerrungen enthalten.

Zum Glück enthält Scikit-Learn mehrere Spielzeugdatensätze, mit denen verschiedene Algorithmen für maschinelles Lernen ausprobieren können. Der "Iris -Datensatz" enthält zufällig die genauen Daten für unsere Frage. Wir müssen es nur aus der Bibliothek laden.

Der folgende Code lädt den Wohnungsdatensatz:

<code>pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Der IRIS -Datensatz enthält 150 Beobachtungen mit jeweils vier Messungen (Iris.Data) und Zielblumspezies (Iris.Target). Sie können den Namen der Datenspalte in iris.feature_names:

sehen:
<code>python3 -m pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

iris.target enthält einen numerischen Index (0-2) einer der drei im Datensatz registrierten Blumenarten. Die Namen der Blumenarten sind in Iris.Target_Names:
<code>python -m pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
zu finden

Schritt 3: Teilen Sie den Datensatz

auf

Bevor Sie mit dem Training beginnen, müssen Sie die Daten in einen Trainingssatz und einen Testsatz aufteilen. Sie werden den Trainingssatz verwenden, um ein maschinelles Lernmodell zu trainieren und den Testsatz zu überprüfen, um seine Genauigkeit zu überprüfen.

Dies geschieht, um sicherzustellen, dass Ihr Modell die Trainingsdaten nicht übertitelt. Überanpassung ist, wenn Ihr maschinelles Lernmodell bei Trainingsbeispielen gut abschneidet, jedoch nicht in unsichtbaren Daten. Überanpassung kann durch die Auswahl eines falschen Algorithmus für maschinelles Lernen, das Missverständnis des Modells, schlechte Trainingsdaten oder zu wenige Trainingsbeispiele verursacht werden.

Abhängig von der Art des Problems, das Sie lösen, und die Datenmenge, die Sie haben, müssen Sie die Datenmenge bestimmen, die Sie dem Testsatz zuweisen möchten. Wenn Sie viele Daten haben (etwa Zehntausende von Beispielen), reichen normalerweise nur etwa 1% der kleinen Proben aus, um Ihr Modell zu testen. Für den IRIS-Datensatz mit insgesamt 150 Datensätzen werden wir die 75-25-Segmentierung auswählen.

scikit-larn hat eine train_test_split-Funktion, die den Datensatz in einen Trainingsdatensatz und einen Testdatensatz aufteilt:
<code>from sklearn.datasets import load_iris

iris = load_iris()
</code>
Nach dem Login kopieren
Nach dem Login kopieren

train_test_split ruft die Daten- und Zieldatensätze ab und gibt zwei für das Training verwendete Datensätze (x_train und y_train) und test (x_test und y_test) zurück. Der Parameter test_size bestimmt den Prozentsatz der Daten, die dem Test zugeordnet werden sollen (zwischen 0 und 1). Der Stratify -Parameter stellt sicher, dass das Trainingsarray und das Testarray die Anzahl der ausgewogenen Proben aus jeder Kategorie enthalten. Die Random_State-Variable existiert in vielen Funktionen von Scikit-Learn und wird verwendet, um den Zufallszahlengenerator zu steuern und Wiederholbarkeit zu erreichen.

Schritt 4: Erstellen Sie das Modell

Jetzt, da unsere Daten fertig sind, können wir ein maschinelles Lernmodell erstellen und es am Trainingssatz trainieren. Es gibt viele verschiedene Algorithmen für maschinelles Lernen, die das Klassifizierungsproblem lösen können, mit dem wir uns befassen. In unserem Fall werden wir den Algorithmus "Logistische Regression" verwenden, der sehr schnell ist und für einfache Klassifizierungsprobleme geeignet ist, die nicht zu viele Dimensionen enthalten.

Scikit-Learns LogisticRegressionsklasse implementiert diesen Algorithmus. Nachdem wir es instanziiert haben, trainieren wir es in unserem Trainingssatz (x_train und y_train), indem wir die Anpassungsfunktion aufrufen. Dadurch wird die Parameter des Modells angepasst, um die Zuordnung zwischen den gemessenen Werten und den Blütenspezies zu finden.

<code>pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 5: Bewerten Sie das Modell

Jetzt, da wir das Modell geschult haben, wollen wir seine Genauigkeit messen. Die LogisticRegression -Klasse hat eine Score -Methode, die die Genauigkeit des Modells zurückgibt. Erstens werden wir die Genauigkeit des Modells auf den Trainingsdaten messen:

<code>python3 -m pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies wird ungefähr 0,97 zurückgeben, was bedeutet, dass das Modell 97% der Trainingsbeispiele genau vorhersagt, was ziemlich gut ist, wenn man bedenkt, dass wir nur etwa 37 Trainingsbeispiele pro Arten haben.

Als nächstes werden wir die Genauigkeit des Modells im Testsatz überprüfen:

<code>python -m pip install scikit-learn</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies gibt uns etwa 95% der Ergebnisse, etwas unterhalb der Trainingsgenauigkeit, was natürlich ist, da dies Beispiele sind, die das Modell noch nie zuvor gesehen hat. Durch das Erstellen größerer Datensätze oder durch den Versuch eines anderen Algorithmus für maschinelles Lernen (z. B. Support Vector -Maschinen) können wir möglicherweise die Genauigkeit unserer Modelle weiter verbessern und die Lücke zwischen Training und Testleistung überbrücken.

Schließlich möchten wir sehen, wie das Modell, das wir auf dem neuen Beispiel ausgebildet haben, verwenden. Die LogisticRegression -Klasse hat eine Vorhersagefunktion, die eine Reihe von Beobachtungen als Eingabe nimmt und die vorhergesagte Kategorie zurückgibt. Im Fall unseres Blumenklassifikatormodells müssen wir es mit einer Reihe von vier Messungen (Sepallänge, Sepalbreite, Blütenblattlänge, Blütenbreite) bereitstellen, die eine Ganzzahl zurückgeben, die die Kategorie der Blume darstellt:

<code>from sklearn.datasets import load_iris

iris = load_iris()
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Herzlichen Glückwunsch! Sie haben Ihr erstes maschinelles Lernmodell erstellt. Wir können es jetzt zu einer App kombinieren, die den Benutzer messen und die Blumenarten zurückgibt:

<code>print(iris.feature_names)
'''
['sepal length (cm)',
 'sepal width (cm)',
 'petal length (cm)',
 'petal width (cm)']
'''
</code>
Nach dem Login kopieren

Ich hoffe, dies ist Ihr erster Schritt, um ein Meister des maschinellen Lernens zu werden. Von hier aus können Sie weiterhin andere Algorithmen für maschinelles Lernen lernen, mehr über die grundlegenden Konzepte des maschinellen Lernens erfahren und weiter fortgeschrittenere Themen wie neuronale Netzwerke und tiefes Lernen lernen. Mit einigen Lernen und Praxis können Sie außergewöhnliche Anwendungen erstellen, mit denen Objekte in Bildern erkennen, Sprachbefehle verarbeiten und Gespräche mit Benutzern führen können.

FAQ für maschinelles Lernen mit Python (FAQ)

Was sind die Voraussetzungen für das Lernen, Python für maschinelles Lernen zu verwenden?

Um zu lernen, Python für maschinelles Lernen zu verwenden, benötigen Sie ein grundlegendes Verständnis der Python -Programmierung. Es ist auch vorteilhaft, mit Bibliotheken wie Numpy, Pandas und Matplotlib vertraut zu sein. Darüber hinaus ist ein grundlegendes Verständnis von Statistiken und Wahrscheinlichkeit entscheidend, da sie den Kern von Algorithmen für maschinelles Lernen bilden.

Wie vergleicht Python mit anderen maschinellen Lernsprachen?

Python ist aufgrund seiner Einfachheit und Lesbarkeit eine der beliebtesten Sprachen für maschinelles Lernen. Es verfügt über eine breite Palette von Bibliotheken und Frameworks wie Scikit-Learn, Tensorflow und Pytorch, die die Entwicklung maschineller Lernmodelle vereinfachen. Andere Sprachen wie R und Java werden ebenfalls im maschinellen Lernen verwendet, aber Pythons umfangreiches Ökosystem macht es für viele die erste Wahl.

Welche allgemeinen Algorithmen für maschinelles Lernen kann ich mit Python implementieren?

Die Scikit-Learn-Bibliothek von Python bietet Implementierungen verschiedener Algorithmen für maschinelles Lernen. Einige häufig verwendete Algorithmen sind lineare Regression, logistische Regression, Entscheidungsbäume, zufällige Wälder, Stützvektormaschinen und K-Nearest-Nachbarn. Für Deep Learning können Sie Bibliotheken wie TensorFlow und Pytorch verwenden.

Wie kann ich die Leistung meines Python -Modells für maschinelles Lernen überprüfen?

Sie können Techniken wie Cross-Validation- und Trainingstestaufteilung verwenden, um die Leistung Ihres Modells zu überprüfen. Die Scikit-Learn-Bibliothek von Python bietet dafür Funktionen. Darüber hinaus können Sie Metriken wie Genauigkeit, Genauigkeit, Rückruf und F1 -Score verwenden, um Probleme zu klassifizieren und mittlere quadratische Fehler oder R -Quadrat für Regressionsprobleme zu verwenden.

Kann ich Python für überwachtes und unbeaufsichtigtes Lernen verwenden?

Ja, Python unterstützt überwachtes Lernen und unbeaufsichtigtes Lernen. Bibliotheken wie Scikit-Learn können verwendet werden, um überwachte Lernalgorithmen wie Regression und Klassifizierung zu implementieren. Für unbeaufsichtigtes Lernen können Sie Clustering-Algorithmen wie K-Means, hierarchisches Clustering und DBSCAN verwenden.

Wie kann man mit Überanpassung in maschinellem Lernmodellen umgehen?

Techniken wie Regularisierung, frühes Stoppen und neuronales Netzwerktrackout können verwendet werden, um eine Überanpassung zu bewältigen. Sie können auch integrierte Methoden wie das Absacken und Anleihen verwenden, um die Überanpassung zu reduzieren.

Welche Rolle spielt die Datenvorverarbeitung im maschinellen Lernen mit Python?

Datenvorverarbeitung ist ein wichtiger Schritt im maschinellen Lernen. Es umfasst die Reinigung von Daten, die Verarbeitung fehlender Werte, kodierende kategoriale Variablen und Skalierungsfunktionen. Python bietet Bibliotheken wie Pandas und Scikit-Learn, die eine effiziente Datenvorverarbeitung durchführen können.

Wie kann man Python verwenden, um die Leistung von Modellen für maschinelles Lernen zu visualisieren?

Sie können Bibliotheken wie Matplotlib und Seeborn verwenden, um die Leistung Ihres Modells zu visualisieren. Diese Bibliotheken bieten Funktionen für Diagramme wie Verwirrungsmatrix, ROC -Kurve und Lernkurve.

Kann ich Python für die Verarbeitung natürlicher Sprache (NLP) verwenden?

Ja, Python bietet Bibliotheken wie NLTK und Spacy für die Verarbeitung natürlicher Sprache. Diese Bibliotheken liefern Funktionen wie Tokenisierung, Annotation der Speech, die genannte Entitätserkennung und Stimmungsanalyse.

Wie bereitet ich ein mit Python erstellter Modell für maschinelles Lernen ein?

Sie können Web -Frameworks wie Flask oder Django verwenden, um maschinelle Lernmodelle bereitzustellen. Für groß angelegte Bereitstellungen können Sie Cloud-Plattformen wie AWS, Google Cloud oder Azure verwenden. Sie bieten Dienste für die Modellbereitstellung, Skalierung und Überwachung an.

Das obige ist der detaillierte Inhalt vonEine Grundierung auf maschinelles Lernen mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage