[PYTHON] Ich habe die Vorbehandlung untersucht, die mit PyCaret durchgeführt werden kann

Ich möchte mitteilen, was ich gelernt habe, während ich entsprechende Korrekturen und Ergänzungen vornehme.

Über dieses Dokument

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

Implementierungsannahmen

Es wird davon ausgegangen, dass verschiedene Bibliotheken wie folgt importiert werden.

import pandas as pd
import numpy as np

Was ist PyCaret?

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

So führen Sie die Vorverarbeitung durch

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.

Rufen Sie die Dateneingabe- / Vorverarbeitungsausführungsfunktion auf

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")

Überprüfen Sie das Schätzergebnis des Typs jeder Variablen

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.

image.png

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).)

Überprüfen Sie die Ausführungszusammenfassung der Vorverarbeitung

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.

Informationen zur Sitzung

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)

Informationen zu Eingabedaten

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.

Numerische Merkmale und kategoriale Merkmale

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. ** ** **

Informationen zur Datenaufteilung von Zug / Test

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.)

Informationen zur Datenerfassung

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) image.png

(Für Klassifizierungsaufgaben) image.png

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.)

(Andere) Methoden zur Datenbereinigung und Verarbeitung der Merkmalsmengenumrechnung

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.

Datenbereinigung und Feature-Konvertierungsprozess

Wir werden den Verarbeitungsinhalt und die Spezifikationsmethode berücksichtigen.

Die Daten nach der Vorverarbeitung werden als Rückgabewert von setup () zurückgegeben.

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.

Ausschluss der Merkmalsmenge

Sie können festlegen, dass die Features bei der Vorverarbeitung und der anschließenden Modellierung ausgeschlossen werden.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.

Referenz

** 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.

Den Mangel füllen

Interpoliert die Fehler auf die angegebene Weise.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

Derzeit ist es nicht möglich, für jede Spalte anzugeben, und es scheint, dass alle von einer einheitlichen Methode verarbeitet werden.

Sequentielle Datencodierung

Die Etikettenkonvertierung erfolgt durch Angabe der Spalte, die Sie als Sequenzdaten definieren möchten.

Parameter

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.

Funktionsnormalisierung

Normalisieren Sie jede Feature-Menge.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

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.

Integration seltener Werte in kategoriale Variablen

In der kategorialen Variablen werden die Kategorien, die unter dem angegebenen Schwellenwert liegen, zu einer Kategorie zusammengeführt.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

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.

Binning von numerischen Daten

Fasst die Merkmalsmenge numerischer Daten zusammen.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.

Referenz

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.)

Entfernung von Ausreißern

Entfernt Ausreißer aus Zugdaten.

Parameter

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.



Referenz

Weitere Informationen zu Marco finden Sie in diesem Artikel. https://qiita.com/ynakayama/items/36b7c1640e6a02ce2e00

Merkmalsquantifizierung der Klassenringergebnisse

Das Clustering wird unter Verwendung jeder Merkmalsmenge durchgeführt, und die Klassenbezeichnung jedes Datensatzes wird als neue Merkmalsmenge hinzugefügt.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

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 von Features durch Datenverteilung

Entfernen Sie Features mit Abweichungen, die statistisch nicht signifikant sind.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.

Referenz

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?

Generierung von Interaktionsfunktionen

Generiert Interaktionsfunktionen unter Verwendung der angegebenen Parameter.

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.





Referenz

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.

Generierung von Gruppenfunktionen

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.

image.png

Parameter

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"])

Ausführung der Merkmalsmengenauswahl

Wählen Sie die Merkmalsmenge anhand mehrerer Bewertungsindizes aus.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

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?

Reduzierung von Merkmalen mit hoher Kardinalität

Durch die Angabe einer Spalte mit hoher Kardinalität werden die Datentypen in der Spalte reduziert und die Kardinalität verringert.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

Bei der "Clustering" -Methode wird k-means verwendet, um einen schnellen Überblick über die Quelle der ursprünglichen Familie zu erhalten.

Feature-Skalierung

Skaliert den Feature-Betrag gemäß der angegebenen Methode.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

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.

Objektive Variablenskalierung

Skaliert die Zielvariable nach der angegebenen Methode.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.



Referenz

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.

Dimensionsreduzierung der Merkmalsmenge

Wir werden die Dimension des Feature-Betrags reduzieren.

Parameter

Sie kann ausgeführt werden, indem Sie setup () mit dem folgenden Argument versehen.





Referenz

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

Implementierungsbeispiel

Machen Sie eine große Anzahl von Funktionen

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)

Zusammenfassung

** 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

Ich habe die Vorbehandlung untersucht, die mit PyCaret durchgeführt werden kann
Es scheint, dass Skeleton Tracking mit RealSense durchgeführt werden kann
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Ich habe versucht, es zu erweitern, damit die Datenbank mit der Analysesoftware von Wiire verwendet werden kann
Ich habe die Jumbo-Lotterie zum Jahresende mit Python gekauft und analysiert, die in Colaboratory ausgeführt werden kann
Dateitypen, die mit Go verwendet werden können
Listen Sie Pakete auf, die mit pip aktualisiert werden können
Ich habe versucht, die Operationen zusammenzufassen, die wahrscheinlich mit numpy-stl verwendet werden
Hinweise zu Python-Kenntnissen, die mit AtCoder verwendet werden können
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Grenzwerte, die mit MeCab sofort analysiert werden können
Listen Sie die Klassen auf, auf die ObjCClass verweisen kann
Morphologische Analyse und tfidf (mit Testcode), die in ca. 1 Minute durchgeführt werden können
Untersuchte das Problem, dass mit dem Download von Google-Bildern nicht mehr als 101 Bilder erfasst werden konnten
Die Geschichte, dass sendmail, die im Terminal ausgeführt werden kann, mit cron nicht funktioniert hat
[Python] Ich habe eine Praxis untersucht, die durch asynchrone Verarbeitung (Multiprocessing, Asyncio) parallel zum Hauptthread ausgeführt werden kann.
Formatübersicht der Formate, die mit gensim serialisiert werden können
Warum kann ich das Modul durch Importieren mit Python verwenden?
Ich habe versucht, mit PyCaret zu clustern
Goroutine (parallele Steuerung), die im Feld eingesetzt werden kann
Textanalyse, die in 5 Minuten durchgeführt werden kann [Word Cloud]
Goroutine, die im Feld verwendet werden kann (errgroup.Group Edition)
[Atcoder] [C ++] Ich habe ein Testautomatisierungstool erstellt, das während des Wettbewerbs verwendet werden kann
Kalibrieren Sie das Modell mit PyCaret
Ich habe ein Plug-In erstellt, das "Daruma-san Fell" mit Minecraft ausführen kann
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
[Flask] Ich habe versucht, die "Docker-Compose-Konfiguration" zusammenzufassen, die schnell für Webanwendungen erstellt werden kann
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
Über die Sache, dass Fackelzusammenfassung wirklich verwendet werden kann, wenn ein Modell mit Pytorch erstellt wird
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
Sagen Sie mit Word2Vec + Random Forest die Anzahl der Kissen voraus, die als Lachbefragte empfangen werden können
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Ich habe ein Paket erstellt, das morphologische Analysegeräte mit Python vergleichen kann
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Ich habe die X-Means-Methode untersucht, mit der die Anzahl der Cluster automatisch geschätzt wird
Erstellen Sie ein Währungsdiagramm, das mit Plotly (2) verschoben werden kann.
Vergleich von 4 Stilen, die mit set_context an seaborn übergeben werden können
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
Python-Standardmodul, das in der Befehlszeile verwendet werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (1) verschoben werden kann.
Ich habe ein Programm erstellt, das den Tierkreis mit tkinter automatisch berechnet
Kann ich Datenwissenschaftler werden?
Ich habe den Mechanismus der Flaschenanmeldung untersucht!
require.txt kann mit # auskommentiert werden
Ich habe untersucht, wie das Zielfernrohr aussieht
Ich mochte den Tweet mit Python. ..
Bestätigung, dass rkhunter installiert werden kann
Ich habe die Gerätebaumüberlagerung untersucht
Ein Memo beim Erstellen einer Umgebung, die vorerst mit Lambda @ Edge debuggt werden kann
[Python] Code, der zu Beginn beim Scraping als Anfänger mit Hirntod geschrieben werden kann
EXCEL-Datenleiste und Farbskala können auch mit Pandas erstellt werden
Über die Angelegenheit, dass das re.compiled-Objekt für das re.match-Muster verwendet werden kann
Ich habe eine generische Python-Projektvorlage erstellt
Akustisches Signalverarbeitungsmodul, das mit Python-Sounddevice ASIO [Anwendung] verwendet werden kann
Das LXC Web Panel, das LXC mit einem Browser bedienen kann, war wunderbar
Blenden Sie die Warnung aus, dass zsh auf dem Mac standardmäßig verwendet werden kann
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
Serverloser LINE-Bot, der in 2 Stunden ausgeführt werden kann (Erfassung der Quellkennung)
[Kann in 10 Minuten erledigt werden] Erstellen Sie schnell eine lokale Website mit Django