Regressionsalgorithmen - Übersicht

Einführung in die Regression

Regression ist ein weiteres wichtiges und weit verbreitetes statistisches und maschinelles Lerninstrument. Das Hauptziel von auf Regression basierenden Aufgaben besteht darin, Ausgabekennzeichnungen oder Antworten, die weiterhin numerische Werte sind, für die angegebenen Eingabedaten vorherzusagen. Die Ausgabe basiert auf dem, was das Modell in der Trainingsphase gelernt hat. Grundsätzlich verwenden Regressionsmodelle die Eingabedatenmerkmale (unabhängige Variablen) und ihre entsprechenden kontinuierlichen numerischen Ausgabewerte (abhängige oder Ergebnisvariablen), um die spezifische Assoziation zwischen Eingaben und entsprechenden Ausgaben zu lernen.

Arten von Regressionsmodellen

Es gibt zwei Arten von Regressionsmodellen:

Simple regression model - Dies ist das grundlegendste Regressionsmodell, bei dem Vorhersagen aus einem einzelnen, univariaten Merkmal der Daten gebildet werden.

Multiple regression model - Wie der Name schon sagt, werden in diesem Regressionsmodell die Vorhersagen aus mehreren Merkmalen der Daten gebildet.

Erstellen eines Regressors in Python

Das Regressor-Modell in Python kann genauso wie der Klassifikator erstellt werden. Scikit-learn, eine Python-Bibliothek für maschinelles Lernen, kann auch zum Erstellen eines Regressors in Python verwendet werden.

Im folgenden Beispiel erstellen wir ein grundlegendes Regressionsmodell, das eine Linie an die Daten anpasst, dh einen linearen Regressor. Die erforderlichen Schritte zum Erstellen eines Regressors in Python sind wie folgt:

Schritt 1: Importieren des erforderlichen Python-Pakets

Um einen Regressor mit scikit-learn zu erstellen, müssen wir ihn zusammen mit anderen erforderlichen Paketen importieren. Wir können das mit folgendem Skript importieren -

import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt

Schritt 2: Datensatz importieren

Nach dem Import des erforderlichen Pakets benötigen wir einen Datensatz, um ein Regressionsvorhersagemodell zu erstellen. Wir können es aus dem sklearn-Dataset importieren oder ein anderes gemäß unseren Anforderungen verwenden. Wir werden unsere gespeicherten Eingabedaten verwenden. Wir können es mit Hilfe des folgenden Skripts importieren -

input = r'C:\linear.txt'

Als nächstes müssen wir diese Daten laden. Wir verwenden die Funktion np.loadtxt, um sie zu laden.

input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]

Schritt 3: Organisieren von Daten in Trainings- und Testsätzen

Da wir unser Modell daher an unsichtbaren Daten testen müssen, werden wir unseren Datensatz in zwei Teile aufteilen: einen Trainingssatz und einen Testsatz. Der folgende Befehl führt es aus -

training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training

X_train, y_train = X[:training_samples], y[:training_samples]

X_test, y_test = X[training_samples:], y[training_samples:]

Schritt 4: Modellbewertung und -vorhersage

Nachdem wir die Daten in Training und Test unterteilt haben, müssen wir das Modell erstellen. Zu diesem Zweck verwenden wir die LineaRegression () - Funktion von Scikit-learn. Der folgende Befehl erstellt ein lineares Regressorobjekt.

reg_linear= linear_model.LinearRegression()

Als nächstes trainieren Sie dieses Modell mit den Trainingsbeispielen wie folgt:

reg_linear.fit(X_train, y_train)

Jetzt müssen wir endlich die Vorhersage mit den Testdaten machen.

y_test_pred = reg_linear.predict(X_test)

Schritt 5: Plot & Visualisierung

Nach der Vorhersage können wir es mit Hilfe des folgenden Skripts zeichnen und visualisieren -

Example

plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()

Output

In der obigen Ausgabe sehen wir die Regressionslinie zwischen den Datenpunkten.

Schritt 6: Leistungsberechnung

Wir können die Leistung unseres Regressionsmodells auch mithilfe verschiedener Leistungsmetriken wie folgt berechnen:

Example

print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))

Output

Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09

Arten von ML-Regressionsalgorithmen

Der nützlichste und beliebteste ML-Regressionsalgorithmus ist der lineare Regressionsalgorithmus, der weiter in zwei Typen unterteilt ist, nämlich -

  • Einfacher linearer Regressionsalgorithmus

  • Algorithmus für multiple lineare Regression.

Wir werden darüber diskutieren und es im nächsten Kapitel in Python implementieren.

Anwendungen

Die Anwendungen von ML-Regressionsalgorithmen sind wie folgt:

Forecasting or Predictive analysis- Eine der wichtigsten Anwendungen der Regression ist die Vorhersage oder prädiktive Analyse. Zum Beispiel können wir das BIP, die Ölpreise oder in einfachen Worten die quantitativen Daten prognostizieren, die sich im Laufe der Zeit ändern.

Optimization- Mit Hilfe der Regression können wir Geschäftsprozesse optimieren. Beispielsweise kann ein Filialleiter ein statistisches Modell erstellen, um die Peek-Time des Kommens von Kunden zu verstehen.

Error correction- Im Geschäftsleben ist die richtige Entscheidung ebenso wichtig wie die Optimierung des Geschäftsprozesses. Regression kann uns helfen, die richtige Entscheidung zu treffen und die bereits umgesetzte Entscheidung zu korrigieren.

Economics- Es ist das am häufigsten verwendete Werkzeug in der Wirtschaft. Wir können die Regression verwenden, um Angebot, Nachfrage, Verbrauch, Lagerinvestitionen usw. vorherzusagen.

Finance- Ein Finanzunternehmen ist immer daran interessiert, das Risikoportfolio zu minimieren, und möchte wissen, welche Faktoren die Kunden beeinflussen. All dies kann mit Hilfe des Regressionsmodells vorhergesagt werden.