Algorithmes de régression - Présentation

Introduction à la régression

La régression est un autre outil statistique et d'apprentissage automatique important et largement utilisé. L'objectif principal des tâches basées sur la régression est de prédire les étiquettes de sortie ou les réponses qui sont des valeurs numériques continues, pour les données d'entrée données. Le résultat sera basé sur ce que le modèle a appris lors de la phase de formation. Fondamentalement, les modèles de régression utilisent les caractéristiques des données d'entrée (variables indépendantes) et leurs valeurs de sortie numériques continues correspondantes (variables dépendantes ou de résultat) pour apprendre une association spécifique entre les entrées et les sorties correspondantes.

Types de modèles de régression

Les modèles de régression sont des deux types suivants:

Simple regression model - Il s'agit du modèle de régression le plus élémentaire dans lequel les prédictions sont formées à partir d'une seule caractéristique univariée des données.

Multiple regression model - Comme son nom l'indique, dans ce modèle de régression, les prédictions sont formées à partir de multiples caractéristiques des données.

Construire un régresseur en Python

Le modèle de régresseur en Python peut être construit comme nous avons construit le classificateur. Scikit-learn, une bibliothèque Python pour l'apprentissage automatique peut également être utilisée pour créer un régresseur en Python.

Dans l'exemple suivant, nous allons construire un modèle de régression de base qui ajustera une ligne aux données, c'est-à-dire un régresseur linéaire. Les étapes nécessaires pour créer un régresseur en Python sont les suivantes:

Étape 1: importation du package python nécessaire

Pour créer un régresseur à l'aide de scikit-learn, nous devons l'importer avec les autres packages nécessaires. Nous pouvons importer le en utilisant le script suivant -

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

Étape 2: importation du jeu de données

Après avoir importé le package nécessaire, nous avons besoin d'un ensemble de données pour créer un modèle de prédiction de régression. Nous pouvons l'importer à partir du jeu de données sklearn ou en utiliser un autre selon nos besoins. Nous allons utiliser nos données d'entrée enregistrées. Nous pouvons l'importer à l'aide du script suivant -

input = r'C:\linear.txt'

Ensuite, nous devons charger ces données. Nous utilisons la fonction np.loadtxt pour le charger.

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

Étape 3: Organisation des données dans des ensembles de formation et de test

Comme nous devons tester notre modèle sur des données invisibles, nous allons diviser notre ensemble de données en deux parties: un ensemble d'apprentissage et un ensemble de test. La commande suivante l'exécutera -

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:]

Étape 4: Évaluation et prédiction du modèle

Après avoir divisé les données en formation et en tests, nous devons construire le modèle. Nous utiliserons la fonction LineaRegression () de Scikit-learn à cette fin. La commande suivante créera un objet régresseur linéaire.

reg_linear= linear_model.LinearRegression()

Ensuite, entraînez ce modèle avec les exemples d'apprentissage comme suit -

reg_linear.fit(X_train, y_train)

Maintenant, nous devons enfin faire la prédiction avec les données de test.

y_test_pred = reg_linear.predict(X_test)

Étape 5: tracé et visualisation

Après la prédiction, nous pouvons le tracer et le visualiser à l'aide du script suivant -

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

Dans la sortie ci-dessus, nous pouvons voir la ligne de régression entre les points de données.

Étape 6: Calcul des performances

Nous pouvons également calculer les performances de notre modèle de régression à l'aide de diverses mesures de performance comme suit -

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

Types d'algorithmes de régression ML

L'algorithme de régression ML le plus utile et le plus populaire est l'algorithme de régression linéaire qui se divise en deux types à savoir -

  • Algorithme de régression linéaire simple

  • Algorithme de régression linéaire multiple.

Nous en discuterons et l'implémenterons en Python dans le chapitre suivant.

Applications

Les applications des algorithmes de régression ML sont les suivantes -

Forecasting or Predictive analysis- L'une des utilisations importantes de la régression est la prévision ou l'analyse prédictive. Par exemple, nous pouvons prévoir le PIB, les prix du pétrole ou en termes simples les données quantitatives qui changent avec le temps.

Optimization- Nous pouvons optimiser les processus métier à l'aide de la régression. Par exemple, un gérant de magasin peut créer un modèle statistique pour comprendre l'heure de la venue des clients.

Error correction- En affaires, prendre la bonne décision est tout aussi important que l'optimisation du processus métier. La régression peut également nous aider à prendre une décision correcte en corrigeant la décision déjà mise en œuvre.

Economics- C'est l'outil le plus utilisé en économie. Nous pouvons utiliser la régression pour prédire l'offre, la demande, la consommation, l'investissement dans les stocks, etc.

Finance- Une société financière est toujours intéressée par la minimisation du portefeuille de risques et souhaite connaître les facteurs qui affectent les clients. Tout cela peut être prédit à l'aide d'un modèle de régression.