[PYTHON] [Maschinelles Lernen] Verstehen Sie aus der Mathematik, warum der Korrelationskoeffizient zwischen -1 und 1 liegt.

1. Zweck

Wenn Sie maschinelles Lernen ausprobieren möchten, kann jeder Scicit-Learn usw. verwenden, um es relativ einfach zu implementieren. Um jedoch Ergebnisse bei der Arbeit zu erzielen oder Ihr Niveau zu verbessern Sie können sehen, dass es in der Erklärung von "Ich kenne den Hintergrund nicht, aber ich habe dieses Ergebnis erhalten." Deutlich schwach ist.

Dieses Mal möchte ich über den "Korrelationskoeffizienten" berichten, der häufig in der Vorverarbeitung verwendet wird. Viele Menschen wissen, dass der Korrelationskoeffizient zwischen -1 und 1 liegt, aber können Sie erklären ** "Warum liegt er zwischen -1 und 1"? ** ** **

In diesem Artikel werde ich kurz den Korrelationskoeffizienten in 2, 3 vorstellen. "Da die Theorie gut ist, versuchen Sie zuerst, den Korrelationskoeffizienten mit Python zu visualisieren", 4 und später "Verstehen Sie den Hintergrund aus der Mathematik" 2 Zielt auf.

2. Was ist der Korrelationskoeffizient?

Der Korrelationskoeffizient ist ein Index, der die Stärke der linearen Beziehung zwischen zwei stochastischen Variablen misst und einen Wert von -1 oder mehr und 1 oder weniger annimmt. Quelle: [Wikipedia] (https://ja.wikipedia.org/wiki/%E7%9B%B8%E9%96%A2%E4%BF%82%E6%95%B0)

Grob gesagt: "Wenn der Korrelationskoeffizient positiv ist, ist der Wert einer erklärenden Variablen umso kleiner, je größer der Wert einer erklärenden Variablen ist, und je negativer er ist, desto kleiner ist der Wert einer erklärenden Variablen." Eine erklärende Variable wird kleiner. "

◆ Korrelationskoeffizient und Korrelationsstandard

Dies ist nur eine Anleitung, aber im Allgemeinen sind die folgenden Anleitungen festgelegt. [Quelle] (https://sci-pursuit.com/math/statistics/correlation-coefficient.html)

キャプチャ1.PNG

◆ Hinweise

Es ist leicht zu verwirren, aber beachten Sie, dass nur weil die Korrelation schwach ist, dies nicht bedeutet, dass ** keine Beziehung zwischen den beiden Variablen besteht **. Wie bereits in der Definition des Korrelationskoeffizienten erwähnt, ist der Korrelationskoeffizient ** ein Index, der die Stärke der linearen Beziehung zwischen zwei Variablen ** misst. Wenn also eine andere Beziehung als die lineare besteht, ist die Phase Es kann nicht durch die Anzahl der Beziehungen ** bestimmt werden.

Schauen wir uns ein konkretes Beispiel an. Es scheint, dass die folgenden zwei Variablen eindeutig wie eine quadratische Kurve zusammenhängen. Da der Korrelationskoeffizient dieser beiden Variablen jedoch -0,447 beträgt, wird angenommen, dass die Korrelation relativ schwach ist, wenn nur der Korrelationskoeffizient mechanisch berechnet wird, und obwohl es eine Beziehung zwischen den beiden Variablen zu geben scheint, wird dies übersehen. Es besteht die Möglichkeit, dass es enden wird.

キャプチャ2.PNG

Auf diese Weise ist es wichtig, dass ** "Korrelationskoeffizient nur ein Index zur Messung linearer Beziehungen ist" und "so viel wie möglich zwischen Variablen visualisiert, um die wahren Beziehungen nicht zu übersehen" **. Ich werde.

◆ Wo wird der Korrelationskoeffizient verwendet?

Beim maschinellen Lernen werden Korrelationskoeffizienten hauptsächlich bei der Vorverarbeitung verwendet. Insbesondere wird untersucht, welche erklärende Variable für die Zielvariable verwendet werden soll (= Auswahl der Merkmalsmenge).

Darunter befinden sich hauptsächlich zwei Nutzungsszenen.

** (1) Wählen Sie ein Element aus, das eine hohe Korrelation mit der Zielvariablen aufweist, und wählen Sie es als erklärende Variable aus. ** Natürlich müssen Sie beim Erstellen eines Modells erklärende Variablen auswählen, die sich auf die Zielvariable beziehen. (Selbst wenn Sie eine völlig unabhängige Variable in das Modell einfügen, führt dies zu einer Verringerung der Genauigkeit.) Der Korrelationskoeffizient wird als ein Index dieser "Beziehung" verwendet. Berechnen Sie den Korrelationskoeffizienten und wählen Sie die Variable mit der starken Korrelation als erklärende Variable aus.

** (2) Wenn es eine Variable mit hoher Korrelation zwischen den erklärenden Variablen gibt, löschen Sie eine ** Ich denke, das ist leichter zu verstehen, wenn Sie ein konkretes Beispiel geben. Es ist eine fiktive Umgebung, aber ** Angenommen, Sie möchten ein Modell erstellen, das die technischen Fähigkeiten von Mitarbeitern mit Schuhputzkenntnissen misst **. Angenommen, es gibt viele Kandidaten für erklärende Variablen mit technischen Fähigkeiten als Zielvariable, aber zwei davon sind ** "Dienstjahre" und "Personalausweis" **.

キャプチャ3.PNG

Ich denke, Sie können es irgendwie erwarten, aber je länger der Service, desto kleiner die Personal-ID, weil es ihn schon lange gibt, und je kürzer der Service, desto größer die Personal-ID, weil er kürzlich eingegeben wurde. ** Es besteht definitiv eine starke negative Korrelation. Masu **.

In einem solchen Fall sind die Berechnungskosten hoch, selbst wenn Sie sowohl die Personal-ID als auch die Betriebszugehörigkeit angeben. Dies kann sich zusätzlich auf die Modellkonstruktion auswirken. Löschen Sie daher eine der beiden Variablen aus den erklärenden Variablen.

3. Versuchen Sie, den Korrelationskoeffizienten mit Python zu ermitteln

(1) Import der erforderlichen Bibliotheken

Importieren Sie Folgendes, um den Korrelationskoeffizienten zu erhalten.

import seaborn as sns

(2) Datenaufbereitung

Verwenden Sie die Daten von Ayame.

df = sns.load_dataset("iris")

(3) Anzeige des Korrelationskoeffizienten

Es kann wie unten gezeigt als Heatmap ausgegeben werden.

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

Der Korrelationskoeffizient selbst wird mit df.corr () berechnet und als Wärmekarte verwendet. Auf diese Weise können Sie intuitiv prüfen, ob die Korrelation stark oder schwach ist, anstatt die numerischen Werte einzeln zu betrachten.

キャプチャ4.PNG

4. Verstehen Sie aus der Mathematik, warum der Korrelationskoeffizient einen Wert von -1 bis 1 annimmt.

Nun, es ist endlich das Hauptthema. Bis jetzt hatte ich keinen Zweifel an dem Korrelationskoeffizienten und dachte, "nimm einen Wert von -1 bis 1", aber warum nimmst du einen Wert von -1 bis 1?

Zusammenfassend ist ** der Korrelationskoeffizient gleich cos $ θ $ des Winkels $ θ $, der durch den Abweichungsvektor ** gebildet wird.

Ich möchte das erklären.

(1) Vorkenntnisse

◆ Über cosθ

Das Folgende gilt für das innere Produkt der Vektoren.

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

(2) Korrelationskoeffizientenformel

Der Korrelationskoeffizient ist wie folgt definiert.

Als Bild ist die Kovarianz eine numerische Darstellung der Korrelation zwischen zwei Daten. Da jedoch nicht klar ist, ob der Wert groß oder klein ist, handelt es sich um ein Bild der Division durch die Standardabweichung und der Normalisierung (= Ausrichtung der Einheiten). ..

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

(3) Inneres Produkt von Vektoren

(1) Nach vorherigem Wissen kann die Umwandlung wie folgt erfolgen.

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}}}(* Der Nenner und das Molekül werden durch die Anzahl der Daten geteilt. N)
\end{align}

Diese Gleichung zeigt an, dass die Kovarianz von $ x $ und $ y $ durch ihre jeweiligen Standardabweichungen geteilt wird, wie unten gezeigt.

キャプチャ6.PNG

Infolgedessen war es möglich, auf dieselbe Definition wie die in (2) beschriebene Standardabweichung umzurechnen.

Mit anderen Worten kann gesagt werden, dass der Korrelationskoeffizient zwischen $ x $ und $ y $ gleich $ cos θ $ des Winkels $ θ $ ist, der durch $ x $ und $ y $ gebildet wird. → Und wie im Vorwissen erwähnt, liegt $ cosθ $ im Bereich von -1 bis 1, so dass gesagt werden kann, dass der Korrelationskoeffizient auch im Bereich von -1 bis 1 liegt.

(4) Zusammenfassung

Wie bisher beschrieben, ist die Definition des Korrelationskoeffizienten dieselbe wie der Winkel $ cosθ $, der durch die beiden Variablen gebildet wird, und $ cosθ $ liegt im Bereich von -1 bis 1, so dass der Korrelationskoeffizient ebenfalls -1 bis 1 beträgt. Nehmen Sie die Reichweite von.

5. Zusammenfassung

Wie war es? Meiner Meinung nach "kann ich nicht verstehen, selbst wenn ich von Anfang an eine sehr komplizierte Erklärung gebe, also kann ich nicht weitermachen, daher interessiert mich die Theorie nicht einmal, also werde ich versuchen, zuerst ein Modell für maschinelles Lernen zu erstellen (zu diesem Zweck einen Korrelationskoeffizienten angeben). Ich denke es ist sehr wichtig.

Sobald ich mich daran gewöhnt habe, halte ich es jedoch für sehr wichtig zu verstehen, was der Korrelationskoeffizient aus mathematischer Sicht wirklich bedeutet.

Ich hoffe, es hilft Ihnen, Ihr Verständnis zu vertiefen.

Recommended Posts

[Maschinelles Lernen] Verstehen Sie aus der Mathematik, warum der Korrelationskoeffizient zwischen -1 und 1 liegt.
Notieren Sie die Schritte zum Verständnis des maschinellen Lernens
[Maschinelles Lernen] Unkorrelation aus der Mathematik verstehen
Wie nutzt man maschinelles Lernen für die Arbeit? 01_ Den Zweck des maschinellen Lernens verstehen
Hinweise zum maschinellen Lernen (von Zeit zu Zeit aktualisiert)
Algorithmus für maschinelles Lernen (von der Klassifizierung in zwei Klassen bis zur Klassifizierung in mehreren Klassen)
Versuchen Sie, Code aus 1 mit dem Framework Chainer für maschinelles Lernen (Mnist Edition) zu schreiben.
[Maschinelles Lernen] SVM sowohl aus Scikit-Lernen als auch aus Mathematik verstehen
Python Machine Learning Programming Kapitel 1 bietet Computern die Möglichkeit, aus der Datenzusammenfassung zu lernen
Künstliche Intelligenz, maschinelles Lernen, tiefes Lernen zu implementieren und zu verstehen
Pip die maschinelle Lernbibliothek von einem Ende (Ubuntu)
Einführung in das maschinelle Lernen
Überdenken Sie den Korrelationskoeffizienten
Einführung in das maschinelle Lernen mit Simple Perceptron
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
[Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Maschinelles Lernen] Entscheidungsbäume aus Scikit-Lernen und Mathematik verstehen
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen
[Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
[Maschinelles Lernen] Verständnis der logistischen Regression sowohl durch Scikit-Lernen als auch durch Mathematik
Eine Einführung in das maschinelle Lernen
Verstehe maschinelles Lernen ~ Ridge Regression ~.
Super Einführung in das maschinelle Lernen
[Maschinelles Lernen] Verstehen Sie aus der Mathematik, dass Standardisierung zu einem Durchschnitt von 0 und einer Standardabweichung von 1 führt.
[Maschinelles Lernen] Verstehen der linearen einfachen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Newton-Methode für maschinelles Lernen (von 1 Variablen zu mehreren Variablen)
Vor der Einführung in das maschinelle Lernen. ~ Techniken, die für anderes maschinelles Lernen als maschinelles Lernen erforderlich sind ~
[Maschinelles Lernen] Verstehen der linearen multiplen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Management von Modellen für maschinelles Lernen, um Streitigkeiten mit der Unternehmensseite zu vermeiden
[Hinweis] Websites zu KI / maschinellem Lernen / Python [von Zeit zu Zeit aktualisiert]
Menschen merken sich gelerntes Wissen im Gehirn, wie man gelerntes Wissen im maschinellen Lernen auswendig lernt
(Maschinelles Lernen) Ich habe versucht, den EM-Algorithmus in der gemischten Gaußschen Verteilung sorgfältig mit der Implementierung zu verstehen.
Ich habe versucht, die Lernfunktion im neuronalen Netzwerk sorgfältig zu verstehen, ohne die Bibliothek für maschinelles Lernen zu verwenden (zweite Hälfte).
Wie berechnet man den Autokorrelationskoeffizienten?
Einführung in das maschinelle Lernen Schreiben von Notizen
Warum Super Intelli die Klasse nicht verstehen konnte
Einführung in die Bibliothek für maschinelles Lernen SHOGUN
Sammeln von Daten zum maschinellen Lernen
Ich habe versucht, die Vorhersage-API des maschinellen Lernmodells von WordPress aus aufzurufen
Mit dem Ziel, ein Ingenieur für maschinelles Lernen zu werden, der MOOCs aus Vertriebspositionen verwendet
[Einführung in das maschinelle Lernen] Bis Sie den Beispielcode mit Chainer ausführen
Lernaufzeichnung (4. Tag) #Wie man den absoluten Pfad vom relativen Pfad erhält
Suchen Sie nach technischen Blogs durch maschinelles Lernen mit dem Schwerpunkt "Verständlichkeit"
Lassen Sie uns die kostenlose "Einführung in Python für maschinelles Lernen" bis zum 27. April online stellen
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, die Lernfunktion im neuronalen Netzwerk sorgfältig zu verstehen, ohne die Bibliothek für maschinelles Lernen zu verwenden (erste Hälfte).