ich weiss leider mit meinen aktuellen Kenntnissen nicht mehr weiter :-/ .
Ich hab eine Klasse mit einer Pipeline für's PreProc. geschrieben.
Aktuell sind ca 10 Feature Selection Methoden vorhanden (Filter,Embedded,Wrapper...) .
Nun habe ich noch eine Methode geschrieben , die alle selektierten Features von den Feat Sel Methoden vergleicht und eine List mit bspw n=10
gleichen Features ausgibt.
Alles schön und gut , leider muss ich alle Feat Sel Methoden vorher ausführen um die letzte Methode ausführen zu können.
Gibt es da echt keine Alternative diesbezüglich

Code: Alles auswählen
class test(BaseEstimator,TransformerMixin):
def __init__(self,data):
self.data = data
self.categorical = ...
self.numerical = ...
self.discrete = ...
self.numerical = ...
self.data[self.discrete] = ....
self.X = ...
self.y = ...
def fit(self):
pipe = Pipeline([..........
])
self.fit = pipe.fit(self.X,self.y)
return self
def transform(self):
self.x = self.fit.transform(self.X)
return self
def eins(self):
sel = f_regression(self.x,self.y)
p_val = pd.Series(sel[1])
p_val.index = self.x.columns
p_val.sort_values(ascending=True, inplace=True)
p_val = p_val[p_val < 0.05]
X_ = self.x[p_val.index]
self.X_anova_set = set(X_)
return X_,self
def zwei(self):
....
return X_,self
def drei(self):
....
return X_,self
def vier(self):
....
return X_,self
#----um die Methode auszuführen , müssen alle Feat Sel ausgeführt sein---
def gleiche_feat(self,n):
feat_name = list(islice(eins&zwei&drei&vier......, n))
X_ = self.x[feat_name]
return X_