2020.8.11 Ich werde den Tabellenkalkulationslink teilen, da die Tabelle schwer zu sehen ist.
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 | 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% |
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 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?P |
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