У меня есть датафрейм pandas с парами параграфов.Существует около 500 абзацев, и каждый из них указан в виде пары в следующем формате (отсортирован по абзацу A и ранжирован по наибольшему прогнозу):
ParagraphA | paragraphB | label | prediction
Paragraph1 | Pragraph2 | 1 ----| 0.9890
Paragraph1 | Pragraph10 | 1 ----| 0.9870
Paragraph1 | Pragraph17 | 0 ----| 0.9860
Paragraph1 | Pragraph34 | 1 ----| 0.9820
Я уже отсортировал и сгруппировал это (ранее абзацы и прогнозы были вслучайный порядок):
sorted_grouped = df.sort_index(by=['paragraphA', 'predictions'], ascending=[True, False])
Это проблема ранжирования, в которой я пытался предсказать вероятность наличия связи между абзацами.Теперь я хотел бы измерить точность, основываясь на количестве реально существующих ссылок (см. «Метка»).
Как бы подсчитать количество «1» под меткой для каждого абзаца (согласно абзацу А), а такжеСколько раз эти '1 появлялись в верхних x результатах?(x основывается на общем количестве «1» для этого абзаца. Если бы было семь «1», я бы посмотрел на верхние семь результатов)
Для моего примера выше, скажем, есть три «1»под ярлыком для Paragraph1, но в верхних трех есть только два '1.
Поэтому я хотел бы извлечь эту информацию:
1) Всего 1 = 3
2) 1 в топе 3 = 2