Maison  >  Article  >  développement back-end  >  Techniques d'analyse résiduelle en Python

Techniques d'analyse résiduelle en Python

PHPz
PHPzoriginal
2023-06-10 08:52:432757parcourir

Python est un langage de programmation largement utilisé, et ses puissantes capacités d'analyse et de visualisation de données en font l'un des outils préférés des data scientists et des ingénieurs en apprentissage automatique. Dans ces applications, l'analyse résiduelle est une technique couramment utilisée pour évaluer la précision du modèle et identifier tout biais du modèle. Dans cet article, nous présenterons plusieurs façons d'utiliser les techniques d'analyse résiduelle en Python.

  1. Comprendre les résidus

Avant d'introduire les techniques d'analyse des résidus en Python, comprenons d'abord ce que sont les résidus. En statistique, le résidu est la différence, ou erreur, entre la valeur réelle observée et la valeur prédite. Après avoir construit un modèle, nous pouvons calculer le résidu pour chaque observation, ce qui nous aide à évaluer si le modèle peut prédire avec précision les résultats futurs.

En Python, nous pouvons utiliser des bibliothèques telles que Pandas et NumPy pour calculer les résidus. Reportez-vous au code suivant :

import pandas as pd
import numpy as np

# 创建数据集
y_true = pd.Series([1, 2, 3, 4, 5])
y_pred = pd.Series([1.2, 2.1, 2.8, 3.7, 4.5])

# 计算残差
residuals = y_true - y_pred
print(residuals)

Le code ci-dessus crée deux objets Pandas Series, représentant respectivement la vraie valeur et la valeur prédite. Calculez ensuite leurs résidus par soustraction et imprimez-les.

  1. Nuage de points résiduel

Le nuage de points résiduel est un outil d'analyse résiduelle couramment utilisé pour visualiser la distribution des erreurs d'un modèle. Il montre la relation entre la valeur résiduelle de chaque observation et la valeur prédite pour cette observation.

En Python, nous pouvons créer des nuages ​​de points en utilisant la fonction scatter() de la bibliothèque Matplotlib. Reportez-vous au code suivant :

import matplotlib.pyplot as plt

# 绘制残差散点图
plt.scatter(y_pred, residuals)
plt.title('Residual plot')
plt.ylabel('Residuals')
plt.xlabel('Fitted values')
plt.axhline(y=0, color='r', linestyle='-')
plt.show()

Le code ci-dessus utilise la fonction scatter() pour créer un nuage de points. L'axe horizontal représente les valeurs prédites et l'axe vertical représente les résidus. Parmi eux, la fonction axhline() est utilisée pour tracer une ligne horizontale dans le graphique pour nous aider à juger si la distribution entre les valeurs prédites et les résidus est aléatoire. Si les valeurs résiduelles sont distribuées aléatoirement autour de 0, le modèle peut être considéré comme précis.

  1. Histogramme résiduel

En plus des nuages ​​de points, l'histogramme résiduel est également un outil d'analyse résiduelle efficace pour évaluer si la distribution des erreurs du modèle est normalement distribuée. Dans le cas d'une distribution normale, les valeurs résiduelles doivent être distribuées aléatoirement autour de 0, nous pouvons donc utiliser un histogramme pour montrer la distribution de nos résidus.

En Python, nous pouvons créer des histogrammes en utilisant la fonction hist() de la bibliothèque Matplotlib. Reportez-vous au code suivant :

# 绘制残差直方图
plt.hist(residuals, bins=10)
plt.title('Residuals distribution')
plt.xlabel('Residuals')
plt.ylabel('Frequency')
plt.show()

Le code ci-dessus utilise la fonction hist() pour dessiner un histogramme et définit les étiquettes et les titres pertinents. Ici, nous ajustons la granularité de l'axe horizontal en définissant le paramètre bins pour mieux afficher la distribution des résidus.

  1. Q-Q plot

Q-Q plot est un outil utilisé pour tester si nos résidus sont conformes à la distribution normale. Il est construit en comparant les quantiles entre des échantillons de données et une distribution normale standard. Si les résidus sont normalement distribués, les points de données doivent être sur une ligne droite dans le tracé Q-Q. Si les points de données s'écartent de cette ligne droite, nous pouvons supposer que les résidus ne sont pas normalement distribués.

En Python, nous pouvons utiliser la fonction probplot() dans la bibliothèque Scipy pour dessiner des tracés Q-Q. Reportez-vous au code suivant :

from scipy.stats import probplot

# 绘制Q-Q图
probplot(residuals, dist='norm', plot=plt)
plt.title('Q-Q plot')
plt.show()

Le code ci-dessus utilise la fonction probplot() pour créer un tracé Q-Q et définit le paramètre dist sur « norm », ce qui signifie utiliser la distribution normale standard comme référence de comparaison. Si les points de données s'écartent de la ligne droite, nous pouvons confirmer que les résidus sont normalement distribués en examinant le graphique tracé.

Résumé

Dans cet article, nous avons présenté les techniques d'analyse résiduelle en Python et introduit plusieurs outils majeurs, tels que les nuages ​​de points résiduels, les histogrammes résiduels et les tracés Q-Q. Ces techniques sont couramment utilisées pour évaluer la précision du modèle et identifier les biais du modèle. La maîtrise de ces techniques peut nous aider à mieux comprendre et analyser les données, et à fournir de meilleures suggestions d'améliorations et d'ajustements à nos modèles d'apprentissage automatique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn