(Möglicherweise) Python 3 Engineer-Zertifizierungsdatenanalyse-Test, den Sie selbst bestehen können

Verlauf bearbeiten

2020.8.11 Ich werde den Tabellenkalkulationslink teilen, da die Tabelle schwer zu sehen ist.

Einführung

Dieser Artikel fasst Ihre Kenntnisse der Python 3 Engineer-Zertifizierungsdatenanalyseprüfung zusammen, die am 8. Juni 2020 begann. Wir organisieren Informationen aus den Praxisprüfungen von Prime Strategy und verschiedenen Webseiten. Der Begriff "Lehrbuch" im Artikel bezieht sich auf die folgenden Bücher, die die wichtigsten Lehrmaterialien sind.

Hauptunterrichtsmaterial: Veröffentlicht am 19. September 2018 (2.678 Yen inklusive Steuern) "Ein neues Lehrbuch für die Datenanalyse mit Python" (Shoshusha) Autoren: Manabu Terada, Shingo Tsuji, Takanori Suzuki, Shintaro Fukushima (Titel weggelassen)

Fragenbereich und Fragenverteilung

Fragenbereich Anzahl der Fragen Fragenverteilung
1 Rolle des Dateningenieurs 2 5.00%
2 Python und Umgebung
1 Aufbau der Ausführungsumgebung 1 2.50%
2 Python-Grundlagen 3 7.50%
3 Jupyter Notebook 1 2.50%
3 Grundlagen der Mathematik
1 Grundkenntnisse zum Lesen mathematischer Formeln 1 2.50%
2 Lineare Algebra 2 5.00%
3 Grundlegende Analyse 1 2.50%
4 Wahrscheinlichkeit und Statistik 2 5.00%
4 Analysepraxis nach Bibliothek
1 NumPy 6 15.00%
2 pandas 7 17.50%
3 Matplotlib 6 15.00%
4 scikit-learn 8 20%

Lernmethode

  1. Lesen Sie die wichtigsten Unterrichtsmaterialien und kopieren Sie sie
  2. Lösen Sie den Mock-Test von Prime Strategy und sortieren Sie die Punkte aus, die Sie nicht verstehen.
  3. Lösen Sie PyQs "Python 3 Engineer-Zertifizierungsdatenanalyse-Test PyQ Quest-Unterstützung"

Organisieren Sie das Wissen nach den verschiedenen Fragen

Hauptgegenstände Unterelement Überblick Einzelheiten Referenz
2 Python und Umgebung pip Der Befehl pip ist ein Dienstprogramm, das Python-Pakete installiert, die im Python-Paketindex veröffentlicht wurden. Verwenden Sie den Befehl pip install, um das Paket zu installieren.
Über U Option von pip

Ex.)
pip install -U numpy pandas
Der Befehl pip lautet-Durch Hinzufügen der Option U wird die installierte Bibliothek auf die neueste Version aktualisiert.

So installieren Sie die neueste Version explizit:
PEP8 PEP8 ist ein Standardcodierungsstandard. Für dasselbe Modul sind mehrere Importe zulässig. Wenn sich die Module jedoch unterscheiden, tritt ein Zeilenumbruch auf. [Python-Codierungskonvention]Lesen Sie PEP8- Qiita https://qiita.com/simonritchie/items/bb06a7521ae6560738a7
Protokollstufe Es gibt fünf Ebenen der Protokollierung in Python.



1. CRITICAL

2. ERROR

3. WARNING

4. INFO

5. DEBUG
Praktisches Modul Das Pickle-Modul kann Python-Objekte serialisieren, sodass sie in Dateien gelesen und geschrieben werden können. Es gibt boolesche Werte, Zahlen, Zeichenfolgen usw., die ausgewählt werden können.

Das pathlib-Modul ist nützlich für die Arbeit mit Dateipfaden. Platzhalterdateiname in der Glob-Methode(*)Es kann auch mit angegeben werden.
Ravel und Flatten sind Funktionen, die ein Array eindimensional machen. ravel()Gibt Ansichten so weit wie möglich zurück, aber abgeflacht()Gibt immer eine Kopie zurück. umformen()Auch reval()Gibt so viele Ansichten wie möglich zurück. Wenn Sie einer anderen Variablen ein Array zuweisen, bezieht sich die zugewiesene Variable auf das ursprüngliche Array. Wenn Sie es als separates Objekt erstellen möchten, kopieren Sie es()Oder tiefe Kopie()verwenden.

* Ravel und Flatten von Numpy sind Funktionen, die ein Array eindimensional machen. ravel()Gibt Ansichten so weit wie möglich zurück, aber abgeflacht()Gibt immer eine Kopie zurück. umformen()Auch reval()Gibt so viele Ansichten wie möglich zurück.
Daten lesen und schreiben Das Lesen von Daten aus einer Binärdatei gibt einen Dateideskriptor mit der Option b der Methode open zurück und liest()Lesen und schreiben mit()Schreibe mit
Streifenmethode

Ex.)
bird = ' Condor Penguin Duck '

print("befor strip: {}".format(bird))

print("after strip: {}".format(bird.strip()))
Die Leerzeichen an beiden Enden werden entfernt.
Reguläre Ausdrücke

.Jeder einzelne Buchstabe a.c abc, acc, aac

^Der Anfang der Zeile^abc abcdef

Zeilenende abc defabc

Wiederholen Sie 0 oder mehrmals ab a, ab, abb, abbb

+Wiederholen Sie ein oder mehrere Male ab+ ab, abb, abbb

?0 mal oder 1 mal ab? a, ab

{m}Wiederholen Sie m mal a{3} aaa

{m,n}Wiederholen Sie m ~ n mal a{2, 4} aa, aaa, aaaa

[★]★ Beliebiger Charakter[a-c] a, b, c

★★ Beliebig a b a, b
Spezielle Sequenz für reguläre Ausdrücke

\d beliebige Zahl[0-9]

\D Andere als eine beliebige Zahl[^0-9]

\s ein beliebiges weißes Zeichen[\t\n\r\f\v]

\S Jedes nicht leere Zeichen[^\t\n\r\f\v]

\w Beliebige alphanumerische Zeichen[a-xA-Z0-9_]

\W Nicht alphanumerisch[\a-xA-Z0-9_]

\Ein Anfang der Zeichenfolge^

\Ende der Z-Saite$
Reguläre Ausdrücke

find() / findall()→ Gibt eine Liste einer oder aller übereinstimmenden Teilzeichenfolgen zurück
match()→ Überprüfen Sie, ob der Anfang der Zeichenfolge übereinstimmt
fullmatch()→ Überprüfen Sie, ob die gesamte Zeichenfolge übereinstimmt
search()→ Überprüfen Sie, ob es nicht nur am Anfang übereinstimmt. Wird verwendet, wenn Sie einen Teil einer Zeichenfolge extrahieren möchten
replace()→ Ersetzen Sie die Zeichenfolge
sub()→ Ersetzen Sie die Zeichenfolge。置換された文字列が返される。
subn()→ Ersetzte Zeichenfolge (Unter)()(Entspricht dem Rückgabewert von) und der Anzahl der ersetzten Teile (die Anzahl, die dem Muster entspricht) werden zurückgegeben.


match/Die Suche gibt ein Übereinstimmungsobjekt zurück. Die folgenden Methoden können für Übereinstimmungsobjekte verwendet werden.

Holen Sie sich die passende Position: start(), end(), span()
Holen Sie sich die passende Zeichenfolge: group()
Holen Sie sich die Zeichenfolge für jede Gruppe: groups()

* Klammert den Teil des Musters für reguläre Ausdrücke in die Zeichenfolge()Wenn Sie es einschließen, wird dieser Teil als Gruppe behandelt. Zu diesem Zeitpunkt Gruppen()Sie können die Zeichenkette des Teils, der zu jeder Gruppe passt, als Taple abrufen.

sub ist Klammern()Bei der Gruppierung mit kann die übereinstimmende Zeichenfolge in der ersetzten Zeichenfolge verwendet werden.
Standardmäßig\1, \2, \3...Aber jeder ist der erste(), Der Zweite(), Dritte()...Entspricht dem passenden Teil. Wenn es sich um eine normale Zeichenfolge handelt, handelt es sich nicht um eine Rohzeichenfolge'\1'mögen\Beachten Sie, dass Sie entkommen müssen. Vom Muster des regulären Ausdrucks()Am Anfang von?PUnd gib der Gruppe einen Namen,\Keine Zahl wie 1\gmögen名前を使って指定できる。
re.search("category/(.+?)/", "https://foo.com/category/books/murakami").group(1)
#Erhaltene Zeichenkette:'books'

>>> text = "123456abcedf789ghi"
>>> matchobj = re.search(r'[a-z]+', text)
>>> if matchobj:
... print(matchobj.group())
... print(matchobj.start())
... print(matchobj.end())
... print(matchobj.span())
※re.Beachten Sie, dass bei der Suche nur Informationen für die erste übereinstimmende Zeichenfolge abgerufen werden können.

Ersetzen ist die Zielzeichenfolge.replace(Zu ersetzende Zeichenfolge,Zu ersetzende Zeichenfolge[,Anzahl der Ersetzungen])Grammatik.
>>> raw_abc = r"aaaaabbbbbccccc"
>>> rep_raw_abc = raw_abc.replace("c", "C")
>>> print("Vorher ändern:",raw_abc, "Nach der veränderung:",rep_raw_abc)
Vorher ändern: aaaaabbbbbccccc Nach der veränderung: aaaaabbbbbCCCCC

re.sub(Reguläre Ausdrücke,Zu ersetzende Zeichenfolge, Zu ersetzende Zeichenfolge [,Anzahl der Ersetzungen])Beachten Sie den Unterschied zwischen und ersetzen.
【Python】とっても便利なReguläre Ausdrücke! - Qiita https://qiita.com/hiroyuki_mrp/items/29e87bf5fe46de62983c
Flag für reguläre Ausdrücke

Beschränkt auf ASCII-Zeichen: re.ASCII
Groß- und Kleinschreibung wird nicht berücksichtigt: re.IGNORECASE
Passen Sie den Anfang und das Ende jeder Zeile an: re.MULTILINE
Geben Sie mehrere Flags an
Muster kompilieren

p = re.compile(r'([a-z]+)@([a-z]+).com')
m = p.match(s)
result = p.sub('new-address', s)
Virtuelle Umgebung venv kann die zu installierenden Module für jede virtuelle Umgebung isolieren. Verwenden Sie pyenv oder Anaconda, um den Python-Interpreter zu wechseln. https://tinyurl.com/y4ypsz9r
%, %%Ist ein magischer Befehl.
!Führen Sie den OS-Shell-Befehl mit aus.
Shit +Dokumentstring mit Tab anzeigen.
Verwendung des magischen Befehls (magische Funktion) von Jupyter Notebook https://miyukimedaka.com/2019/07/28/blog-0083-jupyter-notebook-magic-command-explanation/
Häufig verwendete magische Befehle

%Zeit: Misst die Ausführungszeit des folgenden Codes und zeigt das Ergebnis an.
%timeit: Misst die Ausführungszeit des folgenden Codes mehrmals und zeigt das schnellste Ergebnis und den schnellsten Durchschnitt an.
%env: Sie können Umgebungsvariablen abrufen und festlegen.
%who: Zeigt die aktuell deklarierten Variablen an.
%whos: Zeigt die aktuell deklarierten Variablen, ihre Typen und ihren Inhalt an.
%pwd: Zeigt das aktuelle Verzeichnis an.
%Verlauf: Zeigt eine Liste der Ausführungsverläufe von Codezellen an.
%ls: Zeigt eine Liste der Dateien im aktuellen Verzeichnis an.
%matplotlib inline: Wenn Sie ein Diagramm mit Pyplot usw. zeichnen, wird ein weiteres Fenster geöffnet und das Ergebnis dort angezeigt. Wenn Sie diesen magischen Befehl verwenden, wird das Diagramm im Notizbuch angezeigt.

%%timeit:%Wenden Sie die Timeit-Funktionalität auf den gesamten Code in der Zelle an.

%%html, %%HTML: Ermöglicht das Schreiben und Ausführen von HTML-Code.
Jupyter Notebook-Speicherformat Notebook-Format(.ipynb)Ist eine JSON-Datei
3 Grundlagen der Mathematik Warteschlange "Austauschgesetz: ×", "Kopplungsgesetz: ○", "Verteilungsgesetz: ○"

Das Umtauschgesetz gilt nicht immer (beachten Sie, dass einige dies tun).

1 Zeile / 1 Spalte ist ein Vektor.

Wenn die Anzahl der Spalten in der Matrix und die Größe des Vektors gleich sind, können diese Multiplikationen definiert werden und das Ergebnis ist ein Vektor mit der gleichen Größe wie die Anzahl der Zeilen in der ursprünglichen Matrix.
Normales Protokoll und natürliches Protokoll Ein allgemeines Protokoll ist ein Protokoll mit einer Basis von 10. Der natürliche Logarithmus basiert auf e.
Euklidische Entfernung direkte Entfernung
Manhattan Entfernung Zick-Zack-Abstand (abgeleitet von Manhattans Gitter)
Funktion F.(x)Differenziere f(x)Wenn F die primitive Funktion von f und f die Ableitung von F genannt wird.
Integration Ein Integral, dessen Integrationsbereich nicht definiert ist, wird als unbestimmtes Integral bezeichnet. Die unbestimmte Integration enthält normalerweise die Integrationskonstante "C", da sie 0 wird, wenn eine beliebige Konstante differenziert wird.
Differenzierung und Integration Differenzierung kann als Steigung und Integration als Fläche betrachtet werden. Bei der Datenanalyse und beim maschinellen Lernen wird der Punkt, an dem die Steigung der Funktion 0 ist, als nützliche Information verwendet.
Teilweise Differenzierung Die Differenzierung einer multivariaten Funktion mit zwei oder mehr Variablen wird als partielle Differenzierung bezeichnet. Bei der partiellen Differenzierung muss angegeben werden, welche Variable zur Differenzierung verwendet wurde.
Etabliert Der erwartete Wert von 12-seitigen Würfeln beträgt 6.Fünf. Für stochastische Variablen diskrete → stochastische Massenfunktion, kontinuierliche → stochastische Dichtefunktion
0. Stock! 0!=Beachten Sie, dass es 1 ist. Denken Sie auch daran, dass der Logarithmus von 1 0 ist.
Sünde und cos sin/cos werden als Sinus bzw. Cosinus bezeichnet. tan ist eine direkte Verbindung.
4 Analysepraxis nach Bibliothek Numpy dtype-Attribut Sie können den Datentyp des Elements von ndarray überprüfen.
Bequemer Weg, um ndarray zu erzeugen

# -0 von 5 bis 5.Definieren Sie ein Array von 1-Schritt-Zahlen
x = np.arange(-5, 5, 0.1)

#Erzeugt eine Zeichenfolge mit gleichen Unterschieden von 1 bis 10 für die Anzahl der durch num angegebenen Elemente
np.linspace(1, 10)
np.linspace(start, stop, num=50, endpoint=True)Erstellt mit der Grammatik von. num gibt die Anzahl der Elemente an. num ist standardmäßig 50.
np.zufälliges Modul Beachten Sie, dass np den für stop angegebenen Wert im Vergleich zum Standardmodul nicht enthält.


random.random() / np.random.rand(size)Erzeugt eine Zufallszahl von 0 bis 1.

import numpy as np
import random

print(random.random())
# 0.9733563537374995

print(np.random.rand(3))
# [ 0.69962497 0.61950126 0.7944733 ]

print(np.random.rand(2, 3))
# [[ 0.29315148 0.06560949 0.56110618]
# [ 0.62784039 0.19218867 0.07087768]]

np.random.randn(size)Ist ein Zufallszahlengenerator, der einer Standardnormalverteilung folgt.
print(np.random.randn(3, 3)) #3x3-Array mit Standardnormalverteilung
# [[-0.52434526 0.16597271 -2.22295048]
# [ 0.46995083 -0.64576356 -2.73155503]
# [ 1.04575168 0.05712791 -0.46522963]]

Wenn Sie Zufallszahlen generieren möchten, die einer Normalverteilung folgen, gehen Sie wie folgt vor.
np.random.normal(mu, sd, 10000)

Beim Generieren einer ganzzahligen Zufallszahl
random.randint(low, high, size)

np.random.randint(1, 10, 2) #Erzeugt zwei ndarrays mit ganzen Zahlen zwischen 1 und weniger als 10.
np.random.randint(1, 10, (2, 3)  #Generieren Sie ein 2-mal-3-ndarray.
np.random.randint(2, size=8) #Wenn hoch weggelassen wird, wird der Wert von niedrig als hoch behandelt.
# array([1, 0, 0, 0, 1, 1, 1, 0])
np.random.randint(1, size=8) #Nur ganze Zahlen kleiner als 1, dh 0.
# array([0, 0, 0, 0, 0, 0, 0, 0])

choich hat folgende abweichungen vom standard modul.
random.choice(seq)Wählen Sie eine aus seq
np.random.choice(a)Wählen Sie mehrere aus a

seq1=[0、1、2、3]

random.choice(seq1) #1 Mal Auswahl

random.choice("hello") #1 Zeichenauswahl aus 5 Zeichen

np.random.choice(seq1, 4) #Anordnung 4-mal mit Duplikation gewählt

np.random.choice([2, 4, 6],2)  #Anordnung zweimal mit Vervielfältigung gewählt

np.random.choice([0, 1], (3, 3)) #0 in Größe 3 × 3 Array,Füllen Sie 1 aus

np.random.choice(5, 2) #np.randint(0, 5, 2)Synonym zu
Verwendung von NumPy (12) Zufällig, zufällig-Remrins Python-Strategie-Tagebuch http://python-remrin.hatenadiary.jp/entry/2017/04/26/233717
Umwandlung in ein eindimensionales Array Mit den Methoden Raise oder Flatten können Sie ein zweidimensionales NumPy-Array in ein eindimensionales konvertieren. Die Ravel-Methode gibt eine Referenz zurück und die Flatten-Methode gibt eine Kopie zurück.
Kopieren und referenzieren

a = np.array([1, 2, 3])
b = a ①
b = a.copy() ②
① ist eine Referenz und ② ist eine Kopie. Beachten Sie, dass das Schneiden der Python-Standardliste eine Kopie übergibt, Numpy-Slices jedoch eine Referenz.
Partitionieren der Matrix

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)
Die vpslit-Funktion zerlegt die Matrix in Zeilenrichtung und die hsplit-Funktion zerlegt die Matrix in Spaltenrichtung.
Informationen zur Anzeige der Druckanweisung

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([7,8,9])
print(a[-1:, [1,2]], b.shape)
[5 6]

a ist a[-1:, [1,2]]Und die letzte Zeile ([4,5,6)[1,2]Also 5,Auszug 6 Beachten Sie, dass b eindimensional ist, da es eine Klammer hat.
np.Anzahl der von arange generierten Elemente x = np.arange(0.0, 1.5, 0.1)Dann Array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4])15 Stück. Wenn das Zentrum 15 ist, ist es das 10-fache, also 150. np.sin(x)Wird nach der Bogengradmethode Bogenmaß verarbeitet.
pandas Datumsarray

dates = pd.date_range(start="2020-01-01", end="2020-12-31")

print(dates)
date_range()Generieren Sie ein Datumsarray mit. Sie können das Start- und Enddatum und die Startzeit mit Start und Ende angeben.
DataFrame Join

Verknüpfen:Verbinden Sie den Inhalt der Daten in einer bestimmten Richtung. pd.concat, DataFrame.append

Beitreten:Verbinden Sie den Inhalt der Daten, indem Sie ihn mit dem Wert eines Schlüssels verknüpfen. pd.merge, DataFrame.join
pd.concat([df1, df2])は縦方向のBeitreten、横方向にBeitretenしたい場合はaxis=1をつける。何も指定しないと完全外部Beitretenになるため、内部Beitretenにしたいならjoin=Befestigen Sie das Innere. beitreten_axes=[df1.index]のようにBeitreten行/列を指定することも可能。

Einfach df1 in vertikaler Richtung.append(df2)としてVerknüpfenすることもできる。df2の箇所をSeriesにすると行追加。ignore_index=Beachten Sie, dass der Index unverändert verknüpft wird, wenn Sie True nicht angeben.

Beitretenはmergeによっておこなう。文法はpd.merge(left, right, on='key', how='inner').. wie ist innerlich/left/right/outerを指定可能。複数のkeyでBeitretenする際はonにリストを渡す。indexをキーとしてBeitretenしたい場合はDataFrame.joinが便利。規定は左外部Beitretenとなるがhowで変更可能(left.join(right, how='inner'))。
Python pandas 図でみる データVerknüpfen / Beitreten処理 - StatsFragments http://sinhrks.hatenablog.com/entry/2015/01/28/073327
read_html() Wenn mehrere Tabellen vorhanden sind, rufen Sie diese als Liste der DataFrames ab
Verarbeitung fehlender Werte fillna()Argumente Methode= 'ffill', method = 'bfill'Sie können verschiedene Werte für das fehlende Element in derselben Spalte speichern. Methode= 'ffill'If, der im Element mit dem kleineren Index gespeicherte Wert, Methode= 'bfill'Wenn, wird der fehlende Wert mit dem im Element gespeicherten Wert mit einem großen Index gefüllt.

data['Age'].fillna(20) #Füllen Sie die fehlenden Werte in der Spalte Alter mit 20 aus

data['Age'].fillna(data['Age'].mean()) #Füllen Sie die fehlenden Werte in der Spalte Alter mit dem Durchschnittswert Alter aus

data['Age'].fillna(data['Age'].median()) #Füllen Sie die fehlenden Werte in der Spalte Alter mit dem Medianwert Alter aus

data['Age'].fillna(data['Age'].mode()) #Füllen Sie die fehlenden Werte in der Spalte Alter mit den häufigsten Werten in Alter aus
Fehlende Wertebehandlung mit Pandas- Qiita https://qiita.com/0NE_shoT_/items/8db6d909e8b48adcb203
Gegenseitige Bekehrung zwischen Numpy und Pandas pandas → numpy-Konvertierung ist das Werteattribut von DataFrame und umgekehrt.DataFrame()Es kann konvertiert werden, indem es als Argument von verwendet wird.
Indexnamen und Spaltennamen werden bei der Konvertierung in numpy nicht beibehalten.
pd.describe() beschreiben ist der Durchschnitt, Standardabweichung, Maximum für jede Spalte/Sie können die minimalen und häufigsten Werte erhalten. Standard ist die Standardabweichung. top ist der häufigste Wert. https://tinyurl.com/y3gn3dz4
Wie benutzt man Groupby und Grouper?

import numpy as np
import pandas as pd
np.random.seed(123)
dates = pd.date_range(start="2017-04-01", periods=365)
df = pd.DataFrame(np.random.randint(1, 31, 365), index=dates, columns=["rand"])
df_year = pd.DataFrame(df.groupby(pd.Grouper(freq='W-SAT')).sum(), columns=["rand"])
Grouper kann flexibel gruppiert werden, indem die Frequenz mit freq angegeben wird.

* In der 5. Zeile wird ein DataFrame erstellt, der das Datum als Index verwendet. Jeder Wert in der Rand-Spalte ist eine zufällige Ganzzahl von 1 bis 30.
Matplotlib MATLAB-Stil und OOP-Stil (objektorientiert) Ersteres hat einen kürzeren Code, den Sie jedoch nicht im Detail angeben können. Grundsätzlich sollte letzteres verwendet werden.

Benutzer müssen keine Figuren oder Achsen vorbereiten, um ein einzelnes Diagramm zu erstellen. Diese Objekte werden automatisch generiert.
Generierung von Zeichnungsobjekten und Nebenplotobjekten

fig, axes = plt.subplots(2)
Wie links gezeigt, können Feigen und Achsen gleichzeitig generiert werden. Feige.add_subplot()Es ist auch möglich, Unterzeichnungen für Feigen mit individuell zu erstellen.

■fig,Bei der individuellen Herstellung der Axt
#Erstellen Sie einen Bereich zum Platzieren von Achsen

fig = plt.figure(facecolor = "lightgray")

#Fügen Sie der Abbildung Achsen hinzu

ax = fig.add_subplot(111)

subplots(2)Dann ist die Nebenhandlung 2 Zeilen, ncol=Wenn Sie 2 mögen, haben Sie zwei Zeilen.
So ordnen Sie mehrere Nebenhandlungen an

ax_1 = fig.add_subplot(221)
ax_2 = fig.add_subplot(222)
ax_3 = fig.add_subplot(223)

#Zeichnen Sie Daten in Achsen in Zeile 3 und Spalte 2

ax[2, 1].plot(x, y)
pyplot.subplots()Sie können mehrere Achsenobjekte gleichzeitig erstellen. Übergeben Sie die Zeilen- und Spaltennummern der Achsen an das erste Argument nrows bzw. das zweite Argument ncols. [Matplotlib]Https im OOP- und MATLAB-Stil://python.atelierkobato.com/matplotlib/
Achseneinstellung

#Achseneinstellungen

ax.grid() #Raster anzeigen

ax.set_title("Axes sample", fontsize=14) #Titel anzeigen

ax.set_xlim([-5, 5]) #x-Achsenbereich

ax.set_ylim([-5, 5]) #Bereich der y-Achse
Formatieren des Figure-Objekts

#Erstellen und Formatieren von Figurenobjekten

fig = plt.figure(



#Größe

figsize = (5, 5),



#Füllfarbe

facecolor = "lightgray",



#Randanzeige

frameon = True,



#Randfarbe

edgecolor = "black",



#Randdicke

linewidth = 4)
#Achsen auf der Figur(Nebenhandlung)Hinzufügen

ax = fig.add_subplot(



#Anzahl der Zeilen und Spalten, Achsnummer

111,



#Füllfarbe

facecolor = "lightgreen",



#X-Achsen- und Y-Achsenbereich

xlim = [-4,4], ylim = [0,40])
Grafik anzeigen

plt.show()
Zeigen Sie das Diagramm mit der show-Methode an.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = [1, 2, 3]
y1 = [10, 2, 3]
y2 = [5, 3, 6]
labels = ['Setosa', 'Versicolor', 'Virginica']
ax.bar(x, y_total, tick_label=labels, label='y1')
ax.bar(x, y2, label='y2')
ax.legend()
plt.show()
Beachten Sie, dass y1 nicht als Variable verwendet wird
import numpy as np

import matplotlib.pyplot as plt

np.random.seed(123)

mu = 100

sigma = 15

x = np.random.normal(mu, sigma, 1000)

fig, ax = plt.subplots()

n, bins, patches = ax.hist(x, bins=25, orientation='horizontal')

for i, num in enumerate(n):

print('{:.2f} - {:.2f} {}'.format(bins[i], bins[i + 1], num))



plt.show()
Der Standardwert für Fächer ist 10. Siehe Lehrbuch P192. Bins als Rückgabewert ist ein Grenzwert und die Anzahl der Bins + 1.

Die Variable mu bedeutet den Durchschnittswert und die Variable Sigma bedeutet die Standardabweichung.
Das Histogramm wird horizontal gezeichnet.
"N", das den Rückgabewert der hist-Methode speichert, bins,Von "Patches" enthält "Bins" die Werte der Bin-Grenzen, und die Anzahl ist 26.
Wenn dieses Skript ausgeführt wird, wird zusätzlich zum Histogramm die Häufigkeitsverteilungstabelle ausgegeben.

Der Teil der print-Anweisung links ist die Anzeige der Häufigkeitsverteilungstabelle.
51.53 - 55.62 2.0

55.62 - 59.70 3.0

59.70 - 63.78 6.0

63.78 - 67.86 7.0

67.86 - 71.94 16.0

71.94 - 76.02 29.0

76.02 - 80.11 37.0
Kreisdiagrammanzeige Siehe Lehrbuch P198. Um das Arschverhältnis aufrechtzuerhalten, ax.axis('equal')Und. autopct kann jeden Wert in% anzeigen. Highlight ist explodieren.

Beispiel: plt.pie(x, labels=label, counterclock=False, startangle=90)Zeichnen Sie im Uhrzeigersinn von direkt oben
https://tinyurl.com/yyl8yml6
Scikit-learn DBSCAN Die DBSCAN-Methode, die zu den unbeaufsichtigten Lernmethoden gehört, ist ein dichtebasierter Clustering-Algorithmus, der sich auf den Abstand zwischen Merkmalsmengenvektoren konzentriert.
Bewertungsskala für die Klassifizierung

Precision(Compliance-Rate)
Recall(Erinnern)
F1 Score
Accuracy(Richtige Antwortrate)
Präzision und Rückruf stehen in einer Kompromissbeziehung. Daher ist es ratsam, auch den F1-Score-Index zu betrachten.

Ein Beispiel für eine häufige Krebsdiagnose ist
Präzision → Betonung, wenn Sie Fehldiagnosen reduzieren möchten
Rückruf → Hervorheben, wenn Sie vermeiden möchten, das richtige Beispiel zu übersehen
Genauigkeit → Allgemeiner Index zur Überprüfung der Genauigkeit der Klassifizierung
Praxis des maschinellen Lernens (überwachtes Lernen: Klassifizierung)- KIKAGAKU https://www.kikagaku.ai/tutorial/basic_of_machine_learning/learn/machine_learning_classification
Bewertungsskala des Regressionsmodells MSE (mittlerer quadratischer Fehler: durchschnittlicher quadratischer Fehler), RMSE (mittlerer quadratischer Fehler: durchschnittlicher quadratischer Fehler), MAE (mittlerer absoluter Fehler: durchschnittlicher absoluter Fehler) sind berühmt. https://tinyurl.com/y2xc9c58
https://tinyurl.com/y5k8gc9a
Bedeutung verschiedener Fehler (RMSE, MAE usw.)-Mathematik gelernt mit konkreten Beispielen https://mathwords.net/rmsemae#:~:text=MAE%EF%BC%88Mean%20Absolute%20Error%EF%BC%89,-%E3%83%BB%E5%AE%9A%E7%BE%A9%E5%BC%8F%E3%81%AF&text=%E3%83%BB%E5%B9%B3%E5%9D%87%E7%B5%B6%E5%AF%BE%E8%AA%A4%E5%B7%AE%E3%81%A8%E3%82%82%E8%A8%80%E3%81%84,%E3%81%A8%E3%81%97%E3%81%A6%E6%89%B1%E3%81%86%E5%82%BE%E5%90%91%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82
Scikit-Datensatz zum Lernen beigefügt

load_iris
load_boston
Iris zeichnet die Länge und Breite von 150 Iris "Gaku" und "Blütenblätter" sowie die Art der Blume auf. Erklärungsvariable 4, Zielvariable 1. Boston ist ein Datensatz, der 14 Merkmale und Immobilienpreise erfasst, einschließlich der Anzahl der Straftaten pro Kopf und der durchschnittlichen Anzahl der Zimmer in einer Residenz nach Regionen am Stadtrand von Boston, USA.
Entscheidungsbaum

Ein Algorithmus zur Regression und Klassifizierung. Es hat den Vorteil, dass es leicht zu interpretieren ist und weniger Vorbehandlung erfordert.
Lehrbuch P235. Informationsgewinn=Unreinheit des Elternknotens-Es wird durch die Summe der Verunreinigungen der untergeordneten Knoten dargestellt. Wenn es positiv ist, sollte es in untergeordnete Knoten unterteilt werden, und wenn es negativ ist, sollte es nicht unterteilt werden. Baumstruktur(Datenstruktur) - Wikipedia https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)#%E7%94%A8%E8%AA%9E
SVM

Zeichnen Sie eine Entscheidungsgrenze, damit der Spielraum maximiert wird. Eine Methode, mit der nicht linear trennbare Daten linear trennbar gemacht werden, wird als Kernel-Trick bezeichnet.
from sklearn.svm import SVC

svc = SVC()

C ist ein Kostenparameter und bedeutet eine Strafe für falsche Vorhersagen. Wenn es zu groß ist, führt dies zu Überlernen. Gamma bestimmt die Komplexität des Modells. Je größer der Wert, desto komplizierter wird er und desto mehr Überlernen tritt auf.
Sigmaid-Funktion

y = 1 / 1 + exp(x)Nimmt die Form von an.(0, 0.5), 0< y <Es wird 1.
Sigmaid ist ein Modell, das eine binäre Klassifizierung durchführt. Im Fall einer Drei-Klassen-Klassifizierung kann dies durch Ausführen einer binären Klassifizierung für die Anzahl der Klassen behandelt werden.
Normalisierung Normalisierung ist Standardisierung mit durchschnittlicher 0-Verteilung 1[StandardScaler]Normalisierung auf maximal 1 und minimal 0[MinMaxScaler]Ist berühmt.
Trennung von Trainingsdaten und Testdaten from sklearn.model_selection import train_test_split
Lineares Modell Das lineare Modell (LinearRegression) ist in eine einzelne Regression mit einer erklärenden Variablen und mehreren multiplen Regressionen unterteilt.
Hauptkomponentenanalyse Dies ist eine Methode zum Komprimieren von Daten auf dieselbe oder eine niedrigere Dimension als die ursprüngliche Dimension, indem nach der Richtung gesucht wird, in der die Dispersion zunimmt.

Hauptkomponentenanalyse ist Scikit-Es kann mit der PCA-Klasse des Depositon-Moduls von learn ausgeführt werden.
Rastersuche

from sklearn.datasets import load_iris

from sklearn.model_selection import GridSearchCV

from sklearn.tree import DecisionTreeClassifier

from sklearn.model_selection import train_test_split

iris = load_iris()

X, y = iris.data, iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123)

clf = DecisionTreeClassifier()

param_grid = {'max_depth': [3, 4, 5]}

cv = GridSearchCV(clf, param_grid=param_grid, cv=10)

cv.fit(X_train, y_train)

y_pred = cv.predict(X_test)
Im Code links kann sich der optimale Wert für die Tiefe des Entscheidungsbaums bei jeder Ausführung ändern. Wenn Sie reproduzierbar sein möchten, gehen Sie wie folgt vor.

clf = DecisionTreeClassifier(random_state=0)
Parametererklärung der Entscheidungsbaumanalyse - S.-Analysis http://data-analysis-stats.jp/2019/01/14/%E6%B1%BA%E5%AE%9A%E6%9C%A8%E5%88%86%E6%9E%90%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E8%A7%A3%E8%AA%AC/
Clustering k-bedeutet ist eine Methode zum ersten zufälligen Zuweisen von Clusterzentren, zum Korrigieren der Clusterzentren während der Berechnung des Abstands zu den einzelnen Daten sowie zum Neuberechnen und Clustering, bis die endgültigen Clusterzentren konvergieren.

Clustering kann grob in splitoptimales Clustering und hierarchisches Clustering unterteilt werden. Geteiltes optimales Clustering ist eine Methode zum Vorbereiten einer Funktion, die die Güte eines Clusters im Voraus misst, und zum Suchen nach Clustering, das den Wert dieser Funktion minimiert. Andererseits ist hierarchisches Clustering eine Methode zum hierarchischen Erstellen von Clustern durch Teilen oder Zusammenführen von Clustern.

Hierarchisches Clustering wird weiter in Aggregattyp und Split-Typ unterteilt. Der Agglomerationstyp ist eine Methode, bei der jeder Datenpunkt als Cluster betrachtet wird und ähnliche Cluster nacheinander agglomeriert werden. Der Split-Typ ist eine Methode, die von dem Zustand ausgeht, in dem der gesamte Datenpunkt als ein Cluster betrachtet wird, und eine Gruppe unterschiedlicher Datenpunkte nacheinander unterteilt.

Der Split-Typ erfordert tendenziell mehr Berechnungen als der Aggregattyp.
https://tinyurl.com/y6cgp24f
https://tinyurl.com/y2df2w4c

Recommended Posts

(Möglicherweise) Python 3 Engineer-Zertifizierungsdatenanalyse-Test, den Sie selbst bestehen können
Die Python Engineer-Zertifizierungsdatenanalyseprüfung bestanden haben
Bestehen und Studieren der Python 3 Engineer-Zertifizierungsgrundprüfung
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
Python3 Engineer Zertifizierungsdatenanalyse Test selbst erstellte Problemerfassung
Python 3 Engineer Zertifizierungsdatenanalyse Prüfung Pre-Exam Learning
Ist die Grundprüfung für die Python 3 Engineer-Zertifizierung wirklich einfach?
Grundprüfung für die Python3-Ingenieurzertifizierung - Ich habe versucht, die Scheinprüfung zu lösen -
Nehmen Sie an der Python3 Engineer-Zertifizierungsgrundprüfung teil
Vorbereitung auf die von Python 3 Engineer zertifizierte Datenanalyseprüfung
Implementieren Sie "Alles was Sie brauchen ist töten" in Python
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
Wie Amateure die Python 3 Engineer Certification Basic-Prüfung bestanden haben
[Test zur Analyse der Zertifizierungsdaten für Python3-Ingenieure] Prüfung / Bestehen der Erfahrung
Eindrücke von der Python 3 Engineer Certification Basic-Prüfung
*
[Qualifikation] Ich habe versucht, Python von Grund auf zu lernen, um die Grundprüfung für die Python3-Ingenieurzertifizierung (Studienausgabe) abzulegen.
Übergeben Sie die OpenCV-Daten der ursprünglichen C ++ - Bibliothek an Python
Ich habe die Zertifizierungsprüfung für Python-Ingenieure bestanden und die Lernmethode freigegeben
[Pfeffer] Übergibt die gesamten JSON-Daten, die durch Python-Anforderung erhalten wurden, an das Tablet.
Ein Memorandum zum Erwerb der Grundprüfung für die Python3-Ingenieurzertifizierung
Datenanalyse, was machen Sie denn?
Ich bin neu in Python. Könnten Sie mir bitte sagen, wo der Fehler liegt?
So studieren Sie die Grundprüfung zur Python 3-Ingenieurzertifizierung durch Python-Anfänger (bestanden im August 2020)
Python C / C ++ - Erweiterung: Übergeben Sie einen Teil der Daten als np.array an Python (Schritt setzen)
Die Mathematik einer Frage zur Aufnahmeprüfung war umständlich, deshalb überließ ich sie schließlich Python
Dies ist die einzige grundlegende Überprüfung von Python ~ 1 ~
Dies ist die einzige grundlegende Überprüfung von Python ~ 2 ~
Programmieranfänger Python3 Ingenieur Zertifizierung Grundprüfungsprotokoll
[Python] Fluss vom Web-Scraping zur Datenanalyse
Dies ist die einzige grundlegende Überprüfung von Python ~ 3 ~
virtualenv Das ist vorerst alles!
Wie ein "Amateur Banker" in einer Woche die Python 3 Engineer Certification Basic Exam bestand