# Einführung
Die einfachste Lösung ist oft die beste, insbesondere wenn es um die Lösung eines bestimmten Issues des maschinellen Lernens geht.
Ich habe viele Menschen gesehen, die große Sprachmodelle (LLMs) und generative KI-Systeme für Aufgaben wie Zeitreihenvorhersage, Bildklassifizierung und tabellarische Vorhersage verwenden. In vielen Fällen kann ein einfaches Modell für maschinelles Lernen dasselbe Drawback schneller, kostengünstiger und mit viel weniger Komplexität lösen.
Für Datenwissenschaftler ist es immer noch eine wesentliche Fähigkeit, die wichtigsten Algorithmen des maschinellen Lernens zu kennen und zu wissen, wann sie eingesetzt werden sollen. In diesem Leitfaden behandeln wir sieben Algorithmen, die jeder Datenwissenschaftler kennen sollte, erläutern kurz ihre Funktionsweise und zeigen, wie man sie in Python verwendet.
# 1. Lineare Regression
Die lineare Regression ist einer der einfachsten und am weitesten verbreiteten Algorithmen für maschinelles Lernen zur Vorhersage kontinuierlicher numerischer Werte. Es kann für Aufgaben wie die Vorhersage von Immobilienpreisen, die Schätzung des monatlichen Umsatzes oder die Prognose des Energieverbrauchs verwendet werden.
Das Modell lernt die Beziehung zwischen den Eingabemerkmalen und dem Zielwert. Es wird versucht, eine geradlinige Beziehung zu finden, die Vorhersagen liefert, die den tatsächlichen Werten in den Trainingsdaten möglichst nahe kommen.
Während des Trainings lernt das Modell, wie viel jedes Characteristic zur endgültigen Vorhersage beiträgt. Sobald es trainiert ist, kann es diese erlernten Beziehungen nutzen, um Vorhersagen zu neuen Daten zu treffen.
from sklearn.linear_model import LinearRegression
mannequin = LinearRegression()
mannequin.match(X_train, y_train)
y_pred = mannequin.predict(X_test)
Hier, match() Trainiert das lineare Regressionsmodell anhand der Trainingsdaten. Der predict() Die Methode nutzt dann die gelernten Beziehungen, um Vorhersagen für die Testdaten zu generieren.
Die lineare Regression ist schnell, einfach zu implementieren und einfach zu interpretieren. Es wird auch häufig als Basismodell zum Vergleich mit fortgeschritteneren Regressionsalgorithmen verwendet.
# 2. Logistische Regression
Die logistische Regression ist einer der am häufigsten verwendeten Algorithmen zur Klassifizierung. Es wird häufig bei Problemen mit zwei möglichen Folgen eingesetzt, z. B. Spam oder Nicht-Spam, Kundenabwanderung oder -bindung sowie betrügerische oder legitime Transaktionen.
Das Modell schätzt die Wahrscheinlichkeit, dass eine Beobachtung zu einer bestimmten Klasse gehört. Es lernt, wie sich jedes Eingabemerkmal auf diese Wahrscheinlichkeit auswirkt, und verwendet das Ergebnis, um eine Klasse zuzuweisen.
Trotz ihres Namens handelt es sich bei der logistischen Regression um einen Klassifizierungsalgorithmus. Es ist schnell, relativ einfach zu interpretieren und eine solide Grundlage für viele Klassifizierungsprobleme.
from sklearn.linear_model import LogisticRegression
mannequin = LogisticRegression()
mannequin.match(X_train, y_train)
y_pred = mannequin.predict(X_test)
Scikit-lernen Wendet standardmäßig die Regularisierung an, um die Modellkomplexität zu kontrollieren und Überanpassungen zu reduzieren.
# 3. LightGBM
LightGBM ist ein Gradientenverstärkungsalgorithmus, der für baumbasiertes maschinelles Lernen entwickelt wurde. Es ist besonders effektiv für strukturierte oder tabellarische Datensätze.
Das Modell erstellt nacheinander Entscheidungsbäume. Jeder neue Baum konzentriert sich auf die Verbesserung der von den vorhandenen Bäumen gemachten Fehler, und ihre Vorhersagen werden kombiniert, um das Endergebnis zu erzielen.
LightGBM verwendet histogrammbasiertes Lernen, das kontinuierliche Merkmalswerte in Bins gruppiert. Dies kann die Speichernutzung reduzieren und das Coaching effizienter machen, insbesondere bei größeren Datensätzen.
from lightgbm import LGBMClassifier
mannequin = LGBMClassifier()
mannequin.match(X_train, y_train)
y_pred = mannequin.predict(X_test)
In diesem Beispiel wird die verwendet LGBMClassifier zur Klassifizierung. LightGBM bietet auch LGBMRegressor für Regressionsaufgaben.
Es unterstützt auch paralleles, verteiltes und GPU-Coaching, was es zu einer beliebten Wahl für umfangreiches tabellarisches maschinelles Lernen macht.
# 4. XGBoost mit Histogrammbäumen
XGBoost ist ein weiterer beliebter Gradient-Boosting-Algorithmus für strukturierte Daten. Es wird häufig für Klassifizierungs-, Regressions- und Rankingprobleme verwendet.
Wie LightGBM erstellt XGBoost Entscheidungsbäume nacheinander. Jeder neue Baum versucht, Fehler in den aktuellen Vorhersagen zu korrigieren und so das Modell schrittweise zu verbessern.
Anstatt sich auf einen großen Entscheidungsbaum zu verlassen, kombiniert XGBoost viele kleinere Bäume, um eine stärkere endgültige Vorhersage zu erzielen.
from xgboost import XGBClassifier
mannequin = XGBClassifier(tree_method="hist")
mannequin.match(X_train, y_train)
y_pred = mannequin.predict(X_test)
Der tree_method="hist" Die Einstellung verwendet eine histogrammbasierte Baumkonstruktion. Merkmalswerte werden in Bins gruppiert, bevor XGBoost nach nützlichen Aufteilungen sucht, wodurch die Baumbildung effizienter wird.
XGBoost ist flexibel, zuverlässig und bleibt einer der stärksten Algorithmen für viele tabellarische Probleme des maschinellen Lernens.
# 5. Zufälliger Wald
Random Forest ist ein Ensemble-Algorithmus für maschinelles Lernen, der mehrere Entscheidungsbäume kombiniert.
Anstatt sich auf einen einzelnen Baum zu verlassen, trainiert es viele Bäume mithilfe verschiedener Stichproben der Trainingsdaten und Teilmengen der verfügbaren Funktionen. Ihre Vorhersagen werden dann kombiniert.
Zur Klassifizierung stimmen die Bäume über die vorhergesagte Klasse ab. Für die Regression werden ihre Vorhersagen gemittelt. Durch die Kombination mehrerer Bäume ist die Wahrscheinlichkeit einer Überanpassung des Modells normalerweise geringer als bei einem einzelnen Entscheidungsbaum.
from sklearn.ensemble import RandomForestClassifier
mannequin = RandomForestClassifier(
n_estimators=100,
random_state=42
)
mannequin.match(X_train, y_train)
y_pred = mannequin.predict(X_test)
Der n_estimators=100 Die Einstellung weist den Random Forest an, 100 Entscheidungsbäume zu erstellen.
Random Forest ist einfach zu verwenden, funktioniert intestine mit vielen tabellarischen Datensätzen und kann auch Characteristic-Wichtigkeitswerte liefern, um zu verstehen, welche Eingaben die Vorhersagen beeinflussen.
# 6. Lange Kurzzeitgedächtnisnetzwerke
Lange Kurzzeitgedächtnisnetzwerke oder LSTMs sind eine Artwork wiederkehrendes neuronales Netzwerk, das für sequentielle Daten entwickelt wurde.
Ein LSTM verarbeitet eine Sequenz Schritt für Schritt und behält dabei Informationen aus früheren Schritten bei. Es verwendet internen Speicher und Gates, um zu entscheiden, welche Informationen beibehalten, aktualisiert oder ignoriert werden sollen.
Dadurch können frühere Beobachtungen spätere Vorhersagen beeinflussen, was LSTMs nützlich macht, wenn die Reihenfolge der Daten wichtig ist. Beispiele hierfür sind Verkaufsprognosen, Verkehrsvorhersagen, Sensorwerte und andere Zeitreihenprobleme.
from tensorflow import keras
from tensorflow.keras import layers
mannequin = keras.Sequential((
keras.Enter(form=(X_train.form(1), X_train.form(2))),
layers.LSTM(64),
layers.Dense(1)
))
mannequin.compile(
optimizer="adam",
loss="mean_squared_error"
)
mannequin.match(X_train, y_train, epochs=20)
y_pred = mannequin.predict(X_test)
Der LSTM(64) Die Schicht enthält 64 LSTM-Einheiten, die die Sequenz verarbeiten. Der Dense(1) Die Schicht erzeugt eine einzelne numerische Vorhersage.
LSTM-Eingabedaten werden normalerweise wie folgt angeordnet: Proben × Zeitschritte × Merkmale. Diese Modelle können komplexe sequentielle Muster lernen, erfordern jedoch häufig mehr Daten und Berechnungen als herkömmliche Algorithmen für maschinelles Lernen.
# 7. Okay-Means-Clustering
Okay-means ist ein unbeaufsichtigter Algorithmus für maschinelles Lernen, der ähnliche Beobachtungen in Clustern gruppiert. Im Gegensatz zur Klassifizierung sind keine gekennzeichneten Trainingsdaten erforderlich.
Der Algorithmus beginnt mit einer ausgewählten Anzahl von Clusterzentren, die als Schwerpunkte bezeichnet werden. Jede Beobachtung wird ihrem nächstgelegenen Schwerpunkt zugeordnet und die Schwerpunkte werden basierend auf den Beobachtungen in jeder Gruppe neu berechnet.
Dieser Vorgang wiederholt sich, bis sich die Cluster nicht mehr wesentlich verändern.
from sklearn.cluster import KMeans
mannequin = KMeans(
n_clusters=3,
n_init=10,
random_state=42
)
clusters = mannequin.fit_predict(X)
Der n_clusters=3 Die Einstellung weist k-means an, drei Gruppen zu erstellen. Der n_init=10 Die Einstellung führt den Algorithmus mit mehreren Schwerpunktinitialisierungen aus und behält das beste Ergebnis bei.
Okay-Means eignet sich zum Erkennen von Mustern in unbeschrifteten Daten, beispielsweise Kundensegmenten oder Gruppen mit ähnlichem Verhalten. Die Haupteinschränkung besteht darin, dass die Anzahl der Cluster ausgewählt werden muss, bevor der Algorithmus ausgeführt wird.
# Letzte Gedanken
Diese Algorithmen wurden nicht ohne Grund populär und werden auch heute noch in modernen KI-Anwendungen verwendet. Selbst in meinen eigenen Projekten greife ich oft auf traditionelles maschinelles Lernen zurück, weil es mir eine bessere Lösung für das Drawback bietet, das ich zu lösen versuche.
Diese Modelle sind schneller, einfacher zu implementieren und erfordern in der Regel weit weniger CPU, RAM und Infrastruktur. Irgendwann haben wir quick vergessen, dass Einfachheit oft die beste Lösung ist.
Nicht jedes Drawback erfordert ein LLM oder ein generatives KI-Modell. Es gibt viele spezielle Aufgaben, bei denen ein einfacher Algorithmus für maschinelles Lernen die Arbeit erledigen kann, ohne ein riesiges Modell zu verfeinern oder ein komplexes KI-System aufzubauen.
Die wichtige Fähigkeit besteht nicht immer darin, das neueste Modell auszuwählen. Es geht darum, das richtige Modell für das Drawback auszuwählen.
Abid Ali Awan (@1abidaliawan) ist ein zertifizierter Datenwissenschaftler, der gerne Modelle für maschinelles Lernen erstellt. Derzeit konzentriert er sich auf die Erstellung von Inhalten und das Schreiben technischer Blogs zu maschinellem Lernen und Datenwissenschaftstechnologien. Abid verfügt über einen Grasp-Abschluss in Technologiemanagement und einen Bachelor-Abschluss in Telekommunikationstechnik. Seine Imaginative and prescient ist es, ein KI-Produkt mithilfe eines graphischen neuronalen Netzwerks für Schüler mit psychischen Erkrankungen zu entwickeln.
