Das Jupyter-Notebook ist unten erhältlich.
https://gist.github.com/hnishi/544c77e35b98b737bbd004a1a9ac8924
Unten finden Sie ein Beispiel für eine zusammenfassende Statistik
Definiert in.
Primärer Moment um den Ursprung $ \ mu $. Die Summe geteilt durch die Zahl.
Statistiken aus dem zentralen Moment zweiter Ordnung. Repräsentiert die Verbreitung der Distribution.
Verteilung: $ \ sigma ^ 2 = \ mu_2 $ Standardabweichung: $ \ sigma = \ sqrt {\ mu_2} $
Statistiken aus dem zentralen Moment dritter Ordnung. Repräsentiert den Grad der Links-Rechts-Asymmetrie der Verteilung.
Statistiken aus dem 4. zentralen Moment erhalten. Repräsentiert die Schärfe der Verteilungsspitzen (die Breite der Basis).
Es gibt jedoch einige Definitionen, die 3 nicht subtrahieren.
[1]: Der Begriff "* m * nächster zentraler Moment" wird von Kei Takeuchi (Vertreter der Redaktion) verwendet. "Statistikwörterbuch" Toyo Keizai Shinposha, Nach 1989.
Unten * N * Daten in aufsteigender Reihenfolge sortiert Betrachten Sie eine Statistik (Auftragsstatistik) für $ x_1 \ le x_2 \ le \ dots \ le x_N $.
Median, Median
Auch genannt. Daten, die genau in der Mitte der Datengröße liegen
Durchschnitt ohne Maximal- und Minimalwerte. Wenn Sie die Anzahl der Ausschlüsse erhöhen, ist der Endwert der Medianwert. Daher ist der Medianwert einer der beschnittenen Mittelwerte [^ 1].
Wenn die Gruppe durch die Größe des Werts in vier gleiche Teile geteilt wird, wird der Wert zur Grenze. $ x_ {(N + 3) / 4} $ Der erste Quadrant $ x_ {(3N + 1) / 4} $ Wird der dritte Quadrant genannt. $ x_ {(2N + 2) / 4} $ Das heißt, der zweite Quadrant ist der Medianwert.
Der kleinste Wert $ x_1 $ und der größte Wert $ x_N $ in der Grundgesamtheit.
Zur Visualisierung dieser Statistiken wird ein Box-Whisker-Diagramm verwendet.
Der Wert, der durch Addition des Maximal- und Minimalwerts und Division durch 2 erhalten wird, wird als Mittelpunktwert bezeichnet und manchmal als repräsentativer Wert verwendet.
Die Differenz zwischen dem Maximalwert und dem Minimalwert wird als Bereich bezeichnet und manchmal als repräsentativer Wert verwendet. Verwenden Sie R als Symbol.
[^ 1]: Yasuo Nishioka, Mathematik-Tutorial Sanft sprechende Wahrscheinlichkeitsstatistik, Ohm, S.5, p.52013, ISBN 9784274214073
Modus, durchschnittliche Anzahl Auch genannt. Von den Daten der Wert, der die höchste Häufigkeit in der Häufigkeitsverteilung angibt, dh der Wert der Daten, der am häufigsten auftritt.
Unvoreingenommene Streuung $ u ^ 2 $
Die normale Populationsvarianz verwendet die normale Varianz, und die unverzerrte Varianz wird verwendet, um die Populationsvarianz aus der Stichprobe abzuleiten. Die Excel-Funktion var () berechnet die unverzerrte Verteilung.
Im Bereich des maschinellen Lernens wird häufig die oben beschriebene Dispersion anstelle der unverzerrten Dispersion verwendet. (Unabhängig davon, was Sie verwenden, können Sie ähnliche Ergebnisse erzielen und fast die gleiche Interpretation haben.)
Referenz: https://www.heisei-u.ac.jp/ba/fukui/pdf/stattext05.pdf
――Was sind IRIS-Daten?
Daten, die für maschinelles Lernen bekannt sind. IRIS bedeutet die Blume von "Ayame" und wird von der UCI (University of California, Irvine) als Daten für das Studium des maschinellen Lernens und des Data Mining verteilt.
Die Arten von Ayame sind wie folgt.
Diese Daten werden anhand der folgenden Informationen analysiert.
--Sepal Länge
Die Einheit ist cm.
https://carp.cc.it-hiroshima.ac.jp/~tateyama/Lecture/AppEx/LoadCSV.html
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
from sklearn import datasets
iris = datasets.load_iris()
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
iris_df['name'] = iris.target_names[iris.target]
#Sie können die Hauptstatistiken einfach mit Pandas ausgeben.
#Natürlich kann jeder einzeln ausgegeben werden, aber hier wird er weggelassen.
iris_df.describe()
sepal length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | |
---|---|---|---|---|
count | 150.000000 | 150.000000 | 150.000000 | 150.000000 |
mean | 5.843333 | 3.057333 | 3.758000 | 1.199333 |
std | 0.828066 | 0.435866 | 1.765298 | 0.762238 |
min | 4.300000 | 2.000000 | 1.000000 | 0.100000 |
25% | 5.100000 | 2.800000 | 1.600000 | 0.300000 |
50% | 5.800000 | 3.000000 | 4.350000 | 1.300000 |
75% | 6.400000 | 3.300000 | 5.100000 | 1.800000 |
max | 7.900000 | 4.400000 | 6.900000 | 2.500000 |
#Bestätigung der Daten
plt.show(sns.pairplot(data=iris_df, hue='name', vars=iris.feature_names, diag_kind='hist', palette='spring'))
Wenn eine Stichprobe zwei oder mehr Merkmalsmengen hat, Merkmalsmenge 1, $ x ^ {\ left (1 \ right)} $ und Merkmalsmenge 2, $ x ^ {\ left (2 \ right)} Die Kovarianz zwischen $ und wird wie folgt ausgedrückt.
cov(x^{(1)}, x^{(2)}) = \frac{1}{N} \sum_{i = 1}^N (x^{(1)}_{i} - \mu^{(1)}) (x^{(2)}_{i} - \mu^{(2)})
Wenn es eine positive Korrelation zwischen den beiden Merkmalsgrößen gibt, nimmt es einen positiven Wert an, und wenn es eine negative Korrelation gibt, nimmt es einen negativen Wert an. Die Größe des Wertes gibt die Stärke der Korrelation an. Dies ist jedoch nur dann der Fall, wenn die Einheiten (Skalen) der beiden Merkmalsgrößen gleich sind.
Die Kovarianz (Matrix) wird in der Hauptkomponentenanalyse (PCA-Analyse) verwendet, die beim nächsten Mal eingeführt wird (?).
https://ja.wikipedia.org/wiki/%E5%85%B1%E5%88%86%E6%95%A3
Betrachten Sie den folgenden Spaltenvektor. $ X_1, X_2, ..., X_m $ repräsentieren m verschiedene Merkmale.
Wenn die Elemente dieses Vektors stochastische Variablen sind, deren Varianzen endlich sind, wird die Matrix Σ, deren Elemente von ('' i '', '' j '') wie folgt sind, eine verteilte mitverteilte Matrix genannt.
N ist die Anzahl der Proben. Das heißt, eine Matrix, in der diagonale Komponenten dispergiert und andere Komponenten gemeinsam verteilt sind, wird als verteilte Co-Dispersionsmatrix bezeichnet.
Sie können die Kovarianz aller Merkmalspaare sehen.
Die Verteilungs-Co-Verteilungsmatrix jedes Merkmals des Iris-Datensatzes wird unten als Wärmekarte gezeigt. Diagonale Komponenten werden dispergiert und andere Komponenten werden gemeinsam dispergiert. Beispielsweise ist ersichtlich, dass eine positive Korrelation zwischen der Blütenblattlänge und der Kelchblattlänge besteht.
import numpy as np
#Erstellen Sie eine Kovarianzmatrix
cov_mat = np.cov(iris.data.T)
df = pd.DataFrame(cov_mat, index=iris.feature_names, columns=iris.feature_names)
ax = sns.heatmap(df, annot=True, center=0, vmin=-3, vmax=3)
Da der numerische Wert der Kovarianz durch die Größe des ursprünglichen Werts bestimmt wird, ist es schwierig, ihn zu interpretieren, wenn mehrere Variablen mit verschiedenen Einheiten verglichen werden. Selbst wenn Sie beispielsweise die Verteilung der Bevölkerung jeder Stadt und den Verkauf von Ramen-Läden auf kommunaler Basis berechnen, ist es schwierig, die Bedeutung der Zahlen zu verstehen.
Daher ist es bei der Betrachtung der Beziehung üblich, den Korrelationskoeffizienten zu verwenden.
Der Korrelationskoeffizient ist der Wert der Kovarianz geteilt durch das Produkt der Standardabweichungen jeder Variablen. Der Korrelationskoeffizient nimmt einen Wert von -1 bis 1 an. Bei 1 sind die Werte der beiden Variablen perfekt synchronisiert.
$ \ rho $ repräsentiert den Korrelationskoeffizienten und X und Y repräsentieren unterschiedliche Merkmalsgrößen.
Der Korrelationskoeffizient kann als standardisierte Kovarianz bezeichnet werden (die Datenrelevanz anzeigt, ohne von der Einheit beeinflusst zu werden).
Die Gaußsche Verteilung ist die häufigste Wahrscheinlichkeitsdichtefunktion (eine Funktion, deren Integration eine Wahrscheinlichkeit ist).
Der Durchschnitt $ \ mu $ repräsentiert das Zentrum der Verteilung und die Standardabweichung $ \ sigma $ repräsentiert die Breite der Verteilung.
Bei einer Zufallsstichprobe x aus der Normalverteilung N (μ, $ \ sigma ^ 2 $) beträgt die Wahrscheinlichkeit, dass x in dem Bereich enthalten ist, in dem die Abweichung vom Mittelwert μ ± 1σ oder weniger beträgt, 68,27% und ± 2σ oder weniger. Wenn es 95,45% und ± 3σ beträgt, sind es 99,73%.
Die Normalverteilung ist nicht nur die Grundlage für die Idee verschiedener Verteilungen wie der t-Verteilung und der F-Verteilung, sondern wird auch in verschiedenen Situationen wie Hypothesentests und Intervallschätzungen bei der tatsächlichen statistischen Schätzung verwendet.
Referenz:
Unten finden Sie ein Histogramm von Daten, die zufällig gemäß der Gaußschen Verteilung und einer Überlagerung der Gaußschen Verteilung generiert wurden.
mu ist der Durchschnittswert (Verteilungszentrum) Sigma ist die Standardabweichung (Verteilungsbreite)
import numpy as np
#Zufällige Erzeugung nach Gaußscher Verteilung
mu, sigma = 0, 1 # mean and standard deviatin
np.random.seed(1)
s = np.random.normal(mu, sigma, 1000)
import matplotlib.pyplot as plt
#Histogramm erstellen
count, bins, ignored = plt.hist(s, 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
linewidth=2, color='r')
plt.show()
Sie können bestätigen, dass sich die Verteilung ändert, indem Sie die Werte von mu und sigma ändern. Da es sich um eine Wahrscheinlichkeitsdichtefunktion handelt, kann man sich außerdem aus dem Wert auf der vertikalen Achse vorstellen, dass er 1 wird, wenn er über den gesamten Abschnitt auf der horizontalen Achse integriert wird.
Übrigens wird bei der Standardisierung, die durchgeführt wird, um die Skalen der Merkmalsmengen auszurichten, die folgende Verarbeitung durchgeführt.
$ x_ {i_ {std}} $: Standardisierter Funktionsbetrag $ x_i $ $ \ mu $: Durchschnittswert $ \ sigma $: Standardabweichung
Dieser Prozess wandelt den Mittelwert in 0 und die Standardabweichung in 1 um. Mit anderen Worten kann gesagt werden, dass die Verteilung jedes Merkmals so transformiert wird, dass sie einer Gaußschen Verteilung mit einem Zentrum von 0 und einer Verteilungsbreite derselben Skala folgt, wobei eine Normalverteilung angenommen wird.
Diese Methode ist praktischer, da sie weniger von Ausreißern betroffen ist als die Min-Max-Skalierung (häufig als Normalisierung bezeichnet), bei der die Daten auf einen begrenzten Wertebereich skaliert werden. Ich kann sagen.
(Wörter wie Normalisierung und Standardisierung werden in einigen Bereichen häufig recht vage verwendet, und es ist notwendig, je nach Situation auf ihre Bedeutung zu schließen. Außerdem wird die Operation von $ x_i- \ mu $ als mittlere Normalisierung bezeichnet, und die Operation von $ 1 / \ sigma $ wird als Merkmalsskalierung bezeichnet. )
Das Obige ist eine künstlich erzeugte Gaußsche Verteilung, daher ist es natürlich, dass die Verteilung dem Histogramm ähnlich ist.
Jetzt sieht es so aus, als ob die Gaußsche Funktion gut in die natürlichen Daten passt. Schauen wir uns das also anhand des Iris-Datensatzes an.
#Anpassung des Iris-Datensatzes mit der Gaußschen Funktion
import matplotlib.pyplot as plt
for i_column in iris_df.columns:
if i_column == 'name':
continue
print(i_column)
mu = iris_df[i_column].mean()
sigma = iris_df[i_column].std()
#Histogramm erstellen
count, bins, ignored = plt.hist(iris_df[i_column], 30, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
linewidth=2, color='r')
plt.show()
sepal length (cm)
sepal width (cm)
petal length (cm)
petal width (cm)
Es scheint, dass nur die Sepalbreite eine Gaußsche Verteilung hat, andere Merkmale jedoch keine Gaußsche Verteilung. Ausgehend von diesen Ergebnissen scheint die Gaußsche Verteilung bei Betrachtung des gesamten Iris-Datensatzes nicht zur Darstellung dieser Verteilung geeignet zu sein.
Dies liegt vermutlich daran, dass Daten aus mehreren Gruppen (Iristypen) im Datensatz gemischt werden. Zeichnen Sie daher für jedes Etikett (setosa, versicolor, virginica) eine Gaußsche Verteilung.
#Schauen wir uns die Verteilung für jeden Typ an
for i_name in iris_df['name'].unique():
print(i_name)
df_tmp = iris_df[iris_df['name'] == i_name]
print(df_tmp.shape)
for i_column in df_tmp.columns:
if i_column == 'name':
continue
print(i_column)
mu = df_tmp[i_column].mean()
sigma = df_tmp[i_column].std()
#Histogramm erstellen
count, bins, ignored = plt.hist(df_tmp[i_column], 10, density=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
linewidth=2, color='r')
plt.show()
setosa
(50, 5)
sepal length (cm)
sepal width (cm)
petal length (cm)
petal width (cm)
versicolor
(50, 5)
sepal length (cm)
sepal width (cm)
petal length (cm)
petal width (cm)
virginica
(50, 5)
sepal length (cm)
sepal width (cm)
petal length (cm)
petal width (cm)
Da die Datenmenge für jeden Typ gering ist (50), wird die Anzahl der Fächer (Trennzeichen für die Tabellierung) beim Erstellen eines Histogramms ungefähr auf 10 reduziert.
Bei Betrachtung für jeden Typ ist ersichtlich, dass die Verteilung aller Merkmalsgrößen grob durch die Gaußsche Verteilung dargestellt werden kann.
Die Gaußsche Verteilung für jeden Typ und jede Merkmalsmenge wird durch den Mittelwert und die Standardabweichung definiert. Aus der auf diese Weise erhaltenen Gaußschen Verteilung ist es möglich, sie als Klassifikator zu verwenden, da es möglich ist, eine Wahrscheinlichkeit für einen unbekannten Satz von Merkmalsgrößen zu erhalten (ich möchte dies erklären, wenn ich über die Erkennung von Anomalien spreche).
Recommended Posts