Да, это можно сделать, написав собственный преобразователь с функцией подгонки / преобразования.Это может быть ваш класс:
from sklearn.base import BaseEstimator, TransformerMixin
def getABTransformer(BaseEstimator, TransformerMixin):
def __init__(self): # no *args or **kargs
pass
def fit(self, X, y=None):
return self # nothing else to do
def transform(self, X, y=None):
return getAB(X)
Затем вы можете создать ColumnTransformer
следующим образом:
from sklearn.compose import ColumnTransformer
clm_pipe = ColumnTransformer([
(‘ab’, getABTransformer, np.arange(0, len(X_train)), # list of columns indices
(‘tranf’, transform, np.arange(0, len(X_train))), # list of columns indices
]
и окончательный конвейер с моделью:
pipe = Pipeline([
(‘clm_pipe’, clm_pipe),
(‘net’, net)
]
Вы можете узнать больше о ColumnTransformer