[PYTHON] Code-Reduktion-Pipeline und Funktionstransformator-

Auslösen

Mit make_pipeline, das in Code of 1st Place im Mercari-Wettbewerb erschien. Ich habe den Funktionstransformator nicht wirklich verstanden.

Zusammenfassung

Make_pipeline → Konvertieren Sie Code wie [Vorverarbeitung + Lernen + Schätzen] in einen Schätzer. Code-Reduktion ist möglich.

FunctionTransformer → Konvertieren Sie eine Funktion in einen Transformator. Weil das Argument von Pipeline ein Transformator sein muss. Die Mindestanforderung für jede Funktion ist, dass Anpassung und Transformation vorhanden sind.

Anwendungsbeispiel

Anwendungsbeispiel ①

Im folgenden Beispiel wird SVC ausgeführt, nachdem PCA () ausgeführt wurde. Die Vorverarbeitung und Klassifizierung kann in einer Reihe von Vorgängen ausgeführt werden.

Referenzseite für das folgende Beispiel

qiita.rb


from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
from sklearn import datasets

#Vorbereitung der Probendaten
iris = datasets.load_iris()
X, y = iris.data, iris.target

#Erstellen einer Pipeline
estimators = [('reduce_dim', PCA()), ('clf', SVC())]
pipe = Pipeline(steps=estimators)

#Lernen
pipe.fit(X, y)

#Prognose
pipe.predict(X)

Verwendungsbeispiel (2) Verwendungsbeispiel des Mercari-Wettbewerbscodes

Teilauszug aus Code 1 im Mercari-Wettbewerb

qiita.rb


from sklearn.pipeline import make_pipeline, make_union, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer as Tfidf

def on_field(f: str, *vec) -> Pipeline:
    return make_pipeline(FunctionTransformer(itemgetter(f), validate=False), *vec)

 vectorizer = make_union(
        on_field('name', Tfidf(max_features=100000, token_pattern='\w+')),
        on_field('text', Tfidf(max_features=100000, token_pattern='\w+', ngram_range=(1, 2))),
        on_field(['shipping', 'item_condition_id'],
                 FunctionTransformer(to_records, validate=False), DictVectorizer()),
        n_jobs=4)

Ich bin Pipeline-Instanzen von Itemgetter und Tfidf mit make_pipeline. Ich erstelle meinen eigenen Konverter, indem ich Item Getter in einen Transformator mit Funktionstransformator umwandle. Dies ermöglicht es, wichtige Zeichenketten in itemgetter (Extrahieren von Zeichenketten) in einer Reihe von Schritten zu identifizieren. Klicken Sie hier, um den Artikel zu erhalten

Recommended Posts

Code-Reduktion-Pipeline und Funktionstransformator-
Schnelle Sortierdetails und Codebeispiele
Adam Paper Zusammenfassung und Code
Informationen zur Funktion fork () und zur Funktion execve ()
Einführung und Implementierung der Aktivierungsfunktion
Funktionszeiger und objdump ~ C language ~
Funktionssynthese und Anwendung in Python
[Python] Unterschied zwischen Funktion und Methode
[Python] Funktionsargumente * (Stern) und ** (Doppelstern)