[Python] Was ist Pipeline ...

Hallo.

Plötzlich interessierte ich mich für maschinelles Lernen und tiefes Lernen, deshalb nahm ich kürzlich am Kaggle-Wettbewerb teil. kaggle hat eine Notebook-Funktion, daher war ich begeistert, den Code zu verstehen!

"Ich weiß überhaupt nicht, was das bedeutet"

Ich hatte überhaupt keine Programmierkenntnisse. Als ich mir den Code in Kaggles Notizbuch ansah, sah er aus wie eine Chiffre (lacht). Deshalb dachte ich, ich würde jeden langsam verstehen, also würde ich ihn gerne hier schreiben, als wäre es ein Tagebuch.

Diesmal geht es um "Pipeline".

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets

iris_data = datasets.load_iris()
input_data = iris_data.data
correct = iris_data.target

Vorerst habe ich auf die folgende Seite zugegriffen. sklearn.pipeline.Pipeline — scikit-learn 0.23.2 documentation

Demnach ist die Grundform

from sklearn.pipeline import Pipeline Pipe = Pipeline ([(Vorbehandlungsmethode), (Lernmethode)]) pipe.fit (erklärende Variable, Zielvariable)

Es scheint, dass der Code vereinfacht werden kann.

Auf dieser Grundlage habe ich Irisdaten in einem zufälligen Wald trainiert.

from sklearn.ensemble import RandomForestClassifier as RFC 

X_train, X_test, y_train, y_test = train_test_split(input_data, correct)
pipe = Pipeline([('scaler', StandardScaler()), 
                 ('RandomForestClassifier', RFC())])
pipe.fit(X_train, y_train)
pipe.score(X_test, y_test)

# 0.9473684210526315

Basierend auf dem oben Gesagten haben wir die erklärenden Variablen standardisiert und trainieren in einem zufälligen Wald. Wenn Sie sie auf diese Weise in Pipeline zusammenstellen, wird der Code "prägnant".

Unten finden Sie den Code zur Bestätigung.

X_train, X_test, y_train, y_test = train_test_split(input_data, correct)
tr_x, te_x, tr_y, te_y = X_train.copy(), X_test.copy(), y_train.copy(), y_test.copy() #Zur Überprüfung kopieren

pipe = Pipeline([('scaler', StandardScaler()), 
                 ('Classifier', RFC())])
pipe.fit(X_train, y_train)
print("pipe score = " + str(pipe.score(X_test, y_test)))


from sklearn.preprocessing import StandardScaler

stdsc = StandardScaler()
tr_x = stdsc.fit(tr_x).transform(tr_x)
te_x = stdsc.fit(te_x).transform(te_x)

clf = RFC()
clf.fit(tr_x, tr_y)
print("RFC score = ", clf.score(te_x, te_y))

# pipe score = 0.9473684210526315
# RFC score =  0.9473684210526315

Ich konnte die Berechnung anpassen, sodass ich wusste, dass die Vorverarbeitung von Pipeline korrekt funktionierte.

Ich verstehe, ich habe irgendwie etwas über Pipeline gelernt. Aber selbst wenn es viele Vorprozesse gibt, kann nur einer ausgeführt werden?

Anscheinend können mehrere Prozesse kombiniert werden.

from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier as RFC 
from sklearn.preprocessing import OneHotEncoder
from sklearn.impute import SimpleImputer

preprocessing = Pipeline([
    ('imputer', SimpleImputer(strategy='constant', fill_value='missing')),  #Prozess zum Entfernen fehlender Werte
    ('onehot', OneHotEncoder(handle_unknown='ignore'))])                    #Eine heiße Codierung


rf = Pipeline([
    ('preprocess', preprocessing),
    ('classifier', RFC())])

rf.fit(X_train, y_train)

auf diese Weise, Grundform Pipe = Pipeline ([(Vorbehandlungsmethode), (Lernmethode)]) Was die (Vorverarbeitungsmethode) betrifft, so scheint es, dass eine Methode darin besteht, Pipelines als Bild wie die BNF-Notation zu überlappen (es ist nur eine Bildgeschichte).

Recommended Posts

[Python] Was ist Pipeline ...
Was ist Python?
Was ist Python?
[Python] Was ist virtualenv?
[Python] Python und Sicherheit - is Was ist Python?
[Python] * args ** Was ist kwrgs?
Python-Grundkurs (1 Was ist Python?)
[Python] Was ist eine Zip-Funktion?
[Python] Was ist eine with-Anweisung?
[Python] Was ist @? (Über Dekorateure)
[Python] Was ist der sortierte Schlüssel?
Python für Anweisung ~ Was ist iterierbar ~
Wofür ist der Python-Unterstrich (_)?
Python> Was ist ein erweitertes Slice?
Was ist ein Namespace?
Was ist copy.copy ()
Python ist einfach
Was ist Django? .. ..
Was ist dotenv?
Was ist POSIX?
Was ist Linux?
Was ist klass?
Was ist SALOME?
Was ist Linux?
Was ist Hyperopt?
Python ist eine Instanz
Was ist Linux?
Was ist Pyvenv?
Was ist __call__?
Was ist Linux?
[Python] Was ist Pandas Series und DataFrame?
[Python] Was wird durch Mehrfachvererbung geerbt?
Was ist NaN? NaN Zoya (Python) (394 Tage zu spät)
Was für eine Programmiersprache ist Python?
Was ist "Mahjong" in der Python-Bibliothek? ??
Was ist ein Hund? Python-Installationsvolumen
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
Python Int ist unendlich
Was ist eine Distribution?
Was ist Piotroskis F-Score?
Was ist "funktionale Programmierung" und "objektorientiert"? Python Edition
Was ist Raspberry Pi?
Was ist das Calmar-Verhältnis?
Was ist ein Terminal?
Was ist im Docker Python-Image pfeifend?
[PyTorch Tutorial ①] Was ist PyTorch?
Ich habe Python ausprobiert! ] Heute Abschluss von "Jeder Python! Was ist Python!"!
Was ist Hyperparameter-Tuning?
Was ist ein Hacker?
Was ist JSON? .. [Hinweis]
Wofür ist Linux?
Was ist ein Zeiger?
Was vergleichst du mit Python und ==?
Was ist Ensemble-Lernen?
Was ist TCP / IP?
[Einführung in die Udemy Python3 + -Anwendung] 54. Was ist Docstrings?
Was ist Pythons __init__.py?
Was ist ein Iterator?