Obecnie badam potoki nauki o scikitach. Chcę również wstępnie przetworzyć dane za pomocą potoku. Jednak moje dane pociągu i testu mają różne poziomy zmiennej kategorycznej. przykład: Rozważmy:Tworzenie manekinów w rurociągu o różnych poziomach w zestawie kolejkowym i testowym
import pandas as pd
train = pd.Series(list('abbaa'))
test = pd.Series(list('abcd'))
Napisałem TransformerMixinClass pomocą pandy
class CreateDummies(TransformerMixin):
def transform(self, X, **transformparams):
return pd.get_dummies(X).copy()
def fit(self, X, y=None, **fitparams):
return self
plony fit_transform dla danych kolejowych 2 kolumny i danych testowych 4 kolumny. Więc nic dziwnego tutaj, ale nie nadaje się do rurociągu
Similary, próbowałem zaimportować koder etykiety (i OneHotEncoder dla potencjalnych kolejnych etapach):
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
le = LabelEncoder()
le.fit_transform(train)
le.transform(test)
których plony, nie jest zaskoczeniem, błąd.
Problem polega na tym, że potrzebuję pewnych informacji zawartych w zestawie testowym. Czy istnieje dobry sposób na uwzględnienie tego w potoku?
Można get_dummies przed podzielone pociąg i test? – piRSquared
Dane, które otrzymałem od konkurencji kaggle, dzielą się na pociąg i test. Ale oczywiście mogłem to zrobić, po prostu łącząc te zestawy (zestaw testowy ma również nans w różnych kolumnach niż zestaw pociągu). Obawiam się również, że muszę zrobić tutaj wstępny proces wstępny, nie jestem jeszcze pewien, czy mi się to podoba;) – Quickbeam2k1