Coefficient de détermination R2
Coefficient de détermination R2
En machine learning, le coefficient de détermination R2 est une métrique de performance très utile pour quantifier les performances d'une régression par exemple. Ce coefficient est la somme des carrés des résidus divisée par la variance totale :

Où :
m est la moyenne de la variable y dans toute la base de données (base d’entraînement + base de test)
yi est la valeur réelle de la variable y pour l'observation i
ypred,i est la valeur prédite par le modèle pour l'observation i
RSS est la Residual Sum of Squares, ou somme des carrés des résidus
V est la variance des observations dans toute la base de données
Cas de la régression linéaire
Dans le cas de la régression linéaire, on retrouve l'égalité entre le coefficient de détermination et le carré du coefficient de corrélation :

Où :
cov(X,Y) est la covariance de X et Y (outil mathématique mesurant la dispersion des données)
sigmaX et sigmaY sont les écart-types respectifs des variables X et Y
Interprétation du coefficient de détermination
Le coefficient de détermination R^2 est toujours compris entre 0 et 1. Il indique le pourcentage d’observations de la base de test qui sont expliquées par le modèle. En effet, il divise la somme des erreurs du modèle (ou résidus) au carré, par la variance de la base de données (soit les erreurs statistiques normales liées aux valeurs des attributs de la base de données). L’avantage du coefficient R^2 est qu’il est facile à lire et interpréter.
Le coefficient R^2 indique donc la capacité explicative du modèle. En revanche, il ne détecte pas le sur-apprentissage, car il ne s’intéresse pas à la complexité ou à la possibilité de généralisation du modèle. De plus, le coefficient R^2 est sensible aux valeurs aberrantes, puisqu’il utilise dans son calcul la valeur des erreurs de prédiction, même par rapport aux valeurs aberrantes.
Enfin, un inconvénient du coefficient R^2 est qu’il augmente avec le nombre de variables. Pourtant, un modèle peut être tout aussi bon, voire meilleur qu’un autre, en prenant en compte plus de variables.
Syntaxe Python
Grâce à la bibliothèque Scikit-learn de Python, on peut calculer le coefficient de détermination rapidement avec la syntaxe suivante :

Voir aussi : all(), any(), append(), count(), enumerate(), extend(), filter(), float() format() input(), int(), isdigit(), isinstance(), items(), join(), endswith(), list(), map(), max(), mean(), min(), pop(), range(), len(), startswith(), zip(), type(), get(), symmetric_difference(), keys(), difference()
Numpy : arange(), array(), delete(), hsplit(), hstack(), linspace(), logical_and(), logical_or(), polyfit()
Pandas : concat(), concatenate(), describe(), dict(), drop_duplicates(), dropna(), fillna(), from_dict(), groupby(), head(), iloc, info(), insert(), isin(), melt(), merge(), pivot_table(), read_csv(), read_excel(), rename(), where()
Machine Learning : F1-Score, Précision, Rappel, Normalisation, Courbe d’apprentissage, Les résidus, Régression VS classification, Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Accuracy, L’astuce du noyau, Bases d’apprentissage et de test, Classes linéairement séparables, Apprentissage supervisé VS non-supervisé, Coefficient de détermination R2, Validation croisée
N'hésitez pas à consulter nos formations sur cette page.