Mit make_pipeline, das in Code of 1st Place im Mercari-Wettbewerb erschien. Ich habe den Funktionstransformator nicht wirklich verstanden.
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.
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)
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