Einführung in Maschinelles Lernen in Python

Maschinelles Lernen ist der Akt, Computer zu lernen, ohne sie explizit zu programmieren. Dies geschieht, indem Daten an Computer weitergegeben werden und die Daten in Entscheidungsmodelle umgewandelt werden, die dann für zukünftige Vorhersagen verwendet werden.

In diesem Tutorial werden wir über maschinelles Lernen und einige der grundlegenden Konzepte sprechen, die erforderlich sind, um mit maschinellem Lernen zu beginnen. Wir werden auch einige Python-Beispiele entwickeln, um bestimmte Elemente oder Ereignisse vorherzusagen.

Einführung in das maschinelle Lernen

Maschinelles Lernen ist eine Technologie, die aus Erfahrung lernen soll. Als Mensch können Sie beispielsweise lernen, wie man Schach spielt, indem Sie andere Menschen beim Schachspiel beobachten. Auf dieselbe Weise werden Computer programmiert, indem sie ihnen Daten zur Verfügung stellen, aus denen sie lernen, und sie können zukünftige Elemente oder Bedingungen vorhersagen.

Nehmen wir zum Beispiel an, Sie möchten ein Programm schreiben, mit dem Sie feststellen können, ob eine bestimmte Fruchtart eine Orange oder eine Zitrone ist. Es fällt Ihnen möglicherweise leicht, ein solches Programm zu schreiben, und es liefert die erforderlichen Ergebnisse. Es kann jedoch auch vorkommen, dass das Programm für große Datensätze nicht effektiv arbeitet. Hier kommt maschinelles Lernen ins Spiel.

Maschinelles Lernen umfasst verschiedene Schritte:

  1. Datensammlung
  2. Filterung von Daten
  3. Datenanalyse
  4. Algorithmus-Training
  5. Testen des Algorithmus
  6. Verwenden des Algorithmus für zukünftige Vorhersagen

Maschinelles Lernen verwendet verschiedene Arten von Algorithmen, um Muster zu finden. Diese Algorithmen werden in zwei Gruppen unterteilt:

  • überwachtes Lernen
  • unbeaufsichtigtes Lernen

Überwachtes Lernen

Überwachtes Lernen ist die Wissenschaft, einen Computer so zu trainieren, dass er Elemente anhand von Beispieldaten erkennt. Der Computer lernt daraus und kann zukünftige Datensätze basierend auf den gelernten Daten vorhersagen.

Sie können beispielsweise einen Computer trainieren, um Spam-Nachrichten auf der Grundlage früherer Informationen herauszufiltern.

Überwachtes Lernen wurde in vielen Anwendungen verwendet, z. Facebook, um Bilder anhand einer bestimmten Beschreibung zu suchen. Sie können Bilder auf Facebook mit Wörtern suchen, die den Inhalt des Fotos beschreiben. Da die Website für soziale Netzwerke bereits über eine Datenbank mit Bildern mit Bildern verfügt, kann sie die Beschreibung mit einem gewissen Grad an Genauigkeit anhand von Fotos suchen.

Beim beaufsichtigten Lernen sind nur zwei Schritte erforderlich:

  • Ausbildung
  • testen

Einige der überwachten Lernalgorithmen umfassen:

  • Entscheidungsbäume
  • Support-Vektor-Maschinen
  • naive Bayes
  • k-nächster Nachbar
  • lineare Regression

Beispiel

Wir werden ein einfaches Programm schreiben, um zu zeigen, wie das überwachte Lernen mit der Sklearn-Bibliothek und der Python-Sprache funktioniert. Sklearn ist eine Bibliothek für maschinelles Lernen für die Programmiersprache Python mit einer Reihe von Funktionen wie Multiple Analysis, Regression und Clustering-Algorithmen.

Sklearn funktioniert auch gut mit den NumPy- und SciPy-Bibliotheken.

Installieren Sie Sklearn

Das Sklearn-Installationshandbuch bietet eine sehr einfache Möglichkeit, es für mehrere Plattformen zu installieren. Es erfordert mehrere Abhängigkeiten:

  • Python (> = 2,7 oder> = 3,3),
  • NumPy (> = 1.82)
  • SciPy (> = 0,13,3)

Wenn Sie bereits über diese Abhängigkeiten verfügen, können Sie Sklearn so einfach installieren wie:

pip install -U scikit-learn

Einfacher ist es, Anaconda einfach zu installieren. Dies kümmert sich um alle Abhängigkeiten, so dass Sie sich keine Gedanken machen müssen, sie einzeln zu installieren.

Um zu testen, ob Sklearn ordnungsgemäß ausgeführt wird, importieren Sie es einfach aus einem Python-Interpreter wie folgt:

sklearn importieren

Wenn kein Fehler auftritt, können Sie loslegen.

Jetzt, da wir mit der Installation fertig sind, kommen wir zu unserem Problem zurück. Wir wollen zwischen verschiedenen Tieren unterscheiden können. Wir werden also einen Algorithmus entwerfen, der genau erkennen kann, ob ein Tier entweder ein Pferd oder ein Huhn ist.

Wir müssen zunächst einige Probendaten von jedem Tiertyp sammeln. Einige Beispieldaten sind in der nachstehenden Tabelle aufgeführt.

Größe in Zoll) Gewicht (kg)
Temperatur (Celsius)
Etikette
7
0,6
40 Huhn (0)
7
0,6 41
Huhn (0)
37
0,8 37
Pferd (1)
37
0,8 38
Pferd (1)

Die von uns ermittelten Beispieldaten geben einige der gemeinsamen Merkmale der beiden Tiere und Daten von zwei Tieren an. Je größer die Probedaten sind, desto genauer und weniger voreingenommen sind die Ergebnisse.

Mit dieser Art von Daten können wir einen Algorithmus codieren und darin trainieren, ein Tier anhand der trainierten Werte zu erkennen und es entweder als Pferd oder Huhn zu klassifizieren. Jetzt schreiben wir den Algorithmus, der die Arbeit erledigen wird.

Importieren Sie zuerst das Baummodul von Sklearn.

von sklearn import tree

Definieren Sie die Funktionen, die Sie zur Klassifizierung der Tiere verwenden möchten.

Merkmale = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]]

Definieren Sie die Ausgabe, die jeder Klassifikator liefert. Ein Huhn wird durch 0 dargestellt, während ein Pferd durch 1 dargestellt wird.

#labels = [Huhn, Huhn, Pferd, Pferd] # Wir verwenden 0, um ein Huhn darzustellen, und 1, um ein Pferdeetikett darzustellen = [0, 0, 1, 1]. 

Wir definieren dann den Klassifizierer, der auf einem Entscheidungsbaum basiert.

classifier = tree.DecisionTreeClassifier ()

Füttern oder passen Sie Ihre Daten an den Klassifikator an.

classifier.fit (Features, Labels) 

Der vollständige Code für den Algorithmus ist unten gezeigt.

aus sklearn import tree features = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]] #labels = [Huhn, Huhn, Pferd, Pferd ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (Merkmale, Labels)

Wir können jetzt einen bestimmten Datensatz vorhersagen. So prognostizieren Sie ein Tier mit einer Höhe von 7 Zoll, einem Gewicht von 0,6 kg und einer Temperatur von 41:

aus sklearn import tree features = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]] #labels = [Huhn, Huhn, Pferd, Pferd ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (Merkmale, Labels) print classif.predict ([[7, 0.6, 41]]) #output # [0] oder a Hähnchen

So prognostizieren Sie ein Tier mit einer Höhe von 38 Zoll, einem Gewicht von 600 kg und einer Temperatur von 37,5:

aus sklearn import tree features = [[7, 0,6, 40], [7, 0,6, 41], [37, 600, 37], [37, 600, 38]] #labels = [Huhn, Huhn, Pferd, Pferd ] labels = [0, 0, 1, 1] classif = tree.DecisionTreeClassifier () classif.fit (Merkmale, Labels) print classif.predict ([[38, 600, 37.5]]) # output # [1] oder a Pferd 

Wie Sie oben sehen können, haben Sie den Algorithmus so trainiert, dass er alle Merkmale und Namen der Tiere erkennt und die Kenntnis dieser Daten zum Testen neuer Tiere verwendet.

Unbeaufsichtigtes Lernen

Unüberwachtes Lernen ist, wenn Sie Ihre Maschine mit nur einem Satz von Eingaben trainieren. Das Gerät kann dann eine Beziehung zwischen den Eingabedaten und anderen, die Sie vorhersagen möchten, finden. Im Gegensatz zum beaufsichtigten Lernen, bei dem Sie eine Maschine mit einigen Daten zum Trainieren präsentieren, soll das unbeaufsichtigte Lernen dazu führen, dass der Computer Muster oder Beziehungen zwischen verschiedenen Datensätzen findet.

Unüberwachtes Lernen lässt sich weiter unterteilen in:

  • Clustering
  • Verband

Clustering: Clustering bedeutet das Gruppieren von Daten inhärent. Sie können beispielsweise die Einkaufsgewohnheiten von Verbrauchern klassifizieren und für die Werbung verwenden, indem Sie die Verbraucher auf ihre Einkäufe und Einkaufsgewohnheiten abzielen.

VerbandIn der Assoziation identifizieren Sie Regeln, die große Mengen Ihrer Daten beschreiben. Diese Art des Lernens kann bei der Zuordnung von Büchern nach Autor oder Kategorie angewendet werden, unabhängig davon, ob es sich um motivationale, fiktive oder pädagogische Bücher handelt.

Einige der gängigen, nicht überwachten Lernalgorithmen sind:

  • k-bedeutet Clustering
  • hierarchisches Clustering

Unüberwachtes Lernen wird in naher Zukunft eine wichtige Technologie sein. Dies ist darauf zurückzuführen, dass es viele ungefilterte Daten gibt, die noch nicht digitalisiert wurden.

Fazit

Ich hoffe, dieses Tutorial hat Ihnen beim Einstieg in das maschinelle Lernen geholfen. Dies ist nur eine Einführung - maschinelles Lernen hat viel zu bieten, und dies ist nur ein Bruchteil dessen, was maschinelles Lernen leisten kann.

Zögern Sie nicht, zu sehen, was wir für den Verkauf und das Studium auf dem Envato-Markt zur Verfügung haben, und zögern Sie nicht, Fragen zu stellen und mit dem untenstehenden Feed wertvolles Feedback zu geben.

Ihre Entscheidung, entweder einen überwachten oder einen nicht überwachten maschinellen Lernalgorithmus zu verwenden, hängt von verschiedenen Faktoren ab, wie z. B. der Struktur und der Größe der Daten.

Maschinelles Lernen kann in fast allen Bereichen unseres Lebens angewendet werden, z. In der Betrugsprävention können Sie News-Feeds in Social-Media-Sites an die Präferenzen der Benutzer anpassen, E-Mail- und Malware-Filterung, Wettervorhersagen und sogar im E-Commerce-Sektor, um die Kaufgewohnheiten der Verbraucher vorherzusagen.