Algoritme voor beoordelingen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 19:48
In een boek over zelfsturende organisaties kwam ik een voorbeeld tegen van een algoritme waarmee elke medewerker zijn/haar collega’s kan beoordelen, maar degene die je beoordeelt bepaalt zelf wie goed in staat is om hem/haar te beoordelen.
Deze vraag gaat niet over het programmeren van iets, maar over het uitdenken van of discussiëren over het “algoritme”.

Uit het boek:
Een keer per jaar vullen de medewerkers voor al hun collega’s een vragenlijst in die bestaat uit maar twee vragen:
  • Deze persoon draagt (veel) meer of (veel) minder bij dan ik. (Op een schaal van -3 t/m +3)
  • Deze persoon is in een goede positie om mij te kunnen beoordelen. (Op een schaal van 1 t/m 5)
Een simpel algoritme graaft zich door de antwoorden heen en deelt de collega’s in een paar grove salariscategorieën in. De meer ervaren, beter opgeleide en harder werkende mensen belanden in de hogere categorieën die meer salaris krijgen; de korter in dienst zijnde, minder ervaren collega’s komen op een natuurlijke manier in de groepen terecht met de lagere salarissen. De gang van zaken is simpel en gemakkelijk re begrijpen. Het heeft het voordeel van rechtvaardigheid. Als het niet maar één persoon is (de baas), maar alle collega’s met wie we te maken hebben, die de relevantie informatie kunnen geven, zal het resulterende salaris eerder een eerlijke afspiegeling zijn van onze bijdrage.
Het algoritme lijkt iets simpeler dan het is. Het kan alleen maar werken als iedereen het formulier heeft ingevuld. Uit de tekst wordt wel duidelijk of iemand “boven” of “onder” jou zou moeten staan, maar in hoeverre iemand in een goede positie is om jouw te beoordelen mee telt is onduidelijk. Zorgt een “5” daar voor een 5x zo grote weging? Tellen alleen de beoordelingen >= 2 mee?
Maak je per persoon een ranglijst voor de rest van het bedrijf en behoud je van die lijst alleen degene waarvan is aangegeven dat hij/zij goed in staat is te beoordelen?

Hoe zou jij omgaan met deze tekst als je daar een implementatie voor zou willen schrijven?

Acties:
  • +3 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Schalen kunnen ordinaal of kardinaal zijn. Kardinaal betekent dat 5 inderdaad 25% meer is dan 4. Ordinaal betekent alleen 5 > 4.

Ordinale getallen kun je daarom wel sorteren, maar je kunt er geen gemiddelde van nemen. Wel kun je de mediaan berekenen; dat is namelijk het middelste getal na sorteren. (Mits je een oneven aantal ordinale getallen hebt uiteraard, want anders heb je geen midden)

Dat het boek hier niet bij stilstaat is eigenlijk al genoeg reden om er niet mee verder te gaan. Dit soort kennis behoort tot het basisbegrip dat nodig is voor een goede implementatie.

Sowieso duf ik op voorhand te zeggen dat er geen simpel en goed algoritme is. Dat is een gevolg van Arrow's impossibility theorem. Toegepast op deze situatie betekent het dat een goed algoritme aan 5 simpele eigenschappen voldoet:

1. Het algoritme neemt de scores van meerdere mensen mee (geen baas)
2. Ongeacht de beoordelingen moet het algoritme altijd een uitkomst hebben. Iedereen moet een salaris krijgen, Not-a-Number is geen acceptabele uitkomst.
3. Het toevoegen van een nieuwe medewerker Z mag nooit betekenen dat medewerker X opeens meer gaat verdienen dan medewerker Y, terwijl dat ervoor juist andersom was. De volgorde van X en Y moet onafhankelijk van medewerker Z zijn, en alleen afhankelijk van de beoordelingen van X en Y.. Uiteraard is het wel denkbaar dat X en Y een iets ander salaris krijgen, omdat de pot nu eenmaal anders verdeeld wordt met Z erbij.
4. Een hogere beoordeling mag niet leiden tot een lager salaris
5. Als alle collega's X boven Y beoordelen, dan moet X ook meer verdienen dan Y.

Dit zijn redelijke eisen, maar Arrow heeft in 1951 bewezen dat je dit niet algoritmisch kunt oplossen. Dus voor elk algoritme wat iemand hier suggereert kan ik een set beoordelingen opstellen waarbij het algoritme faalt op één van deze eisen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 19:48
MSalters schreef op maandag 11 juni 2018 @ 17:01:
Schalen kunnen ordinaal of kardinaal zijn. Kardinaal betekent dat 5 inderdaad 25% meer is dan 4. Ordinaal betekent alleen 5 > 4.

Ordinale getallen kun je daarom wel sorteren, maar je kunt er geen gemiddelde van nemen. Wel kun je de mediaan berekenen; dat is namelijk het middelste getal na sorteren. (Mits je een oneven aantal ordinale getallen hebt uiteraard, want anders heb je geen midden)

Dat het boek hier niet bij stilstaat is eigenlijk al genoeg reden om er niet mee verder te gaan. Dit soort kennis behoort tot het basisbegrip dat nodig is voor een goede implementatie.

Sowieso duf ik op voorhand te zeggen dat er geen simpel en goed algoritme is. Dat is een gevolg van Arrow's impossibility theorem. Toegepast op deze situatie betekent het dat een goed algoritme aan 5 simpele eigenschappen voldoet:

1. Het algoritme neemt de scores van meerdere mensen mee (geen baas)
2. Ongeacht de beoordelingen moet het algoritme altijd een uitkomst hebben. Iedereen moet een salaris krijgen, Not-a-Number is geen acceptabele uitkomst.
3. Het toevoegen van een nieuwe medewerker Z mag nooit betekenen dat medewerker X opeens meer gaat verdienen dan medewerker Y, terwijl dat ervoor juist andersom was. De volgorde van X en Y moet onafhankelijk van medewerker Z zijn, en alleen afhankelijk van de beoordelingen van X en Y.. Uiteraard is het wel denkbaar dat X en Y een iets ander salaris krijgen, omdat de pot nu eenmaal anders verdeeld wordt met Z erbij.
4. Een hogere beoordeling mag niet leiden tot een lager salaris
5. Als alle collega's X boven Y beoordelen, dan moet X ook meer verdienen dan Y.

Dit zijn redelijke eisen, maar Arrow heeft in 1951 bewezen dat je dit niet algoritmisch kunt oplossen. Dus voor elk algoritme wat iemand hier suggereert kan ik een set beoordelingen opstellen waarbij het algoritme faalt op één van deze eisen.
Goeie reactie. Bedankt daarvoor. :)
Ik kende Arrow's impossibility theorem niet. Inmiddels heb ik daarover een beetje ingelezen. Interessante theorie die in ieder geval enorm de waarheid is bij verkiezingen met meerdere rondes. Ik weet nog niet of het hierop van toepassing is, maar dat een ranglijst maken van meer dan drie mensen lastig is, is een feit. In dit algoritme geldt natuurlijk wel dat de "ontvanger" aan kan geven in hoeverre die beoordeling meetelt en dat vind ik een mooie twist. Mensen kunnen volgens mij goed aangeven wie in staat is hen te beoordelen.

Ik wil met wat datasets gaan experimenteren of dit iteratief opgelost kan worden:
  1. persoon 1 bepaalt een ranglijst waarbij het cijfer -3 t/m + 3 een ranglijst oplevert, met gedeelde plaatsen voor dezelfde scores.
  2. Van alle personen die persoon 1 beoordeelt heeft wordt gekeken of persoon in de positie is om te beoordelen (> 1). De weging wordt opgeslagen bij de persoon.
  3. Van persoon 2 wordt een zelfde ranglijst gemaakt en op basis van de positie van persoon 2 zelf in de eerste ranglijst (indien aanwezig), worden de lijsten samengevoegd.
  4. Alle personen worden afgelopen en een volgorde wordt bepaald, met waarschijnlijk een flink aantal gedeelde plaatsen.
  5. De lijst wordt in een andere volgorde doorlopen om te kijken of dit leidt tot een ander resultaat.
  6. ?

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Tja, het nadeel van zulke iteratieve aanpakken is dat het voorstelbaar is dat het niet leidt tot een stabiel enindresultaat, met een schending van het "altijd-een-uitkomst" criterium.

Dat probleem heb je natuurlijk ook al als er niemand in de positie is om persoon X te beoordelen, omdat X niemand daarvoor >1 scoorde. Maar dat los je triviaal op door te eisen dat iedereen tenminste 3 personen >1 opgeeft.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein