Как установить условный порог для моих выходных прогнозов? - PullRequest
1 голос
/ 01 июля 2019

У меня есть модель машинного обучения, которая выполняет классификацию текста по нескольким меткам.У меня есть объект-предиктор, который успешно предсказывает классификации строк текста, которые я использую в качестве входных данных.Он присваивает свой прогноз одиночному прогнозу в виде списка, который выглядит следующим образом:

[('unrelated', 0.9684208035469055), ('curated', 0.02895800955593586)]

Я чувствую, что это может быть очень просто, но по сути мне просто нужно создать порог для кураторских совпадений.

Так что, если доверие к куратору выше 0,90 или что-то в этом роде, я могу напечатать заявление.

Однако я не знаю, как задать это условие.

Это объект списка, поэтому я попытался указать индекс.Однако каждый индекс выводит оба ['label', confidence].Более того, порядок индекса меняется в зависимости от достоверности.Сначала всегда отображается метка достоверности самого высокого уровня.Так что указание номера индекса не сильно поможет, так как оно меняется.

single_prediction = predictor.predict(result)
df.at[0,'prediction'] = single_prediction
if single_prediction[0] >= .95:
    print('this is a match')
print(single_prediction)

1 Ответ

1 голос
/ 01 июля 2019

Вы можете сделать это, используя списочные выражения:

results = [ [('curated', 0.6), ('unrelated', 0.4)],
           [('unrelated', 0.55), ('curated', 0.45)],
          [('unrelated', 0.7), ('curated', 0.3)]]

threshold = 0.4
for result in results:
    if [x[1] for x in result if x[0] == 'curated'][0] > threshold:
        print(result)

Выход:

[('curated', 0.6), ('unrelated', 0.4)]
[('unrelated', 0.55), ('curated', 0.45)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...