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 à.
Je viens d'une école littéraire privée, donc je ne suis pas bon en mathématiques. J'ai essayé de l'expliquer d'une manière facile à comprendre, même pour ceux qui ne sont pas bons en mathématiques autant que possible.
Des articles similaires ont été publiés pour la régression simple linéaire, la régression logistique et SVM, veuillez donc les lire également. [Apprentissage automatique] Comprendre la régression linéaire simple à partir de scikit-learn et de mathématiques [[Machine learning] Comprendre la régression logistique à partir de scikit-learn et des mathématiques] (https://qiita.com/Hawaii/items/ee2a0687ca451fe213be) [[Machine learning] Comprendre SVM à la fois à partir de scikit-learn et des mathématiques] (https://qiita.com/Hawaii/items/4688a50cffb2140f297d)
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. "
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)
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.
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.
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» **.
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.
Importez les éléments suivants nécessaires pour obtenir le coefficient de corrélation.
import seaborn as sns
Utilisez les données d'Ayame.
df = sns.load_dataset("iris")
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.
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.
Ce qui suit est valable pour le produit interne des vecteurs.
x ・ y= ||x||||y||cosθ
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}
(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.
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.
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.
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