Как использовать scipy для поиска пороговых значений с учетом прогнозовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать scipy для поиска пороговых значений с учетом прогнозов

Сообщение Anonymous »

У меня есть обучающие данные T, содержащие основные истины 3 классов C1, C2 и C3. Обучающие данные очень малы по размеру (около 1000 строк). Из 1000 строк около 700 строк используется для C1, около 250 строк для C2< /em> и всего около 50 строк для C3. Поскольку количество строк для C3 очень мало, мы не используем многоклассовую классификацию, а вместо этого используем две RF-модели: одну для прогнозирования C1, а другую для прогнозирования C1 и C3комбинированные. Назовем эти модели m1 и m2. Модели дают прогнозы pred_m1 и pred_m2 для прогнозирования C1 и C1 и C3 соответственно. Получив прогнозы двух моделей, я нахожу два пороговых значения t1 и t2 для нахождения C1, C2 и C3, таких, что оценки F1 для всех три класса максимальны.

Код: Выделить всё

def map_preds_to_classes(x):
if x.pred_m2 < t2:
return 'C2':
if x.pred_m2 >= t2 and x.pred_m1 >= t1:
return 'C1':
return 'C3'
df['class'] = df.apply(map_preds_to_classes, axis=1)
f1_c1 = f1_score(df['class'] == 'C1', df['ground_truth'] == 'C1')
f1_c2 = f1_score(df['class'] == 'C2', df['ground_truth'] == 'C2')
f1_c3 = f1_score(df['class'] == 'C3', df['ground_truth'] == 'C3')
Есть ли способ использовать scipy, чтобы найти t1 и t2, чтобы f1_c1, f1_c2 и f1_c3 были развернут?

Подробнее здесь: https://stackoverflow.com/questions/792 ... redictions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»