Skip to content
This repository was archived by the owner on Mar 24, 2023. It is now read-only.

[WIP] Calculate sample size automatically #40

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

dzieciou
Copy link
Owner

@dzieciou dzieciou commented Jan 28, 2023

Fixes #27.

@dzieciou dzieciou marked this pull request as draft January 28, 2023 14:16
Comment on lines +60 to +61
def get_sample_size(tree: NodeMixin, allowed_labels: Set[Label]):
return max(len(allowed_labels), len(tree.children))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Musiałbyś trochę rozwinąć tę koncepcję, bo nie jest dla mnie jasne skąd ten wzór?

chyba nigdy nie ma sensu wybierać więcej niż jest liści w drzewie?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To jest jeszcze draft, muszę to przemyśleć, ale zasadniczo:

  • w samplu powinno być conajmniej tyle nodów z drzewa, ile jest kategorii, zeby kazda kategoria miala szanse byc reprezentowana w samplu

chyba nigdy nie ma sensu wybierać więcej niż jest liści w drzewie?

zgadza sie

w dodatku sytuacja, kiedy w drzewie kategorii jest mniej lisci niż allowed labels, skutkuje tym, ze, ze dla niektorych z allowed labels nie bedzie kategorii.

Takich scenariuszy jest dużo więcej i muszę sobie je rozpisać.

Copy link
Collaborator

@pkubiak pkubiak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nie jest dla mnie jasne jak działa ta nowa metoda, mógłbyś zapodać jakimś wyjaśnieniem skąd takie podejscie?

@dzieciou
Copy link
Owner Author

dzieciou commented Feb 22, 2023

Nie jest dla mnie jasne jak działa ta nowa metoda, mógłbyś zapodać jakimś wyjaśnieniem skąd takie podejscie?

Masz na myśli nowy sposób samplowania stąd: https://github.com/dzieciou/tree-labeller/blob/master/tree_labeller/tree/selectors/top_down.py?

Tam jest dokumentacja ale generalnie jest tak. Powiedzmy ze masz budzet na 5 annotacji, a twoje drzewo kategorii ma dwie główne kategorie:

  • pieczywo
  • alkohole

Wybierasz więc pieczywo i alkohole. Zostalo ci jeszcze 3 annotacji, wiec mozesz zaczac zastępować główne kategorie podkategoriami. Ale robisz to tak, zeby z kazdej z głównych kategorii była reprezentowana, wiec:

  • dla pieczywa wybierasz podkategorię bułki
  • dla alkoholi -- wódkę
  • dla pieczywa -- chleby
  • dla alkoholi -- wina
  • w pieczywach nie ma już podkategorii, wiec wybierasz z alkoholi kolejną podkategorię -- whisky

Mowilem, ze mamy budget na 3 dodatkowe, ale w momencie kiedys wybierasz podkategorię np. pieczywo->bułki, to z sampla usuwamy pieczywo, czyli jego główną kategorię.

Zadanie domowe: Co trafiłoby do sampla, gdyby budżet wynosił 2, 3 lub 4?

@dzieciou dzieciou changed the title Calculate sample size automatically [WIP] Calculate sample size automatically Mar 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sampling size
2 participants