[PYTHON] Einführung von DataLiner Version 1.3 und Verwendung von Union Append

Einführung

Wir haben alle Hauptfunktionen implementiert, die für die Veröffentlichung von DataLiner 1.3.1 erwartet wurden. In Zukunft wird es im Entwicklungstempo darum gehen, von Zeit zu Zeit Fehlerbehebungen und Vorverarbeitungen hinzuzufügen.

Veröffentlichungsartikel: https://qiita.com/shallowdf20/items/36727c9a18f5be365b37 GitHub: https://github.com/shallowdf20/dataliner Document: https://shallowdf20.github.io/dataliner/preprocessing.html

Installation

! pip install -U dataliner

Änderungen in Version 1.3

Es gibt die folgenden vier.

Dann werde ich die spezifische Verwendung vorstellen.

Wie benutzt man

Importieren Sie zunächst das diesmal zu verwendende Paket.

import dataliner as dl
from sklearn.pipeline import make_pipeline
from sklearn.ensemble import RandomForestClassifier

Ab dieser Version sind Titandaten im Paket enthalten, was das Ausprobieren erleichtert. Verwenden Sie die Methode load_titanic, um die Beispiel-Titandaten zu laden.

X, X_test, y = dl.load_titanic()

Jetzt sind X die Daten ohne "Überlebt" in train.csv, X_test ist test.csv und y ist die Spalte "Überlebt" in train.csv.

Wie benutzt man

Dieses Mal werde ich den Prozess ** Union Append ** vorstellen.

Bei der DataLiner-Vorverarbeitung erhält grundsätzlich jede Vorverarbeitung, die neue Features aus vorhandenen Features hinzufügt, den Klassennamen Anhängen 〇〇.

Aus diesem Grund haben wir ArithmeticFeatureGenerator in dieser Version in AppendArithmeticFeatures geändert. Die Ausnahmen sind BinarizeNaN und CountRowNaN. Dies sind jedoch die Prozesse, die im Prinzip vor der Vervollständigung / Kategorieverarbeitung für fehlende Werte ausgeführt werden. Daher wird dieser Name verwendet.

Nehmen wir zum Beispiel an, Sie möchten Features als Ganzes hinzufügen und eine Pipeline wie folgt erstellen.

process = make_pipeline(
    dl.ImputeNaN(),
    dl.TargetMeanEncoding(),
    dl.StandardScaling(),
    dl.AppendCluster(),
    dl.AppendAnomalyScore(),
    dl.AppendPrincipalComponent(),
    dl.AppendClusterTargetMean(),
    dl.AppendClassificationModel(model=RandomForestClassifier(n_estimators=100, max_depth=5)),
    dl.AppendClusterDistance(),
    dl.AppendArithmeticFeatures(),
)
process.fit_transform(X, y)

Bei dieser Methode wird beispielsweise der vom Append Cluster hinzugefügte Feature-Betrag als Originaldaten für den nächsten Append Anomaly Score verwendet. (Und der Funktionsumfang wird in allen Anhängen stead unten stetig zunehmen.)

Möglicherweise möchten Sie parallel statt wie folgt seriell verarbeiten und alle Funktionen, die der Grundlage von Anhängen zugrunde liegen, gleich machen. In diesem Fall können Sie Union Append verwenden.

process = make_pipeline(
    dl.ImputeNaN(),
    dl.TargetMeanEncoding(),
    dl.StandardScaling(),
    dl.UnionAppend([
        dl.AppendCluster(),
        dl.AppendAnomalyScore(),
        dl.AppendPrincipalComponent(),
        dl.AppendClusterTargetMean(),
        dl.AppendClassificationModel(model=RandomForestClassifier(n_estimators=100, max_depth=5)),
        dl.AppendClusterDistance(),
        dl.AppendArithmeticFeatures(),
    ]),
)
process.fit_transform(X, y)

Durch Angabe der Klasse von Anhängen ○○, die Sie in einem Array auf UnionAppend anwenden möchten, werden alle Basisfunktionen der Verarbeitung in UnionAppend vereinheitlicht, und die Verarbeitungsergebnisse der einzelnen Anhänge ○○ werden kombiniert und zurückgegeben. Das Ausführungsergebnis ist wie folgt.

PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Cluster_Number Anomaly_Score Principal_Component_0 Principal_Component_1 Principal_Component_2 Principal_Component_3 Principal_Component_4 cluster_mean Predicted_RandomForestClassifier Cluster_Distance_0 Cluster_Distance_1 Cluster_Distance_2 Cluster_Distance_3 Cluster_Distance_4 Cluster_Distance_5 Cluster_Distance_6 Cluster_Distance_7 Age_multiply_SibSp PassengerId_multiply_SibSp SibSp_multiply_Parch
-1.729 0.8269 -0.9994 -0.7373 -0.5921 0.4326 -0.4734 -0.1954 -0.5022 -0.3479 -0.5397 1 0.094260 -1.4177 0.1906 -0.35640 -1.398 -0.5801 0.1677 0 2.861 1.265 4.352 3.466 5.616 3.461 2.782 5.667 -0.2561 -0.7479 -0.2048
-1.725 -1.5652 -0.9994 1.3548 0.6384 0.4326 -0.4734 -0.1954 0.7864 0.1665 2.0434 5 -0.047463 1.9956 0.1777 -0.14888 -2.449 0.6941 0.4874 1 3.768 4.335 5.799 3.681 3.946 3.028 4.993 4.830 0.2762 -0.7463 -0.2048
-1.721 0.8269 -0.9994 1.3548 -0.2845 -0.4743 -0.4734 -0.1954 -0.4886 -0.3479 -0.5397 0 0.076929 -0.8234 0.2181 -1.24773 -1.380 -1.2529 0.7321 1 1.870 2.311 4.937 3.759 5.490 3.548 3.376 5.467 0.1349 0.8164 0.2245
-1.717 -1.5652 -0.9994 1.3548 0.4077 0.4326 -0.4734 0.2317 0.4205 0.8250 -0.5397 0 -0.000208 1.5823 0.2699 0.10503 -1.536 -1.6788 0.7321 1 2.835 3.547 5.352 3.058 4.090 3.970 4.338 3.846 0.1763 -0.7429 -0.2048
-1.714 0.8269 -0.9994 -0.7373 0.4077 -0.4743 -0.4734 -0.1954 -0.4861 -0.3479 -0.5397 1 0.106421 -1.2160 -0.7344 -0.09900 -1.500 -0.7327 0.1677 0 2.866 1.148 5.064 2.921 5.567 3.463 2.689 5.594 -0.1934 0.8127 0.2245

Die Verarbeitung zum Testen der Daten erfolgt wie gewohnt.

process.transform(X_test)
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Cluster_Number Anomaly_Score Principal_Component_0 Principal_Component_1 Principal_Component_2 Principal_Component_3 Principal_Component_4 cluster_mean Predicted_RandomForestClassifier Cluster_Distance_0 Cluster_Distance_1 Cluster_Distance_2 Cluster_Distance_3 Cluster_Distance_4 Cluster_Distance_5 Cluster_Distance_6 Cluster_Distance_7 Age_multiply_SibSp PassengerId_multiply_SibSp SibSp_multiply_Parch
1.733 0.8269 -0.9994 -0.7373 0.3692 -0.4743 -0.4734 -0.1954 -0.4905 -0.3479 0.06949 6 0.08314 -0.92627 -1.0572 0.17814 1.514 0.78456 0.1087 0 3.095 2.724 5.232 2.986 5.397 3.045 1.1646 5.405 -0.17512 -0.8219 0.2245
1.737 0.8269 -0.9994 1.3548 1.3306 0.4326 -0.4734 -0.1954 -0.5072 -0.3479 -0.53969 0 0.01921 -0.45407 -0.2239 0.40615 1.531 -0.36302 0.7321 0 2.677 3.744 5.022 3.451 5.503 3.924 2.7926 5.414 0.57556 0.7513 -0.2048
1.741 -0.3692 -0.9994 -0.7373 2.4843 -0.4743 -0.4734 -0.1954 -0.4531 -0.3479 0.06949 3 0.02651 0.04527 -2.0548 1.70715 1.119 0.49872 0.2277 0 4.047 3.880 6.207 2.345 5.441 3.955 2.9554 5.527 -1.17825 -0.8256 0.2245
1.745 0.8269 -0.9994 -0.7373 -0.2076 -0.4743 -0.4734 -0.1954 -0.4737 -0.3479 -0.53969 6 0.11329 -1.17022 -0.7993 0.02809 1.770 0.37658 0.1087 0 3.011 2.615 5.099 3.238 5.522 3.420 0.9194 5.466 0.09846 -0.8275 0.2245
1.749 0.8269 -0.9994 1.3548 -0.5921 0.4326 0.7672 -0.1954 -0.4008 -0.3479 -0.53969 0 0.02122 -0.63799 1.2879 -0.38498 1.920 -0.06859 0.7321 1 2.269 3.601 3.888 4.139 5.238 3.679 2.6813 5.425 -0.25613 0.7563 0.3319

abschließend

Damit ist die Implementierung der ursprünglich erwarteten Funktionen und die verwendete Vorverarbeitung abgeschlossen. Wenn ich in Zukunft eine Fehlerbehebung und eine neue Vorverarbeitung finde, werde ich sie hinzufügen, wenn ich daran denken kann.

Recommended Posts

Einführung von DataLiner Version 1.3 und Verwendung von Union Append
Einführung des Cyber-Sicherheits-Frameworks "MITRE CALDERA": Verwendung und Schulung
[Einführung] Verwendung von open3d
Zusammenfassung der Verwendung von pandas.DataFrame.loc
So installieren und verwenden Sie Tesseract-OCR
Zusammenfassung der Verwendung von pyenv-virtualenv
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
[Einführung in Azure für Kaggle-Benutzer] Vergleich zum Starten und Verwenden von Azure Notebooks und Azure Notebooks VM
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
So installieren und verwenden Sie Graphviz
Zusammenfassung der Verwendung von csvkit
[Einführung in Python] Verwendung des Booleschen Operators (und ・ oder ・ nicht)
[Python] Zusammenfassung der Verwendung von Pandas
[Einführung in Python] Wie verwende ich eine Klasse in Python?
[Python2.7] Zusammenfassung der Verwendung von unittest
Python: Verwendung von Einheimischen () und Globalen ()
Jupyter Notebook Grundlagen der Verwendung
Grundlagen von PyTorch (1) - Verwendung von Tensor-
Verwendung von Python zip und Aufzählung
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Verwendung ist und == in Python
Verwendung von pandas Timestamp und date_range
[Frage] Wie verwende ich plot_surface von Python?
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Scipy
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Pandas
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Matplotlib
Verwendung von Folium (Visualisierung von Standortinformationen)
[Python] Verwendung von zwei Arten von type ()
Einführung des Sinatra-Frameworks und dessen Verwendung
[Einführung in die Udemy Python3 + -Anwendung] 23. Verwendung von Tapuru
Nicht viel erwähnt, wie man Pickle benutzt
[Python] Verwendung von Hash-Funktion und Taple.
So installieren Sie den Cascade-Detektor und wie verwenden Sie ihn
Verwendung von xml.etree.ElementTree
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Umgebungskonstruktion
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?