Я создаю собственный счетчик для объекта gridsearchcv. Для счетчика клиентов мне нужны вероятности из двух разных фреймов данных, но модель следует обучать только на одном из фреймов данных. Другой кадр данных необходим для получения вероятностей. Эти вероятности будут использоваться в функции подсчета очков.
Я думал об объединении фреймов данных, но ни один из фреймов данных не соответствует действительности. Это создаст проблему с передачей y_true.
Я также пытался передать модель пользовательской функции оценки, но получил отслеживание, что модель не подходит. Вот пример того, что я пытаюсь сделать:
def fit(self, X_train, y_train, X_info):
grid = self._create_grid_search()
clf = GradientBoostingClassifier()
score_func = make_scorer(self.make_custom_score, needs_proba=True, clf=clf, X_info=X_info)
model = GridSearchCV(estimator=clf,
param_grid=grid,
scoring=score_func,
cv=3)
def make_custom_score(self, y_true, y_score, clf, X_info):
Я нашел этот вопрос: Перекрестная проверка SKLearn: как передать информацию о примерах сгиба в мою функцию подсчета очков? что, похоже, возможно. Этот подход, казалось бы, заключается в написании функции в форме бомбардира (оценка, X, y), но я думаю, что это все еще будет иметь проблему, заключающуюся в том, что модель будет обучаться на всех данных. Есть ли способ передать оценщик пользовательской функции оценки, которая будет использоваться gridsearchcv?
X_info
такого же размера, какX_train
? Можете ли вы показать, что вы собираетесь делать сX_info
(код вmake_custom_score
)? ПосколькуX_train
внутри GridSearchCV будет делиться на обучение и тестирование, будет ли такое же разделение применяться к X_info? - person Vivek Kumar   schedule 30.10.2018