Seite 1 von 1

Python Class MachineLearning Preprocessing

Verfasst: Mittwoch 6. November 2019, 15:57
von Joey20
Hallo liebe Community,

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_