Ich möchte mitteilen, was ich gelernt habe, während ich entsprechende Korrekturen und Ergänzungen vornehme.
Konzentration auf die ** Vorverarbeitung ** von PyCaret. Grundsätzlich geht es nicht um das Modellieren und Stimmen.
Ich schreibe, während ich es tatsächlich verschiebe und den ursprünglichen Quellcode lese. https://github.com/pycaret/pycaret
Es wird davon ausgegangen, dass verschiedene Bibliotheken wie folgt importiert werden.
import pandas as pd
import numpy as np
Eine Bibliothek, die das Training von Datenvorverarbeitungs- und maschinellen Lernmodellen automatisiert und in einer Umgebung mit wenig Code bereitgestellt werden kann. https://pycaret.org/
Die Installation ist ein einzelner Pip-Befehl. Sehr leicht. ..
pip install pycaret
In diesem Artikel finden Sie eine Übersicht und Informationen zum Implementieren einer Reihe von Pipelines. https://qiita.com/tani_AI_Academy/items/62151d7e151024733919
In PyCaret können Sie die Vorverarbeitung angeben, die Sie mit Parametern ausführen möchten. Darüber hinaus bestätigt PyCaret dem Benutzer vor dem Betrieb einige Verarbeitungsinhalte. Der Betriebsablauf ist wie folgt.
Durch Aufrufen von "setup ()" des Pakets, das für jede Aufgabe wie Klassifizierung und Regression vorbereitet wurde, wird die folgende Vorverarbeitung ausgeführt.
** Die Vorverarbeitung, die PyCaret verarbeiten soll, kann angegeben werden, indem sie als Argument für setup ()
** angegeben wird.
Als Argument wird nur "Ziel (Zielvariable)" benötigt.
In der folgenden Erklärung möchte ich die an PyCaret angehängten Daten erfassen und ausführen. Sie können die an PyCaret angehängten Daten auf der Originalseite überprüfen. https://pycaret.org/get-data/
Der Code zum Durchführen der Datenerfassung und Vorverarbeitung lautet wie folgt. Hier wird nur das Argument "Ziel" angegeben. Andere Optionen standardmäßig.
from pycaret.datasets import get_data
dataset = get_data("diamond")
from pycaret.regression import *
setup(dataset, target="Price")
Wenn Sie setup ()
ausführen, leitet ** PyCaret zuerst den Typ (Datentyp) jeder Variablen ab und fordert den Benutzer auf, das Schätzergebnis zu überprüfen und die Verarbeitung fortzusetzen **.
Wenn das Ergebnis der Typschätzung korrekt ist, drücken Sie die Eingabetaste im Bearbeitungsfeld im blauen Rahmen der Abbildung, um den Vorgang fortzusetzen.
Wenn der abgeleitete Typ falsch ist, können Sie den Vorgang unterbrechen, indem Sie "quit" eingeben.
Variablen mit falscher Typschätzung können durch explizite Angabe des Typs in setup ()
aufgelöst werden.
(Einzelheiten finden Sie unter [Inhalt unten beschrieben](Numerische Merkmale, kategoriale Merkmale).)
Wenn die Ausführung von setup ()
abgeschlossen ist, werden die Verarbeitungsinhalte im Datenrahmenformat ausgegeben.
Description | Value | |
---|---|---|
0 | session_id | 3104 |
1 | Transform Target | False |
2 | Transform Target Method | None |
3 | Original Data | (6000, 8) |
4 | Missing Values | False |
5 | Numeric Features | 1 |
6 | Categorical Features | 6 |
7 | Ordinal Features | False |
8 | High Cardinality Features | False |
9 | High Cardinality Method | None |
10 | Sampled Data | (6000, 8) |
11 | Transformed Train Set | (4199, 28) |
12 | Transformed Test Set | (1801, 28) |
13 | Numeric Imputer | mean |
14 | Categorical Imputer | constant |
15 | Normalize | False |
16 | Normalize Method | None |
17 | Transformation | False |
18 | Transformation Method | None |
19 | PCA | False |
20 | PCA Method | None |
21 | PCA Components | None |
22 | Ignore Low Variance | False |
23 | Combine Rare Levels | False |
24 | Rare Level Threshold | None |
25 | Numeric Binning | False |
26 | Remove Outliers | False |
27 | Outliers Threshold | None |
28 | Remove Multicollinearity | False |
29 | Multicollinearity Threshold | None |
30 | Clustering | False |
31 | Clustering Iteration | None |
32 | Polynomial Features | False |
33 | Polynomial Degree | None |
34 | Trignometry Features | False |
35 | Polynomial Threshold | None |
36 | Group Features | False |
37 | Feature Selection | False |
38 | Features Selection Threshold | None |
39 | Feature Interaction | False |
40 | Feature Ratio | False |
41 | Interaction Threshold | None |
In dieser Tabelle können Sie ** die Datengröße, die Anzahl der Features und die Angabe verschiedener Vorverarbeitungen überprüfen **. Standardmäßig sind die meisten Optionen deaktiviert (False oder None).
Wenn Sie im Argument von "setup ()" eine Option angeben, wird das entsprechende Element "True" und ist farbig.
In den folgenden Abschnitten werden wir den Inhalt verschiedener Elemente erläutern.
session_id
Description | Value | |
---|---|---|
0 | session_id | 3104 |
Es ist eine Kennung, wenn PyCaret ausgeführt wird, und es scheint, dass es intern als Startwert für Zufallszahlen verwendet wird. Wenn nicht angegeben, wird es zufällig bestimmt.
Es kann durch das Argument "session_id" von "setup ()" angegeben werden. Geben Sie diesen Wert an, um die Reproduzierbarkeit bei wiederholter Ausführung zu gewährleisten. (Es ist ein Bild in der Nähe von "random_state" in scicit-learn.)
setup(dataset, target="Price", session_id=123)
Original Data
Description | Value | |
---|---|---|
3 | Original Data | (6000, 8) |
Die Größe (Form) der Eingabedaten wird ausgegeben.
Wenn ich es tatsächlich überprüfe, ist es sicherlich die gleiche Größe.
dataset.shape
#Ausführungsergebnis
# (6000, 8)
Missing Values
Description | Value | |
---|---|---|
4 | Missing Values | False |
Ob die Eingabedaten fehlen oder nicht, wird ausgegeben. "False" wird ausgegeben, da die Daten dieses Mal keine Fehler enthalten.
Wenn ein Defekt vorliegt, ist dieser Artikel "True".
Wenn ein Fehler vorliegt, wird der Fehler in ** setup ()
** eingetragen.
Die Spezifikation der Fehlerfüllmethode wird später beschrieben.
Description | Value | |
---|---|---|
5 | Numeric Features | 1 |
6 | Categorical Features | 6 |
Geschätzte Werte für die Anzahl der fortlaufenden Werte und die Anzahl der Merkmale in der Kategorie werden ausgegeben.
Es kann explizit durch die Argumente "numeric_features" und "categoryical_features" von "setup ()" angegeben werden.
setup(dataset, target="Price",
categorical_features=["Cut", "Color", "Clarity", "Polish", "Symmetry", "Report"],
numeric_features=["Carat Weight"])
Wenn im obigen Dialogfeld zur Bestätigung der PyCaret-Typschätzung eine Variable vorhanden ist, deren Typschätzung falsch ist, geben Sie diese explizit mit diesem Argument an. ** ** **
Transformed Train Set、Transformed Test Set
Description | Value | |
---|---|---|
11 | Transformed Train Set | (4199, 28) |
12 | Transformed Test Set | (1801, 28) |
Die Größe jeder Nachteilung wird in die Zug- / Testdaten ausgegeben. Die Teilungsrate von Zug- / Testdaten kann durch das Argument "train_size" von "setup ()" angegeben werden. Der Standardwert ist 0,7.
Die Anzahl der Spalten unterscheidet sich von den Eingabedaten, da die Anzahl der Features nach der Vorverarbeitung angezeigt wird. (Dieses Mal hat sich die Anzahl der Merkmale aufgrund der Vorbehandlung von 7 auf 28 erhöht.)
Sampled Data
Description | Value | |
---|---|---|
10 | Sampled Data | (6000, 8) |
Wenn Daten in `` setup () `abgetastet werden, wird die Anzahl der Daten nach dem Abtasten ausgegeben. ** PyCaret fordert Sie auf, Daten abzutasten und eine Reihe von Vorgängen auszuführen, wenn die Anzahl der Datenzeilen größer als 25.000 ist. ** ** **
Wenn Sie setup ()
für Daten mit mehr als 25.000 Zeilen ausführen, wird das Dialogfeld zur Bestätigung der Stichprobenausführung angezeigt, nachdem das Dialogfeld zur Bestätigung der Typschätzung ausgeführt wurde.
Geben Sie beim Abtasten den Prozentsatz der abzutastenden Daten in das Bearbeitungsfeld im blauen Rahmen ein.
Wenn Sie die gesamte Anzahl von Zeilen ohne Abtastung verwenden möchten, lassen Sie diese leer und drücken Sie die Eingabetaste.
(Für Regressionsaufgaben)
(Für Klassifizierungsaufgaben)
Die hier gezeichnete Grafik zeigt einen Hinweis auf die Verschlechterung der Genauigkeit aufgrund der Probenahme.
Das für dieses Diagramm verwendete Modell kann im Argument "sample_estimator" von "setup ()" angegeben werden. Der Code zum Angeben von RandomForestRegressor befindet sich beispielsweise unten.
from sklearn.ensemble import RandomForestRegressor
traffic = get_data("traffic")
setup(traffic, target="traffic_volume", sample_estimator=RandomForestRegressor())
Sie können diese Funktion auch deaktivieren, indem Sie das Argument "Sampling" von "setup ()" angeben. (Es wird nicht bestätigt, ob die Probenahme ausgeführt wird oder nicht, und die Verarbeitung wird unter Verwendung aller Daten fortgesetzt.)
Bei anderen Elementen handelt es sich um Informationen darüber, ob die Datenbereinigung und die Verarbeitung der Merkmalsmengenkonvertierung ausgeführt werden, und um die Methode. Im nächsten Kapitel werden die entsprechenden Prozesse erläutert.
Wir werden den Verarbeitungsinhalt und die Spezifikationsmethode berücksichtigen.
Die vorverarbeiteten Daten und die Verarbeitungspipeline werden zurückgegeben. Es scheint, dass es von der Art der Aufgabe abhängt, die Sie lösen möchten.
regression
X, y, X_train, X_test, y_train, y_test, seed, prep_pipe, target_inverse_transformer, experiment__ \
= setup(dataset, target="Price")
classification
from pycaret.classification import *
dataset = get_data('credit')
X, y, X_train, X_test, y_train, y_test, seed, prep_pipe, experiment__ \
= setup(dataset, target = 'default')
Der Rückgabewert unterscheidet sich geringfügig zwischen Regression und Klassifizierung. ** Die Daten nach der Vorverarbeitung werden an X und y zurückgegeben **, sodass Sie die spezifischen Verarbeitungsergebnisse überprüfen können.
Ist es möglich, die Daten nach der Vorverarbeitung durch PyCaret selbst zu verarbeiten und auf PyCaret zurückzusetzen? Ist derzeit unbekannt.
Sie können festlegen, dass die Features bei der Vorverarbeitung und der anschließenden Modellierung ausgeschlossen werden.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
** ID und Datum / Uhrzeit werden bei der Modellierung standardmäßig ausgeschlossen **. Wenn die Datumsspalte nicht als Datum erkannt wird, können Sie sie anscheinend explizit mit dem Argument "date_features" angeben.
Auch wenn die korrekten Spezifikationen bestätigt werden, wird eine automatisch ausgeschlossen, selbst wenn Spalten mit genau denselben Daten vorhanden sind.
Interpoliert die Fehler auf die angegebene Weise.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Derzeit ist es nicht möglich, für jede Spalte anzugeben, und es scheint, dass alle von einer einheitlichen Methode verarbeitet werden.
Die Etikettenkonvertierung erfolgt durch Angabe der Spalte, die Sie als Sequenzdaten definieren möchten.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Geben Sie mit dem folgenden Bild an.
ordinal_features = { 'column_name' : ['low', 'medium', 'high'] }
Geben Sie im Werteteil der Wörterbuchdaten die Werte in aufsteigender Reihenfolge der Auftragsdaten an.
Normalisieren Sie jede Feature-Menge.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
In diesem Artikel finden Sie Informationen zur 'Robust'-Skalierung. https://qiita.com/unhurried/items/7a79d2f3574fb1d0cc27
Wenn der Datensatz Ausreißer enthält, scheint die 'Robust'-Skalierung stark zu sein.
Für andere Skalierungen ist dieser Artikel hilfreich. https://qiita.com/Umaremin/items/fbbbc6df11f78532932d
Im Allgemeinen sind lineare Algorithmen bei Normalisierung tendenziell genauer, dies ist jedoch nicht immer der Fall und erfordert möglicherweise mehrere Experimente.
In der kategorialen Variablen werden die Kategorien, die unter dem angegebenen Schwellenwert liegen, zu einer Kategorie zusammengeführt.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Im Allgemeinen vermeidet dieses Verfahren den Fall, dass eine kategoriale Variable eine große Anzahl von Kategorien aufweist und in eine Dummy-Variable umgewandelt wird, um eine dünn besetzte Matrix zu werden.
Fasst die Merkmalsmenge numerischer Daten zusammen.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Intern ist es ein Image, auf dem sklearn.preprocessing.KBinsDiscretizer ausgeführt wird. (Es scheint, dass ein Algorithmus verwendet wird, der die eindimensionale k-means-Methode verwendet.)
Entfernt Ausreißer aus Zugdaten.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Es scheint, dass Singularwertzerlegung und PCA für die interne Verarbeitung verwendet werden. * Ich verstehe die Details nicht, deshalb würde ich gerne in Zukunft studieren. Entfernen von Multi-Co Entfernt den Merkmalsbetrag, der Multi-Co verursachen kann (multiple Co-Linearität). Sie kann ausgeführt werden, indem Sie dem Parameter setup ()
das folgende Argument geben.
Weitere Informationen zu Marco finden Sie in diesem Artikel. https://qiita.com/ynakayama/items/36b7c1640e6a02ce2e00
Das Clustering wird unter Verwendung jeder Merkmalsmenge durchgeführt, und die Klassenbezeichnung jedes Datensatzes wird als neue Merkmalsmenge hinzugefügt.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Die Anzahl der Cluster scheint unter Verwendung einer Kombination von Calinski Harabasz- und Silhouette-Kriterien bestimmt zu werden.
Für den Calinski Harabasz-Standard und den Silhouette-Standard ist dieser Artikel hilfreich. https://qiita.com/yasaigirai/items/ec3c3aaaab5bc9b930a2
Entfernen Sie Features mit Abweichungen, die statistisch nicht signifikant sind.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Die Datenverteilung hier scheint unter Verwendung des Verhältnisses von eindeutigen Werten (eindeutigen Werten) in allen Stichproben berechnet zu werden. Ist es ein Bild, das für einen Ausschluss in Frage kommt, weil davon ausgegangen wird, dass die Varianz umso geringer ist, je mehr "der gleiche Wert" in einer bestimmten Variablen enthalten ist?
Generiert Interaktionsfunktionen unter Verwendung der angegebenen Parameter.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Wenn die Eingabe beispielsweise zwei Variablen [a, b] ist, wird durch Angabe von polynomial_degree = 2 die Merkmalsmenge [1, a, b, a ^ 2, ab, b ^ 2] generiert.
Darüber hinaus können Sie die Menge der Interaktionsfunktionen weiter angeben. Generiert Interaktionsfunktionen erster Ordnung für alle numerischen Datenfunktionen, einschließlich Dummy-Variablenfunktionen für kategoriale Variablen und Funktionen, die durch polynomial_features und trigonometry_features generiert werden.
Informationen zu Polynomschwelle und Interaktionsschwelle Indikatoren, die mit Schwellenwerten verglichen werden sollen, sind von Bedeutung, basierend auf mehreren Kombinationen wie Zufallsstruktur, AdaBoost und linearer Korrelation.
Erstellen Sie für trigonometry_features buchstäblich Features mit trigonalen Funktionen (sin, cos, tan)? Ist es?
Bitte beachten Sie, dass diese Funktion für Datasets mit einem großen Funktionsbereich möglicherweise ineffizient ist.
Durch Angabe verwandter Merkmale im Datensatz werden darauf basierende statistische Merkmale extrahiert. Eine neue Merkmalsmenge wird generiert, indem die folgenden aggregierten Werte zwischen den angegebenen Merkmalsmengen berechnet werden.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Das Implementierungsimage ist wie folgt.
setup(dataset, target="Price", group_features=[["cal1", "cal2" "cal3"], ["cal4", "cal5"]], group_names=["gr1", "gr2"])
Wählen Sie die Merkmalsmenge anhand mehrerer Bewertungsindizes aus.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Informationen zu feature_selection_threshold Indikatoren, die mit Schwellenwerten verglichen werden sollen, sind von Bedeutung, basierend auf mehreren Kombinationen wie Zufallsstruktur, AdaBoost und linearer Korrelation.
Laut dem ursprünglichen Quellkommentar ist es bei Verwendung von polynomial_features und feature_interaction besser, diesen Parameter mit einem niedrigen Wert zu definieren. Ist es ein Bild, dass die durch Interaktion erzeugte Feature-Menge in diesem Prozess in gewissem Maße eingegrenzt werden sollte?
Durch die Angabe einer Spalte mit hoher Kardinalität werden die Datentypen in der Spalte reduziert und die Kardinalität verringert.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Bei der "Clustering" -Methode wird k-means verwendet, um einen schnellen Überblick über die Quelle der ursprünglichen Familie zu erhalten.
Skaliert den Feature-Betrag gemäß der angegebenen Methode.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Sowohl "Ja-Johnson" als auch "Quantil" scheinen die Daten so zu transformieren, dass sie einer Normalverteilung folgen.
Eine schnelle Überprüfung des Originalcodes zeigt, dass "yoe-johnson" sklearn.preprocessing.PowerTransformer und "quantile" sklearn.preprocessing.QuantileTransformer verwendet.
Im Allgemeinen kann es bei der Modellierung hilfreich sein, die Features einer Normalverteilung näher zu bringen. Gemäß dem ursprünglichen Quellenkommentar ist "Quantil" nicht linear und es sollte beachtet werden, dass es die lineare Korrelation zwischen Variablen, die auf derselben Skala gemessen werden, verzerren kann.
Skaliert die Zielvariable nach der angegebenen Methode.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Während der Modellierung kann es hilfreich sein, die Zielvariable einer Normalverteilung näher zu bringen.
Die Box-Cox-Konvertierung unterliegt der Einschränkung, dass alle Daten positive Werte sind. Wenn die Daten also negative Werte enthalten, scheint sie zwangsweise auf die Yeo-Johnson-Konvertierung umzuschalten.
Wir werden die Dimension des Feature-Betrags reduzieren.
Sie kann ausgeführt werden, indem Sie setup ()
mit dem folgenden Argument versehen.
Im Allgemeinen wird es ausgeführt, um unwichtige Funktionen zu entfernen und Speicher- und CPU-Ressourcen zu sparen.
Dieser Prozess (Dimensionsreduzierung) scheint am Ende der Vorverarbeitungspipeline ausgeführt zu werden. (Die Dimension wird für die Daten reduziert, nachdem die andere Vorverarbeitung abgeschlossen ist.)
Dieser Artikel ist hilfreich für die Analyse der Hauptkomponenten. https://qiita.com/shuva/items/9625bc326e2998f1fa27 https://qiita.com/NoriakiOshita/items/460247bb57c22973a5f0
Für "inkrementell" scheint es eine Methode namens Inkrementelle PCA zu verwenden. Laut der Erklärung von scikit-learn ist es besser, Incremental PCA (IPCA) anstelle von Principal Component Analysis (PCA) zu verwenden, wenn der Zieldatensatz zu groß ist, um in den Speicher zu passen. IPCA verwendet eine Speichermenge, die nicht von der Anzahl der Eingabedaten abhängt, um eine niedrigdimensionale Annäherung der Eingabedaten zu erstellen. https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html
from pycaret.regression import *
X, y, X_train, X_test, y_train, y_test, seed, prep_pipe, target_inverse_transformer, experiment__ \
= setup(dataset, target="Price", session_id=123,
bin_numeric_features = ["Carat Weight"],
create_clusters = True,
polynomial_features = True, feature_interaction = True, feature_ratio = True)
Der Ausführungsinhalt (Auszug), der von "setup ()" ausgegeben wird, ist in der folgenden Abbildung dargestellt.
Bei der Überprüfung der zurückgegebenen vorverarbeiteten Daten wurden 72 Funktionen wie unten gezeigt generiert.
print(X.info())
#Ausgabeergebnis
# <class 'pandas.core.frame.DataFrame'>
# Int64Index: 6000 entries, 0 to 5999
# Data columns (total 72 columns):
# # Column Non-Null Count Dtype
# --- ------ -------------- -----
# 0 Carat Weight_Power2 6000 non-null float64
# 1 Cut_Fair 6000 non-null float64
# 2 Cut_Good 6000 non-null float64
# 3 Cut_Ideal 6000 non-null float64
# 4 Cut_Signature-Ideal 6000 non-null float64
# 5 Cut_Very Good 6000 non-null float64
# 6 Color_D 6000 non-null float64
# 7 Color_E 6000 non-null float64
# 8 Color_F 6000 non-null float64
# 9 Color_G 6000 non-null float64
# 10 Color_H 6000 non-null float64
# 11 Color_I 6000 non-null float64
# 12 Clarity_FL 6000 non-null float64
# 13 Clarity_IF 6000 non-null float64
# 14 Clarity_SI1 6000 non-null float64
# 15 Clarity_VS1 6000 non-null float64
# 16 Clarity_VS2 6000 non-null float64
# 17 Clarity_VVS1 6000 non-null float64
# 18 Clarity_VVS2 6000 non-null float64
# 19 Polish_EX 6000 non-null float64
# 20 Polish_G 6000 non-null float64
# 21 Polish_ID 6000 non-null float64
# 22 Polish_VG 6000 non-null float64
# 23 Symmetry_EX 6000 non-null float64
# 24 Symmetry_G 6000 non-null float64
# 25 Symmetry_ID 6000 non-null float64
# 26 Symmetry_VG 6000 non-null float64
# 27 Report_GIA 6000 non-null float64
# 28 Carat Weight_0.0 6000 non-null float64
# 29 Carat Weight_1.0 6000 non-null float64
# 30 Carat Weight_10.0 6000 non-null float64
# 31 Carat Weight_11.0 6000 non-null float64
# 32 Carat Weight_12.0 6000 non-null float64
# 33 Carat Weight_13.0 6000 non-null float64
# 34 Carat Weight_2.0 6000 non-null float64
# 35 Carat Weight_3.0 6000 non-null float64
# 36 Carat Weight_4.0 6000 non-null float64
# 37 Carat Weight_5.0 6000 non-null float64
# 38 Carat Weight_6.0 6000 non-null float64
# 39 Carat Weight_7.0 6000 non-null float64
# 40 Carat Weight_8.0 6000 non-null float64
# 41 Carat Weight_9.0 6000 non-null float64
# 42 data_cluster_0 6000 non-null float64
# 43 Polish_EX_multiply_Carat Weight_Power2 6000 non-null float64
# 44 Symmetry_EX_multiply_Carat Weight_Power2 6000 non-null float64
# 45 Report_GIA_multiply_Carat Weight_Power2 6000 non-null float64
# 46 Clarity_VVS2_multiply_Carat Weight_Power2 6000 non-null float64
# 47 Clarity_IF_multiply_Carat Weight_Power2 6000 non-null float64
# 48 Clarity_SI1_multiply_Carat Weight_Power2 6000 non-null float64
# 49 Carat Weight_Power2_multiply_data_cluster_0 6000 non-null float64
# 50 Symmetry_EX_multiply_data_cluster_0 6000 non-null float64
# 51 Report_GIA_multiply_data_cluster_0 6000 non-null float64
# 52 Symmetry_VG_multiply_Carat Weight_Power2 6000 non-null float64
# 53 Carat Weight_8.0_multiply_Carat Weight_Power2 6000 non-null float64
# 54 Cut_Signature-Ideal_multiply_Carat Weight_Power2 6000 non-null float64
# 55 data_cluster_0_multiply_Symmetry_EX 6000 non-null float64
# 56 Color_E_multiply_Carat Weight_Power2 6000 non-null float64
# 57 data_cluster_0_multiply_Cut_Ideal 6000 non-null float64
# 58 Carat Weight_Power2_multiply_Polish_EX 6000 non-null float64
# 59 data_cluster_0_multiply_Report_GIA 6000 non-null float64
# 60 Color_F_multiply_Carat Weight_Power2 6000 non-null float64
# 61 Carat Weight_Power2_multiply_Carat Weight_8.0 6000 non-null float64
# 62 Cut_Ideal_multiply_Carat Weight_Power2 6000 non-null float64
# 63 Color_D_multiply_Carat Weight_Power2 6000 non-null float64
# 64 data_cluster_0_multiply_Carat Weight_Power2 6000 non-null float64
# 65 data_cluster_0_multiply_Polish_EX 6000 non-null float64
# 66 Color_I_multiply_Carat Weight_Power2 6000 non-null float64
# 67 Polish_EX_multiply_data_cluster_0 6000 non-null float64
# 68 Color_H_multiply_Carat Weight_Power2 6000 non-null float64
# 69 Carat Weight_Power2_multiply_Report_GIA 6000 non-null float64
# 70 Clarity_VS2_multiply_Carat Weight_Power2 6000 non-null float64
# 71 Carat Weight_Power2_multiply_Symmetry_VG 6000 non-null float64
# dtypes: float64(72)
# memory usage: 3.3 MB
Die zurückgegebene Vorverarbeitungspipeline wird wie folgt überprüft.
print(prep_pipe)
#Ausführungsergebnis
# Pipeline(memory=None,
# steps=[('dtypes',
# DataTypes_Auto_infer(categorical_features=[],
# display_types=True, features_todrop=[],
# ml_usecase='regression',
# numerical_features=[], target='Price',
# time_features=[])),
# ('imputer',
# Simple_Imputer(categorical_strategy='not_available',
# numeric_strategy='mean',
# target_variable=None)),
# ('new_levels1',
# New_Catagorical_Levels_i...
# ('dummy', Dummify(target='Price')),
# ('fix_perfect', Remove_100(target='Price')),
# ('clean_names', Clean_Colum_Names()),
# ('feature_select', Empty()), ('fix_multi', Empty()),
# ('dfs',
# DFS_Classic(interactions=['multiply', 'divide'],
# ml_usecase='regression', random_state=123,
# subclass='binary', target='Price',
# top_features_to_pick_percentage=None)),
# ('pca', Empty())],
# verbose=False)
** PyCaret kann mit einfachem Code verschiedene Datenbereinigungs- und Feature-Konvertierungsverarbeitungen durchführen ** PyCaret kann verschiedene Vorverarbeitungen nur durch Angabe der Parameter beschreiben, und ich hatte das Gefühl, dass dies zu einer erheblichen Zeitersparnis führen würde. Ich dachte auch, dass der Code sauberer und einheitlicher sein würde, was die Lesbarkeit und die Effizienz des Denkens für das Team und mich verbessern würde.
** Das Verständnis der Vorverarbeitung, die mit PyCaret durchgeführt werden kann, führt auch zum Studium verschiedener Techniken ** PyCaret ist relativ einfach herzustellen, selbst für diejenigen, die nicht gut im Codieren sind. Ich dachte, dass es ein gutes Werkzeug für Anfänger sein würde, die bisher beim Codieren gestolpert waren, sich darauf zu konzentrieren, die Theorie zu lernen, während sie sie tatsächlich bewegt. (Ich selbst habe während dieser Forschung viele Techniken gelernt, die ich vorher nicht kannte.)
** Andererseits ist PyCaret (im Moment) nur ein Werkzeug für Effizienz ** PyCaret führt nur die Bereinigung und Verarbeitung der Feature-Mengenumrechnung auf der Grundlage der vom Benutzer eingegebenen Daten durch, und mir wurde klar, dass es immer noch erforderlich ist, Hypothesen, Datenerfassung und Feature-Mengen-Design manuell durchzuführen. Es ist fertig.
Recommended Posts