Ich habe den Python Data Analysis Test bestanden und die Punkte zusammengefasst.
Überwachtes Lernen ist eine Lernmethode mit einem Etikett, das die richtige Antwort gibt. Die Zieldaten, die die richtige Bezeichnung haben, werden als "Zielvariable" bezeichnet. Andere Daten als die Zielvariable werden als "erklärende Variable" bezeichnet. Überwachtes Lernen ist eine Lernmethode, die die Zielvariable unter Verwendung von ** erklärenden Variablen ** vorhersagt.
Auf der anderen Seite ist unbeaufsichtigtes Lernen eine Lernmethode, bei der keine korrekten Antwortetiketten verwendet werden. Da es kein korrektes Antwortetikett gibt, bedeutet dies ** eine Lernmethode ohne objektive Variable **.
Die Klassifizierung des überwachten Lernens ** ist im Voraus klar definiert, wie viele Gruppen aufgeteilt werden sollen. Wenn Sie beispielsweise Hunde und Katzen klassifizieren möchten, würden Sie sie in zwei Gruppen einteilen.
Auf der anderen Seite wird Clustering als unbeaufsichtigtes Lernen eingestuft, und es ist nicht klar, wie viele Gruppen es geben wird **. Vielleicht sind es 3 Gruppen, vielleicht 5 Gruppen.
Maschinelles Lernen wird auf diese Weise verarbeitet.
Daten bekommen->Datenverarbeitung->Datenvisualisierung->Algorithmusauswahl->Lernprozess->Genauigkeitsbewertung->Probebetrieb->Ergebnisverwendung (Servicebetrieb)
Maschinelles Lernen benötigt nur ** Daten **.
Die Hauptpakete für die Datenanalyse sind:
Selbst wenn ich einen Fehler mache, benutze ich kein Django. Obwohl SciPy in Nachschlagewerken kaum vertreten ist, handelt es sich um ein Paket zur Datenanalyse.
Der Befehl pip aktualisiert die installierte Bibliothek auf die neueste Version, indem die Option -U hinzugefügt wird. So installieren Sie die neueste Version explizit:
$ pip install -U numpy pandas
Verwenden Sie die "Strip-Methode", um die ** linken und rechten Leerzeichen ** zu entfernen.
in
bird = ' Condor Penguin Duck '
print("befor strip: {}".format(bird))
print("after strip: {}".format(bird.strip()))
out
befor strip: Condor Penguin Duck
after strip: Condor Penguin Duck
Das ** pickle-Modul ** serialisiert Python-Objekte, damit sie in Dateien gelesen und geschrieben werden können.
Wenn Sie Pfade in Python verwenden möchten, verwenden Sie das ** pathlib-Modul **.
Das Jupyter-Notizbuch verfügt über einen Befehl namens ** Magic Command **. Zum Beispiel "%% timeit" und "% timeit". Beides sind Befehle, die das Programm mehrmals ausführen und die Ausführungszeit messen.
% timeit misst die Zeit für eine einzelne Programmzeile. Andererseits misst "%% timeit" die Verarbeitungszeit der gesamten Zelle.
in
%%timeit
x = np.arange(10000)
fig, ax = plt.subplots()
ax.pie(x, shadow=True)
ax.axis('equal')
plt.show()
out
#Die Ausgabe von Zahlen entfällt
12 s ± 418 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
Das Schreiben in Qiita braucht Zeit, deshalb werde ich es kurz vorstellen. Ich denke, es ist eine gute Idee, sich die Grafiken und andere Informationen genauer anzusehen, um die Trends zu erkennen.
Die durch die folgende Formel ausgedrückte Funktion heißt ** logarithmische Funktion **.
f\left( x\right) =\log _{2}x
Es gibt einen ** euklidischen Abstand ** als Methode, um die skalare Größe des Vektors zu ermitteln, dh um den Nomul zu ermitteln.
\left\| x\right\| _{1}=\left| x_{1}\right| +\left| x_{2}\right| +\ldots +\left| x_{n}\right|
Einfach ausgedrückt werden die absoluten Werte jedes Elements des Vektors addiert.
Das Multiplizieren der "m × s" -Matrix mit der "s × n" -Matrix ergibt die "m × n" -Matrix.
Wie die m × s
Matrix und die x × n
Matrix kann sie nur multipliziert werden, wenn die Anzahl der Matrizen übereinstimmt.
Im Gegensatz zur mathematischen Multiplikation ändert sich auch das Ergebnis der Matrixmultiplikation, wenn sich die Reihenfolge ändert.
$ f \ left (x \ right) = e ^ {x} $ ändert sich nicht, auch wenn es ** differenziert ** ist.
f'\left( x\right) =e^{x}
4.1 NumPy
Sie können den ** Elementdatentyp ** des NumPy-Arrays ndarray mit dem Attribut dtype
überprüfen.
Übrigens kann die Python-Typmethode den Typ (ndarray) des Arrays selbst überprüfen.
in
a = np.array([1, 2, 3])
print("ndarray dtype: {}".format(a.dtype))
print("ndarray type: {}".format(type(a)))
out
ndarray dtype: int32
ndarray type: <class 'numpy.ndarray'>
In ndarray ist die Operation "b = a" eine Referenz. (Wenn Sie den Wert von b ändern, ändert sich auch der Wert von ** **) Wenn Sie "b = a.copy ()" ausführen, wird dies als Kopie behandelt. (Ändern Sie den Wert von b ändert nicht den Wert von ** a)
Wenn Sie eine Python-Standardliste in Scheiben schneiden, erhalten Sie eine ** Kopie **. Wenn Sie jedoch das Ergebnis in Numpy schneiden, erhalten Sie eine ** Referenz **.
Wenn Sie verschiedene Kombinationen ausprobieren, erhalten Sie ein besseres Verständnis.
nan
Verwenden Sie np.nan
, um in NumPy nicht numerisch zu deklarieren.
in
a = np.array([1, np.nan, 3])
print(a)
out
[ 1. nan 3.]
Die vpslit-Funktion zerlegt die Matrix in ** Zeilenrichtung ** und die hsplit-Funktion zerlegt die Matrix in ** Spaltenrichtung **.
in
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
first1, second1 = np.vsplit(a, [2])
first2, second2 = np.hsplit(second1, [2])
print(second2)
out
[[9]]
Verwenden Sie die Mittelwertmethode, um den Durchschnittswert der Matrix zu ermitteln.
in
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a.mean()
out
5.0
ndarray wird beim Vergleich durch den Bediener als Wahr / Falsch angezeigt.
in
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a > 4
out
array([[False, False, False],
[False, True, True],
[ True, True, True]])
4.2 Pandas
Verwenden Sie die ** loc-Methode / iloc-Methode **, um Daten durch Angabe von Indizes und Spalten aus DataFrame zu extrahieren.
Die loc-Methode gibt den Index- und Spaltennamen ** Indexname und Spaltenname ** an. Die iloc-Methode gibt Indizes und Spalten nach ** Position oder Bereich ** an.
in
df = pd.DataFrame([[1, 2, 3], [5, 7, 11], [13, 17, 19]])
df.index = ["01", "02", "03"]
df.columns = ["A", "B", "C"]
display(df.loc[["01", "03"], ["A", "C"]])
display(df.iloc[[0, 2], [0, 2]])
Daten werden mit to_xxx
geschrieben und mit to_xxx
gelesen.
Excel, CSV, Pickle usw. werden unterstützt.
in
df.to_excel("FileName.xlsx")
df = pd.read_excel("FineName.xlsx")
Sortieren Sie die Daten mit der Methode sort_values.
** Standardmäßig erfolgt die Sortierung in aufsteigender Reihenfolge. ** ** **
Setzen Sie ascending = False
als Argument, um in absteigender Reihenfolge zu sortieren.
in
df = pd.DataFrame([[1, 2, 3], [5, 7, 11], [13, 17, 19]])
df.index = ["01", "02", "03"]
df.columns = ["A", "B", "C"]
df.sort_values(by="C", ascending=False)
Sie können mit der Methode "get_dummies" in eine One-Hot-Codierung konvertieren. One-Hot-Codierung fügt ** Spalten ** nur für kategoriale Variablentypen hinzu.
Verwenden Sie die data_range-Methode
, um das Datumsarray abzurufen.
Sie können Datumsangaben ** für die Argumente ** Start und Ende ** festlegen.
in
dates = pd.date_range(start="2020-01-01", end="2020-12-31")
print(dates)
out
DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
'2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
'2020-01-09', '2020-01-10',
...
'2020-12-22', '2020-12-23', '2020-12-24', '2020-12-25',
'2020-12-26', '2020-12-27', '2020-12-28', '2020-12-29',
'2020-12-30', '2020-12-31'],
dtype='datetime64[ns]', length=366, freq='D')
4.3 Matplotlib
Geben Sie die Anzahl der Unterdiagramme an, die in das Argument der Unterdiagrammmethode eingefügt werden sollen. ** Wenn es nur eine Zahl gibt, werden zwei Zeilen mit Unterplots platziert, und wenn ncols angegeben ist, werden zwei Spalten mit Unterplots platziert **.
in
fig, axes = plt.subplots(2)
display(plt.show())
in
fig, axes = plt.subplots(ncols=2)
display(plt.show())
Das Streudiagramm kann mit der "Streumethode" gezeichnet werden.
Das Histogramm kann mit der "Hist-Methode" gezeichnet werden. Sie können die Anzahl der Bins ** mit dem Argument ** bins angeben.
Kreisgraphen können mit der "pi-Methode" gezeichnet werden. Standardmäßig wird es von rechts ** gegen den Uhrzeigersinn ** gezeichnet.
Für die Farbe können Sie ** den in HTML, X11 oder CSS4 ** definierten Farbnamen angeben. Schriftstile können auch ** in einem Wörterbuch definiert und gemeinsam oder einzeln angewendet werden **.
4.4 scikit-learn
Der Klassifizierungsmodelldatensatz ist in ** Trainingsdaten ** und ** Testdaten ** unterteilt. Dies liegt daran, dass die ** Generalisierungsfähigkeit ** des Modells bewertet werden muss.
Der Entscheidungsbaum verfügt über eine Funktion, mit der das Modell visualisiert werden kann und der Inhalt leicht zu verstehen ist **. Die Parameter müssen vom Benutzer eingestellt werden. Der Zweck des Entscheidungsbaums besteht darin, den Informationsgewinn zu maximieren oder unrein zu minimieren. (Beide haben die gleiche Bedeutung)
Die Dimensionsreduzierung ist die Aufgabe, die Dimensionen zu reduzieren, ohne die Daten so stark wie möglich zu beschädigen. Beispielsweise können Sie die unwichtigen Y-Daten aus den zweidimensionalen X- und Y-Daten löschen, um sie nur zu eindimensionalen X-Daten zu machen.
Die ROC-Kurve soll vorhersagen, dass alle Daten über der Wahrscheinlichkeit jeder Daten ein positives Beispiel sind, wenn die Daten in absteigender Reihenfolge der Wahrscheinlichkeit angeordnet sind. Wenn sich der AUC-Wert 1 nähert, ist die Stichprobe mit einer relativ hohen Wahrscheinlichkeit tendenziell ein positives Beispiel, und die Stichprobe mit einer relativ niedrigen Wahrscheinlichkeit ist tendenziell ein negatives Beispiel. Mit anderen Worten, AUC kann die Güte zwischen Modellen vergleichen.
Neues Lehrbuch zur Datenanalyse mit Python
Recommended Posts