Я пытаюсь создать собственную функцию оценки для перекрестной проверки моей модели (бинарной классификации) в scikit-learn (Python).
Некоторые примеры моих необработанных тестовых данных:
Source Feature1 Feature2 Feature3
123 0.1 0.2 0.3
123 0.4 0.5 0.6
456 0.7 0.8 0.9
Предполагая, что любая складка может содержать несколько тестовых примеров из одного и того же источника...
Затем для набора примеров с одним и тем же источником я хочу, чтобы мой пользовательский счетчик «решил», что «победитель» будет примером, для которого модель выдает более высокую вероятность. Другими словами, может быть только один правильный прогноз для каждого источника, но если моя модель утверждает, что более одного примера оценки были «правильными» (метка = 1), я хочу, чтобы пример с наибольшей вероятностью был сопоставлен с правдой с помощью мой бомбардир.
Моя проблема в том, что для функции бомбардира требуется подпись:
score_func(y_true, y_pred, **kwargs)
где y_true
и y_pred
содержат только вероятность/метку.
Однако то, что мне действительно нужно, это:
score_func(y_true_with_source, y_pred_with_source, **kwargs)
поэтому я могу сгруппировать y_pred_with_source
примеров по их источнику и выбрать победителя, который будет соответствовать y_true_with_source
истине. Затем я могу, например, продолжить расчет своей точности.
Можно ли каким-то образом передать эту информацию? Может быть, индексы примеров?