class r07546035_DummyRegression(regression): def trainAlgo(self): self.model = DummyRegressor(strategy=self.param['strategy'], quantile=self.param['quantile']) self.model.fit(self.inputData['X'], self.outputData['y'], sample_weight=None) def predictAlgo(self): self.result['y'] = self.model.predict(self.inputData['X']) def get_paramsAlgo(self): self.model.get_params(self)
def train_dummy_regressors(features, target): for strat in ['mean', 'median']: dr = DummyRegressor(strategy=strat) dr.fit(features, y=target.flatten()) dummy_score = (100 * dr.score(features, target)) print('{:.1f} % score for a dummy regressor using the {} stragety'.format( dummy_score, dr.get_params()['strategy']))
class PerfectClassifierMeanRegressor(): def fit(self,X: pd.DataFrame, y: pd.Series): self.X = X self.y = y self.regressor = DummyRegressor(strategy='mean') def cross_val(self,scoring,k=10): self.scores = {} for name, scorer in scoring.items(): for split in ['train','test']: self.scores[split+'_'+name] = [] splitter = KFold(n_splits=k,shuffle=True,random_state=7) for train_index, test_index in splitter.split(self.X,self.y): X_train = self.X.values[train_index] y_train = self.y.values[train_index] X_test = self.X.values[test_index] y_test = self.y.values[test_index] # get test y class labels for perfect classification y_test_binary = (y_test != 0) y_train_binary = (y_train != 0) self.regressor.fit(X_train,y_train.reshape(-1,1)) reg_pred_test = self.regressor.predict(X_test).flatten() reg_pred_train = self.regressor.predict(X_train).flatten() y_pred_test = np.multiply(y_test_binary,reg_pred_test) y_pred_train = np.multiply(y_train_binary,reg_pred_train) for name, scorer in scoring.items(): self.scores['test_'+name].append(scorer(y_test,y_pred_test)) self.scores['train_'+name].append(scorer(y_train,y_pred_train)) return self.scores def get_params(self): return(self.regressor.get_params())