def score(self, X_test, y_test, advanced_scoring=True, verbose=2):
if isinstance(X_test, list):
X_test = pd.DataFrame(X_test)
y_test = list(y_test)
X_test, y_test = utils.drop_missing_y_vals(X_test, y_test, self.output_column)
if self._scorer is not None:
if self.type_of_estimator == 'regressor':
return self._scorer.score(self.trained_pipeline, X_test, y_test, self.took_log_of_y, advanced_scoring=advanced_scoring, verbose=verbose, name=self.name)
elif self.type_of_estimator == 'classifier':
# TODO: can probably refactor accuracy score now that we've turned scoring into it's own class
if self._scorer == accuracy_score:
predictions = self.trained_pipeline.predict(X_test)
return self._scorer.score(y_test, predictions)
elif advanced_scoring:
score, probas = self._scorer.score(self.trained_pipeline, X_test, y_test, advanced_scoring=advanced_scoring)
utils_scoring.advanced_scoring_classifiers(probas, y_test, name=self.name)
return score
else:
return self._scorer.score(self.trained_pipeline, X_test, y_test, advanced_scoring=advanced_scoring)
else:
return self.trained_pipeline.score(X_test, y_test)
评论列表
文章目录