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.
Ich komme aus einer privaten Literaturschule, daher bin ich nicht gut in Mathematik. Ich habe versucht, es auf leicht verständliche Weise zu erklären, selbst für diejenigen, die nicht so gut wie möglich in Mathematik sind.
Ähnliche Artikel wurden für lineare einfache Regression, logistische Regression und SVM veröffentlicht. Bitte lesen Sie sie auch. [Maschinelles Lernen] Verstehen der linearen einfachen Regression aus Scikit-Learn und Mathematik Maschinelles Lernen Verständnis der logistischen Regression sowohl durch Scikit-Lernen als auch durch Mathematik (https://qiita.com/Hawaii/items/ee2a0687ca451fe213be) [[Maschinelles Lernen] SVM sowohl aus Scikit-Lernen als auch aus Mathematik verstehen] (https://qiita.com/Hawaii/items/4688a50cffb2140f297d)
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. "
Dies ist nur eine Anleitung, aber im Allgemeinen sind die folgenden Anleitungen festgelegt. [Quelle] (https://sci-pursuit.com/math/statistics/correlation-coefficient.html)
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.
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.
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" **.
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.
Importieren Sie Folgendes, um den Korrelationskoeffizienten zu erhalten.
import seaborn as sns
Verwenden Sie die Daten von Ayame.
df = sns.load_dataset("iris")
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.
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.
Das Folgende gilt für das innere Produkt der Vektoren.
x ・ y= ||x||||y||cosθ
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}
(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.
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.
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.
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