У меня есть следующие классы:
Class A:
def __init__(self,df,metrics=True,data=True):
..
..
self.preprocess(df)
def preprocess(self,df):
..
..
return(df)
def train(self,df):
..
..
return(df)
def fit(self,df):
..
..
return(df)
Class B:
def __init__(self,df2):
..
..
self.preprocess(df2)
def preprocess(self,df2):
..
..
return(df2)
def train(self,df2):
..
..
return(df2)
def fit(self,df2):
..
..
return(df2)
Я хочу создать класс C, который принимает оба родительских класса A и B:
Class C (A,B):
def combine():
..
..
return()
Класс A и B - две модели машинного обучения, дающие некоторый результат с использованием разных алгоритмов. Я хочу использовать класс C, чтобы обернуть эти классы (A и B), а затем объединить их результаты в один.
Проблема, с которой я сталкиваюсь, состоит в том, что эти два класса A и B имеют одинаковые атрибуты (но принимают разные кадры данных). Теперь, когда я звоню C.fit()
, это дает мне ошибку, потому что я думаю, что из-за того факта, что для класса А вызывается только то, что было написано ранее.
Я хочу знать, есть ли способ, которым я могу вызвать аналогичные атрибуты для A и B (A принимает df, а B принимает в df2), используя C и в итоге объединить эти результаты?
Короче говоря, я хочу: когда я вызываю C.fit()
, я хочу, чтобы оба fit()
выполнялись в A и B, а также создавали self.variables в обоих этих классах, которые были бы созданы при вызове индивидуально.