[PYTHON] [Apprentissage automatique] Comprenez à partir des mathématiques pourquoi le coefficient de corrélation varie de -1 à 1.

1. Objet

Si vous voulez essayer l'apprentissage automatique, n'importe qui peut utiliser scicit-learn, etc. pour l'implémenter relativement facilement. Cependant, afin d'obtenir des résultats au travail ou d'améliorer votre niveau Vous pouvez voir qu'il est clairement faible dans l'explication de «Je ne connais pas le contexte, mais j'ai obtenu ce résultat».

Cette fois, je voudrais poster sur le "coefficient de corrélation" qui est souvent utilisé dans le prétraitement. Beaucoup de gens savent que le coefficient de corrélation est compris entre -1 et 1, mais pouvez-vous expliquer ** "Pourquoi est-il compris entre -1 et 1"? ** **

Dans cet article, je présenterai brièvement le coefficient de corrélation en 2, 3 "Parce que la théorie est bonne, essayez d'abord de visualiser le coefficient de corrélation avec python", 4 et plus tard "Comprendre le contexte des mathématiques" 2 Vise à.

2. Quel est le coefficient de corrélation?

Le coefficient de corrélation est un indice qui mesure la force de la relation linéaire entre deux variables stochastiques et prend une valeur de -1 ou plus et 1 ou moins. Source: [Wikipedia] (https://ja.wikipedia.org/wiki/%E7%9B%B8%E9%96%A2%E4%BF%82%E6%95%B0)

En gros, «lorsque le coefficient de corrélation est positif, plus la valeur d'une variable explicative est élevée, plus l'autre variable explicative est grande, et lorsqu'elle est négative, plus la valeur d'une variable explicative est petite. Une variable explicative devient plus petite. "

◆ Coefficient de corrélation et norme de corrélation

Ceci n'est qu'un guide, mais en général, les guides suivants sont définis. [La source] (https://sci-pursuit.com/math/statistics/correlation-coefficient.html)

キャプチャ1.PNG

◆ Remarques

Il est facile de se confondre, mais sachez que ce n'est pas parce que la corrélation est faible que ** il n'y a pas de relation entre les deux variables **. Comme mentionné précédemment dans la définition du coefficient de corrélation, le coefficient de corrélation est ** un indice qui mesure la force de la relation linéaire entre deux variables **, donc s'il existe une relation autre que linéaire, la phase Il ne peut pas être déterminé par le nombre de relations **.

Regardons un exemple concret. Il semble que les deux variables suivantes soient clairement liées comme une courbe quadratique. Cependant, comme le coefficient de corrélation de ces deux variables est de -0,447, on considère que la corrélation est relativement faible si seul le coefficient de corrélation est calculé mécaniquement, et bien qu'il semble y avoir une relation entre les deux variables, elle est négligée. Il est possible que cela finisse.

キャプチャ2.PNG

De cette façon, il est important que ** «le coefficient de corrélation soit juste un indice pour mesurer les relations linéaires» et «visualise autant que possible entre les variables afin de ne pas négliger les vraies relations» **. Je vais.

◆ Où utiliser le coefficient de corrélation

Dans l'apprentissage automatique, les coefficients de corrélation sont principalement utilisés dans le prétraitement. Plus spécifiquement, il est utilisé pour examiner la variable explicative à utiliser pour la variable objective (= sélection de la quantité de caractéristiques).

Parmi eux, il y a principalement deux scènes d'utilisation.

** (1) Sélectionnez un élément ayant une forte corrélation avec la variable objective et sélectionnez-le comme variable explicative ** Bien entendu, lors de la création d'un modèle, vous devez sélectionner des variables explicatives liées à la variable objectif. (Même si vous mettez une variable totalement indépendante dans le modèle, cela entraînera une diminution de la précision.) Le coefficient de corrélation est utilisé comme un indice de cette «relation». Calculez le coefficient de corrélation et sélectionnez la variable qui est considérée comme ayant une forte corrélation comme variable explicative.

** (2) S'il existe une variable à forte corrélation entre les variables explicatives, supprimez-en une ** Je pense que c'est plus facile à comprendre si vous donnez un exemple concret. C'est un cadre fictif, mais ** Supposons que vous souhaitiez créer un modèle qui mesure les capacités techniques du personnel possédant une expertise en cirage de chaussures **. Supposons que la capacité technique soit la variable objective et qu'il y ait de nombreux candidats pour les variables explicatives, mais deux d'entre eux sont ** «années de service» et «identification du personnel» **.

キャプチャ3.PNG

Je pense que vous pouvez vous y attendre d'une manière ou d'une autre, mais plus le service est long, plus l'ID du personnel est petit car il existe depuis longtemps, et plus le service est court, plus l'ID du personnel est important car il est entré récemment. ** Il y a certainement une forte corrélation négative. Masu **.

Dans un tel cas, même si vous incluez à la fois l'ID du personnel et les années de service, le coût de calcul sera élevé et il peut avoir un effet supplémentaire sur la construction du modèle, supprimez donc l'un ou l'autre des variables explicatives.

3. Essayez d'obtenir le coefficient de corrélation avec python

(1) Importation des bibliothèques requises

Importez les éléments suivants nécessaires pour obtenir le coefficient de corrélation.

import seaborn as sns

(2) Préparation des données

Utilisez les données d'Ayame.

df = sns.load_dataset("iris")

(3) Affichage du coefficient de corrélation

Il peut être généré sous forme de carte thermique comme indiqué ci-dessous.

sns.heatmap(df.corr(), vmax=1, vmin=-1, center=0,annot=True)

Le coefficient de corrélation lui-même est calculé par df.corr () et utilisé comme carte thermique. En faisant cela, vous pouvez vérifier intuitivement si la corrélation est forte ou faible, au lieu de regarder les valeurs numériques une par une.

キャプチャ4.PNG

4. Comprenez à partir des mathématiques pourquoi le coefficient de corrélation prend une valeur de -1 à 1.

Eh bien, c'est finalement le sujet principal. Jusqu'à présent, je n'avais aucun doute sur le coefficient de corrélation, et je pensais "prendre une valeur de -1 à 1", mais pourquoi prenez-vous une valeur de -1 à 1?

En conclusion, ** le coefficient de corrélation est égal à cos $ θ $ de l'angle $ θ $ formé par le vecteur d'écart **.

Je voudrais expliquer cela.

(1) Connaissances préalables

◆ À propos de cosθ

Ce qui suit est valable pour le produit interne des vecteurs.

x ・ y= ||x||||y||cosθ

(2) Formule du coefficient de corrélation

Le coefficient de corrélation est défini comme suit.

En tant qu'image, la covariance est une représentation numérique de la corrélation entre deux données, mais comme il n'est pas clair si la valeur est grande ou petite, c'est une image de division par l'écart type et de normalisation (= alignement des unités). ..

r_{xy} := \frac{σ_{xy}}{σ_xσ_y}

(3) Produit intérieur des vecteurs

(1) À partir de connaissances antérieures, la conversion peut être effectuée comme suit.

x ・ y= ||x||||y||cosθ\\
\begin{align}
cosθ &= \frac{x  y}{||x||||y||}\\
&= \frac{\frac{x ・ y}{N}}{\frac{||x||}{\sqrt{N}}\frac{||y||}{\sqrt{N}}}(* Le dénominateur et la molécule sont divisés par le nombre de données N)
\end{align}

Cette équation indique que la covariance de $ x $ et $ y $ est divisée par leurs écarts types respectifs, comme indiqué ci-dessous.

キャプチャ6.PNG

En conséquence, il a été possible de passer à la même définition que l'écart type comme décrit dans (2).

En d'autres termes, on peut dire que le coefficient de corrélation entre $ x $ et $ y $ est égal à $ cos θ $ de l'angle $ θ $ formé par $ x $ et $ y $. → Et, comme mentionné dans les connaissances antérieures, $ cosθ $ est compris entre -1 et 1, on peut donc dire que le coefficient de corrélation est également compris entre -1 et 1.

(4) Résumé

Comme décrit jusqu'à présent, la définition du coefficient de corrélation est la même que l'angle $ cosθ $ formé par les deux variables, et $ cosθ $ est compris entre -1 et 1, de sorte que le coefficient de corrélation est également de -1 à 1. Prenez la gamme de.

5. Résumé

Comment était-ce? À mon avis, "je ne peux pas comprendre même si je donne une explication très compliquée depuis le début, donc je ne peux pas avancer, donc je ne me soucie pas de la théorie une fois, alors je vais essayer de construire un modèle pour l'apprentissage automatique en premier (pour cela, donnez un coefficient de corrélation). Je pense que c'est très important.

Cependant, une fois que je m'y suis habitué, je pense qu'il est très important de comprendre ce que signifie réellement le coefficient de corrélation dans un contexte mathématique.

J'espère que cela vous aidera à approfondir votre compréhension.

Recommended Posts

[Apprentissage automatique] Comprenez à partir des mathématiques pourquoi le coefficient de corrélation varie de -1 à 1.
Enregistrez les étapes pour comprendre l'apprentissage automatique
[Apprentissage automatique] Comprendre la décorrélation des mathématiques
Comment utiliser l'apprentissage automatique pour le travail? 01_ Comprendre l'objectif de l'apprentissage automatique
Notes sur l'apprentissage automatique (mises à jour de temps en temps)
Algorithme d'apprentissage automatique (de la classification à 2 classes à la classification à plusieurs classes)
Essayez d'écrire du code à partir de 1 en utilisant le chainer du cadre d'apprentissage automatique (édition mnist)
[Apprentissage automatique] Comprendre la SVM à la fois à partir de scikit-learn et des mathématiques
Programmation Python Machine Learning Chapitre 1 donne aux ordinateurs la possibilité d'apprendre à partir du résumé des données
Intelligence artificielle, machine learning, deep learning pour mettre en œuvre et comprendre
Pip la bibliothèque d'apprentissage automatique à partir d'une extrémité (Ubuntu)
Introduction à l'apprentissage automatique
Repenser le coefficient de corrélation
Introduction à l'apprentissage automatique à partir de Simple Perceptron
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
[Partie 4] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Partie 1] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
[Partie 3] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Apprentissage automatique] Comprendre les arbres de décision de scikit-learn et des mathématiques
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
[Partie 2] Utilisez le Deep Learning pour prévoir la météo à partir d'images météorologiques
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
[Apprentissage automatique] Comprendre la régression logistique à partir de scikit-learn et des mathématiques
Une introduction à l'apprentissage automatique
Comprendre l'apprentissage automatique ~ régression de crête ~.
Super introduction à l'apprentissage automatique
[Apprentissage automatique] Comprenez à partir des mathématiques que la normalisation se traduit par une moyenne de 0 et un écart type de 1.
[Apprentissage automatique] Comprendre la régression linéaire simple à partir de scikit-learn et des mathématiques
Méthode Newton pour l'apprentissage automatique (de 1 variable à plusieurs variables)
Avant l'introduction à l'apprentissage automatique. ~ Technologie requise pour l'apprentissage automatique autre que l'apprentissage automatique ~
[Apprentissage automatique] Comprendre la régression multiple linéaire à partir de scikit-learn et des mathématiques
Gestion des modèles d'apprentissage automatique pour éviter de se quereller avec le côté commercial
[Note] Sites Web relatifs à l'IA / à l'apprentissage automatique / à python [mis à jour de temps en temps]
Les gens mémorisent les connaissances acquises dans le cerveau, comment mémoriser les connaissances acquises dans l'apprentissage automatique
(Apprentissage automatique) J'ai essayé de comprendre attentivement l'algorithme EM dans la distribution gaussienne mixte avec l'implémentation.
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (deuxième moitié)
Comment calculer le coefficient d'autocorrélation
Introduction à la rédaction de notes d'apprentissage automatique
Pourquoi Super Intelli ne pouvait pas comprendre la classe
Présentation de la bibliothèque d'apprentissage automatique SHOGUN
Comment collecter des données d'apprentissage automatique
J'ai essayé d'appeler l'API de prédiction du modèle d'apprentissage automatique de WordPress
Viser à devenir un ingénieur en apprentissage automatique en utilisant des MOOC depuis des postes de vente
[Introduction à l'apprentissage automatique] Jusqu'à ce que vous exécutiez l'exemple de code avec chainer
Fiche d'apprentissage (4e jour) #Comment obtenir le chemin absolu à partir du chemin relatif
Recherche de blogs techniques par machine learning en mettant l'accent sur la "facilité de compréhension"
Prenons la version gratuite "Introduction à Python pour l'apprentissage automatique" en ligne jusqu'au 27/04
(Apprentissage automatique) J'ai essayé de comprendre attentivement la régression linéaire bayésienne avec l'implémentation
J'ai essayé de visualiser le modèle avec la bibliothèque d'apprentissage automatique low-code "PyCaret"
J'ai essayé de comprendre attentivement la fonction d'apprentissage dans le réseau de neurones sans utiliser la bibliothèque d'apprentissage automatique (première moitié)