рдХрдИ рд╕рд╛рд▓реЛрдВ рд╕реЗ рдореИрдВ рд╕реНрдиреВрдХрд░ рдХреЛ рдПрдХ рдЦреЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рд╣реИ: рдПрдХ рдмреМрджреНрдзрд┐рдХ рдЦреЗрд▓ рдХреА рд╢рд╛рдирджрд╛рд░ рд╕реБрдВрджрд░рддрд╛, рдХреАрдо рд╕реНрдЯреНрд░реЛрдХ рдХреА рд╕реБрдВрджрд░рддрд╛ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд╛ рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рддрдирд╛рд╡ред рд▓реЗрдХрд┐рди рдПрдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ - рдЗрд╕рдХреА рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА ред
рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдореИрдЪреЛрдВ рдХреА "рдЬрдЯрд┐рд▓рддрд╛" рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрд┐ рдХреЗ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдПрд▓реЛ рдореЙрдбрд▓ рдЗрд╕ рдЦрд╛рдореА рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИ, рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА "рддрд╛рдХрдд" рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдореИрдЪреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдФрд░ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреА "рддрд╛рдХрдд" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ: рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдореИрдЪ рд╕рдорд╛рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдиреВрдХрд░ рдореЗрдВ рд╡реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬреАрддреЗ рд╣реБрдП рдлреНрд░реЗрдо (рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ) рддрдХ рдЦреЗрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдореЙрдбрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдПрд▓реЛрдмреЗрдЯрд╛ рдХрд╣рд╛ред
рдпрд╣ рд▓реЗрдЦ рд╕реНрдиреВрдХрд░ рдореИрдЪреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрд▓реЛ рдФрд░ рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА "рддрд╛рдХрдд" рдХрд╛ рдЖрдХрд▓рди рдХрд░рдирд╛ рдФрд░ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдореЙрдбрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрдЬрд╛рдп "рдирд┐рд╖реНрдкрдХреНрд╖" рд░реЗрдЯрд┐рдВрдЧ рдмрдирд╛рдирд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╕реНрдиреВрдХрд░ рд░реЗрдЯрд┐рдВрдЧ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ "рд╡рдЬрди" рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдПрдХ рдмрд╛рд░, рдХреЗрд╡рд▓ рд╡рд┐рд╢реНрд╡ рдЪреИрдВрдкрд┐рдпрдирд╢рд┐рдк рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдХрдИ рдЕрдиреНрдп рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рдж, рдЕрдВрдХ рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рдереА рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд░рдг рдореЗрдВ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдХрдорд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдкреБрд░рд╕реНрдХрд╛рд░ рд░рд╛рд╢рд┐ рдХреЗ "рдЪрд▓рддреА" рд░рд╛рд╢рд┐ рдХрд╛ рд░реВрдк рд╣реИ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рдкрд┐рдЫрд▓реЗ рджреЛ рдХреИрд▓реЗрдВрдбрд░ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди (рд▓рдЧрднрдЧ) рдЕрд░реНрдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рджреЛ рдореБрдЦреНрдп рдлрд╛рдпрджреЗ рд╣реИрдВ: рдпрд╣ рд╕рд░рд▓ рд╣реИ (рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдкреИрд╕рд╛ рдЬреАрддрдирд╛ - рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдКрдкрд░ рдЬрд╛рдирд╛) рдФрд░ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп (рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд╛рди рддрдХ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдЬреАрддреЗрдВ, рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЗрдВ рд╕рдорд╛рди рд╣реЛ рд░рд╣реА рд╣реИрдВ)ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рд░реЛрдзрд┐рдпреЛрдВ рдХреА рддрд╛рдХрдд (рдХреМрд╢рд▓, рд░реВрдк) рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рд╡рд╛рдж рд╣реИ: "рдпрджрд┐ рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдордЬрдмреВрдд рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд╣реИ" ("рдХрдордЬреЛрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдирд╣реАрдВ рдЬреАрддрддреЗ")ред рд╕реБрдирдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдиреВрдХрд░ рдореЗрдВ, рдХрд┐рд╕реА рднреА рдЦреЗрд▓ рдореЗрдВ, рдорд╛рдорд▓реЗ рдХреА рднреВрдорд┐рдХрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдпрджрд┐ рдХреЛрдИ рдЦрд┐рд▓рд╛рдбрд╝реА "рдХрдордЬреЛрд░" рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ / рд╡рд╣ рдХрднреА рднреА рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЦрд┐рд▓рд╛рдл рдореИрдЪ рдореЗрдВ "рдордЬрдмреВрдд" рдирд╣реАрдВ рдЬреАрдд рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд░рд┐рд╡рд░реНрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдХреНрд╕рд░ рдХрдо рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдПрд▓реЛ рдореЙрдбрд▓ рджреГрд╢реНрдп рдкрд░ рдЖрддрд╛ рд╣реИред
рдПрд▓реЛ рдореЙрдбрд▓ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдПрдХ рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА рдЧрдИ рд╣реИ рдХрд┐ рджреЛ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЦреЗрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЕрдиреБрдорд╛рди рдЙрдирдХреА рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЙрдЪреНрдЪ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрд░реНрде рд╣реИ "рдордЬрдмреВрдд" (рдЙрдЪреНрдЪ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде) рдЦрд┐рд▓рд╛рдбрд╝реА рдЬреАрддрдиреЗ рдХреА рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ред рдПрд▓реЛ рд░реЗрдЯрд┐рдВрдЧ рд╡рд░реНрддрдорд╛рди "рддрд╛рдХрдд" рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореИрдЪреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рдкреНрд░рдореБрдЦ рджреЛрд╖ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреЗ рджреМрд░рд╛рди рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд░реЗрдЯрд┐рдВрдЧ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕рдХреЗ рдЕрдЪреНрдЫреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдПрд▓реЛ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрднрд╡ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдиреВрдХрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдмрд╛рдзрд╛ рд╣реИ: рдпрд╣ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореИрдЪ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдмреЗрд╢рдХ, рдлреБрдЯрдмреЙрд▓ рдореЗрдВ рдШрд░реЗрд▓реВ рдореИрджрд╛рди рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рд╢рддрд░рдВрдЬ рдореЗрдВ рдкрд╣рд▓реА рдЪрд╛рд▓ (рджреЛрдиреЛрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рд▓рд╛рдн рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реЗрдЯрд┐рдВрдЧ рдЕрдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ) рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдиреВрдХрд░ рдореЗрдВ, рдореИрдЪ "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдПрди" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЦреЗрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ: рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд╣рд▓реЗ рдЬреАрддрддрд╛ рд╣реИ n= fracN+12 рдлреНрд░реЗрдо (рдкрд╛рд░реНрдЯреА)ред рд╣рдо рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ "рдЬрдм рддрдХ" рднреА рдХрд╣реЗрдВрдЧреЗ рдПрди рдЬреАрддред "
рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, 10 рдЬреАрдд (рдПрдХ рдЧрдВрднреАрд░ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреЗ рдлрд╛рдЗрдирд▓) рддрдХ рдПрдХ рдореИрдЪ рдЬреАрддрдирд╛ "рдХрдордЬреЛрд░" рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП 4 рдЬреАрдд (рд╡рд░реНрддрдорд╛рди рдЧреГрд╣ рд░рд╛рд╖реНрдЯреНрд░ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреЗ рдкрд╣рд▓реЗ рджреМрд░) рдХрд╛ рдореИрдЪ рдЬреАрддрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдореЗрд░реЗ рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрдиреВрдХрд░ рдореЗрдВ рдПрд▓реЛ рд░реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЛрдИ рдирдпрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рд╣реИрдВ:
- рд╕реНрдиреВрдХрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ "рдПрд▓реЛ рд▓рд╛рдЗрдХ" ( рдмреНрд░реИрдбрд▓реА - рдЯреЗрд░реА рдореЙрдбрд▓ рдХреА рддрд░рд╣ ) рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдЪрд╛рд░ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдФрд░ "рдЕрдкреЗрдХреНрд╖рд┐рдд" рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░реЗрдЯрд┐рдВрдЧ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрддрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╡рд╛рд▓ рдЙрдард╛рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдлрд╝реНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рддрд╛рдХрдд рдореЗрдВ рдЕрдзрд┐рдХ рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрд░реВ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреЛрдИ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╕реНрдиреВрдХрд░ рдореЗрдВ, рдореИрдЪ рдЬреАрддрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп "рдмрд╕" рд╣реИ, рдЕрд░реНрдерд╛рддред рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕реЗ рдкрд╣рд▓реЗ рдлреНрд░реЗрдо рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЬреАрддреЗрдВред
- рдпрд╣ рдЪрд░реНрдЪрд╛ рдмреБрдирд┐рдпрд╛рджреА рдПрд▓реЛ рдореЙрдбрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдордВрдЪ рдкрд░ рд╣реИ ред
- рдпрд╣ рдФрд░ рдпреЗ рд╢реМрдХрд┐рдпрд╛ рд╕реНрдиреВрдХрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реИрдВ ред
- рд╢рд╛рдпрдж рдЕрдиреНрдп рдХрд╛рдо рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рдЖрдПред рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрд┐рд╕реА рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред
рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди
рдпрд╣ рд▓реЗрдЦ рдЖрд░ рднрд╛рд╖рд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдЬреЛ рдПрд▓реЛ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдФрд░ рд╕реНрдиреВрдХрд░ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рд╕рднреА рдкреНрд░рдпреЛрдЧ рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдХреЛрдб рдХреЛ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рдЫрд┐рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдФрд░ tidyverse рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдЖрд░ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддреБрдд рд╕рднреА рдХреЛрдб рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдлрд╛рдЗрд▓ рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ ред
рд▓реЗрдЦ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдореЙрдбрд▓ рдЕрдиреБрднрд╛рдЧ рдЖрд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрд▓реЛ рдФрд░ рдПрд▓реЛрдмреЗрдЯ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
- рдкреНрд░рдпреЛрдЧ рдЕрдиреБрднрд╛рдЧ рдЧрдгрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ: рдХреНрдпрд╛ рдбреЗрдЯрд╛ рдФрд░ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдХреНрдпреЛрдВ), рдФрд░ рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
- рдПрд▓реЛрдмреЗрдЯ рд░реИрдВрдХрд┐рдВрдЧ рдЕрдзреНрдпрдпрди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдиреВрдХрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред рд╡рд╣ рд╕реНрдиреВрдХрд░ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗред
рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЛрдб# suppressPackageStartupMessages(library(dplyr)) library(tidyr) library(purrr) # library(ggplot2) # suppressPackageStartupMessages(library(comperank)) theme_set(theme_bw()) # . . set.seed(20180703)
рдЖрджрд░реНрд╢
рджреЛрдиреЛрдВ рдореЙрдбрд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдиреНрдпрддрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ:
- рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ "рд╕рдмрд╕реЗ рдордЬрдмреВрдд" (рдкрд╣рд▓реА рдЬрдЧрд╣) рд╕реЗ "рд╕рдмрд╕реЗ рдХрдордЬреЛрд░" (рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди) рдкрд░ рд░реИрдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдЦрд┐рд▓рд╛рдбрд╝реА рд╕рдВрдШ рджреНрд╡рд╛рд░рд╛ рд░реИрдВрдХрд┐рдВрдЧ рдореИрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде ri : рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА "рддрд╛рдХрдд" (рдПрдХ рдЙрдЪреНрдЪ рдореВрд▓реНрдп рдХрд╛ рдЕрд░реНрде рдПрдХ рдордЬрдмреВрдд рдЦрд┐рд▓рд╛рдбрд╝реА) рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
- рдореИрдЪ рд╕реЗ рдкрд╣рд▓реЗ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, "рдХрдордЬреЛрд░" рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реЛрдЧреА (рдХрдо рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде)ред
- рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдФрд░ рдЙрд╕рдХреЗ рдкрд╣рд▓реЗ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдПрдХ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА "рдордЬрдмреВрдд" рдкрд░ рдЬреАрдд рдПрдХ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА "рдХрдордЬреЛрд░" рдкрд░ рдЬреАрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдмрдбрд╝реА рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд░ рдХреЗ рд╕рд╛рде, рд╡рд┐рдкрд░реАрдд рд╕рдЪ рд╣реИред
рдПрд▓реЛ
рдПрд▓реЛ рдореЙрдбрд▓ рдХреЛрдб #' @details . #' `...` . #' #' @return , 1 ( `rating1`) #' 2 ( `rating2`). #' . elo_win_prob <- function(rating1, rating2, ksi = 400, ...) { norm_rating_diff <- (rating2 - rating1) / ksi 1 / (1 + 10^norm_rating_diff) } #' @return , #' `comperank::add_iterative_ratings()`. elo_fun_gen <- function(K, ksi = 400) { function(rating1, score1, rating2, score2) { comperank::elo(rating1, score1, rating2, score2, K = K, ksi = ksi)[1, ] } }
рдПрд▓реЛ рдореЙрдбрд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд░реЗрдЯрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ:
рдореИрдЪ рдЬреАрддрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЧрдгрдирд╛ (рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ)ред рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ (рд╣рдо рдЙрд╕реЗ / рдЙрд╕реЗ "рдкрд╣рд▓реЗ" рдХрд╣реЗрдВрдЧреЗ) рдореИрдВ рдФрд░ рд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ ri рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА ("рджреВрд╕рд░рд╛") рдЬ рдФрд░ рд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ rj рдмрд░рд╛рдмрд░реА
Pr(ri,rj)= frac11+10(rjтИТri)/400
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдХреА рдЧрдгрдирд╛ рддреАрд╕рд░реА рдзрд╛рд░рдгрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИред
400 рдХреЗ рдЕрдВрддрд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдирд╛ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдЧрдгрд┐рддреАрдп рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЕрдВрддрд░ рдХреЛ "рдмрдбрд╝рд╛" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдирдВрдмрд░ рдХреЛ рдореЙрдбрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред xi рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХреЗрд╡рд▓ рднрд╡рд┐рд╖реНрдп рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдмреЗрдорд╛рдиреА рд╣реИред 400 рдХрд╛ рдорд╛рди рдХрд╛рдлреА рдорд╛рдирдХ рд╣реИред
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИ L(rjтИТri) рдЬрд╣рд╛рдБ L(x) 0 рд╕реЗ 1. рдорд╛рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдЦреНрддреА рд╕реЗ рдмрдврд╝рддреЗ рдХрд╛рд░реНрдпред рд╣рдо рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХ рд╡рдХреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рдЕрдзреНрдпрдпрди рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдЪ рдкрд░рд┐рдгрд╛рдо рдЧрдгрдирд╛ рдПрд╕ ред рдмреЗрд╕ рдореЙрдбрд▓ рдореЗрдВ, рдпрд╣ рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЬреАрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ 1 (рджреВрд╕рд░реЗ рдХреА рд╣рд╛рд░) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдбреНрд░реЙ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ 0.5 рдФрд░ рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╣рд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ 0 рд╣реИ (рджреВрд╕рд░реЗ рдХреА рдЬреАрдд)ред
рд░реЗрдЯрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ :
- delta=K cdot(SтИТPr(ri,rj)) ред рдпрд╣ рд╡рд╣ рд░рд╛рд╢рд┐ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд░реЗрдЯрд┐рдВрдЧ рдмрджрд▓ рдЬрд╛рдПрдЧреАред рд╡рд╣ рдПрдХ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ K (рдореЙрдбрд▓ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░)ред рдХрдо K (рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рд╕рд╛рде) рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ - рдореЙрдбрд▓ рдЕрдзрд┐рдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реИ, рдЕрд░реНрдерд╛рддреНред рддрд╛рдХрдд рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЛ "рд╕рд╛рдмрд┐рдд" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬреАрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЕрдзрд┐рдХ K рд╡рд░реНрддрдорд╛рди рд░реЗрдЯрд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рд╛рд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИред "рдЗрд╖реНрдЯрддрдо" рдХрд╛ рд╡рд┐рдХрд▓реНрдк K рдПрдХ "рдЕрдЪреНрдЫрд╛" рд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ ред
- r(new)i=ri+ delta ред r(new)j=rjтИТ delta ред
рдЯрд┐рдкреНрдкрдгреА :
- рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкрдбреЗрдЯ рдлрд╝рд╛рд░реНрдореБрд▓реЛрдВ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рднреА рдорд╛рдиреЗ рдЧрдП рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХрд╛ рдпреЛрдЧ рд╕рдордп рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ: рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреА рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдХрдореА рдХреЗ рдХрд╛рд░рдг рд░реЗрдЯрд┐рдВрдЧ рдмрдврд╝рддреА рд╣реИ
- рдмрд┐рдирд╛ рдЦреЗрд▓реЗ рдореИрдЪ рдЦреЗрд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА 0. рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, 1500 рдпрд╛ 1000 рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╢реВрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рд░реЗрдЯрд┐рдВрдЧ рдХрд╛ рдпреЛрдЧ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рд╕реБрдВрджрд░ рд╣реЛрддрд╛ рд╣реИред
- рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА "рддрд╛рдХрдд" рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореИрдЪ рдЦреЗрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ: рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рдЦрд┐рд▓рд╛рдбрд╝реА 0 рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╢рд╛рдпрдж рд╡рд░реНрддрдорд╛рди рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, "рдирд╡рд╛рдЧрдВрддреБрдХреЛрдВ" рдХреЛ рдХреБрдЫ рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рдЕрдзрд┐рдХ рдордЬрдмреВрдд" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдирдП рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп рдЖрдк рдмрд╛рд╣рд░реА рд░реЗрдЯрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рд╕реЗ рд▓рдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреНрдпреЛрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ? рд░реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрд▓реНрдЯрд╛ рд╣рдореЗрд╢рд╛ рдмрд░рд╛рдмрд░реА рдХрд░рддрд╛ рд╣реИ 0.5 cdotK ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ ri=0 рдФрд░ rj=400 ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ frac11+10 рд▓рдЧрднрдЧ0.0909 , рдпрд╛рдиреАред рд╡рд╣ 11 рдореЗрдВ рд╕реЗ 1 рдореИрдЪ рдЬреАрддреЗрдЧрд╛ред
- рдЬреАрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрд╕реЗ рд▓рдЧрднрдЧ рд╡реГрджреНрдзрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА 0.909 cdotK , рдЬреЛ рд░реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред
- рд╣рд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрд╕реЗ рд▓рдЧрднрдЧ рдХрдореА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА 0.0909 cdotK , рдЬреЛ рд░реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдо рд╣реИред
рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдПрд▓реЛ рдореЙрдбрд▓ рдкрд╛рдВрдЪрд╡реАрдВ рдзрд╛рд░рдгрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ: рдПрдХ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдкрд░ рдЬреАрдд "рдордЬрдмреВрдд" рд╣реЛрддреА рд╣реИ рдФрд░ рд╕рд╛рде рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдкрд░ рдЬреАрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдмрдбрд╝реА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ "рдХрдордЬреЛрд░", рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
рдмреЗрд╢рдХ, рдПрд▓реЛ рдореЙрдбрд▓ рдХреА рдЕрдкрдиреА (рдмрд▓реНрдХрд┐ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп) рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ: рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдореИрдЪ рдПрдХ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдореИрдЪ рдХреА рджреВрд░реА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ: 4 рдЬреАрдд рддрдХ рдХреЗ рдореИрдЪ рдореЗрдВ рдЬреАрдд рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдорд┐рд▓рддреА рд╣реИ, рдЬреИрд╕реЗ 10 рдЬреАрдд рддрдХ рдХреЗ рдореИрдЪ рдореЗрдВ рдЬреАрддред рдпрд╣рд╛рдВ рдордВрдЪ рдореЙрдбрд▓ рдПрд▓реЛрдмреЗрдЯрд╛ рдЖрддрд╛ рд╣реИред
EloBeta
рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдХреЛрдб #' @details . #' #' @return , 1 ( `rating1`) #' 2 ( `rating2`). `frames_to_win` #' . #' . elobeta_win_prob <- function(rating1, rating2, frames_to_win, ksi = 400, ...) { prob_frame <- elo_win_prob(rating1 = rating1, rating2 = rating2, ksi = ksi) # , `frames_to_win` # # (`prob_frame`). . pbeta(prob_frame, frames_to_win, frames_to_win) } #' @return : 1 / #' (), 0.5 0 / (). get_match_result <- function(score1, score2) { # () , . near_score <- dplyr::near(score1, score2) dplyr::if_else(near_score, 0.5, as.numeric(score1 > score2)) } #' @return , #' `add_iterative_ratings()`. elobeta_fun_gen <- function(K, ksi = 400) { function(rating1, score1, rating2, score2) { prob_win <- elobeta_win_prob( rating1 = rating1, rating2 = rating2, frames_to_win = pmax(score1, score2), ksi = ksi ) match_result <- get_match_result(score1, score2) delta <- K * (match_result - prob_win) c(rating1 + delta, rating2 - delta) } }
рдПрд▓реЛ рдореЙрдбрд▓ рдореЗрдВ, рд░реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЕрдВрддрд░ рд╕реАрдзреЗ рдкреВрд░реЗ рдореИрдЪ рдХреЛ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рдХрд╛ рд╕реАрдзрд╛ рдкреНрд░рднрд╛рд╡ рд╣реИ рдФрд░ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рд╕реНрдкрд╖реНрдЯ рдЧрдгрдирд╛ рд╣реИ рдПрди рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕реЗ рдкрд╣рд▓реЗ рдлреНрд░реЗрдо ред
рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: рдРрд╕реА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдирд╛рдо рд╣реИ - рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ (рдЕрдВрдХреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛)ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдкреНрд░рд╕реНрддреБрддрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрдВрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ:
P(n,n)= sum limit2nтИТ1j=n2nтИТ1 jpj(1тИТp)2nтИТ1тИТj
рдпрд╣рд╛рдВ рдкреА(рдПрди,рдПрди) - рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдореИрдЪ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдПрди рдЬреАрдд; рдкреА - рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдЙрд╕рдХреА / рдЙрд╕рдХреА рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ (рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдореЗрдВ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ 1тИТрдкреА )ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдЪ рдХреЗ рднреАрддрд░ рдлреНрд░реЗрдо рдкрд░рд┐рдгрд╛рдо рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ ред рдпрд╣ рд╕рдВрджреЗрд╣ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдзрд╛рд░рдгрд╛ рд╣реИред
рдХреНрдпрд╛ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рдЬрд╡рд╛рдм рд╣рд╛рдВ рд╣реИред рд╕реВрддреНрд░ рд░реВрдкрд╛рдВрддрд░рдг, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдЦреЛрдЬреЛрдВ рдХреЗ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкреВрд░реНрдг рдмреАрдЯрд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдкрддреНрддрд┐ рдорд┐рд▓реА Ix(рдП,рдмреА) ред рд╕реНрдерд╛рдирд╛рдкрдиреНрди m=k, n=2kтИТ1 рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдФрд░ рдЬрдЧрд╣ k рдкрд░ рдПрди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ P(n,n)=Ip(n,n) ред
рдЖрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ Ip(n,n) pbeta(p, n, n)
рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдиреЛрдЯ : рдореЗрдВ рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рдПрди рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдХреЗ рдЬреАрддрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлреНрд░реЗрдо рдПрдо рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ Ip(n,m) рдФрд░ pbeta(p, n, m)
рдХреНрд░рдорд╢рдГред рдпрд╣ рдореИрдЪ рдХреЗ рджреМрд░рд╛рди рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдорд╣рд╛рди рдЕрд╡рд╕рд░реЛрдВ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИред
рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд░реЗрдЯрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рдореНрди рд░реВрдк рд╣реИрдВ (рдЬреНрдЮрд╛рдд рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде ri рдФрд░ rj рдЬреАрддрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдлрд╝реНрд░реЗрдореЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрди рдФрд░ рдореИрдЪ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдПрд╕ , рдПрд▓реЛ рдореЙрдбрд▓ рдореЗрдВ):
- рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЧрдгрдирд╛ : p=Pr(ri,rj)= frac11+10(rjтИТri)/400 ред
- рдореИрдЪ рдореЗрдВ рдЗрд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЬреАрдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЧрдгрдирд╛ : PrрдмреАрдЯрд╛(ri,rj)=Ip(n,n) ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдкреА 0.4 рдХреЗ рдмрд░рд╛рдмрд░, рдлрд┐рд░ 4 рдЬреАрдд рд╕реЗ рдкрд╣рд▓реЗ рдореИрдЪ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 0.29 рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ "18 рдЬреАрдд рдореЗрдВ" - 0.11 рддрдХред
- рд░реЗрдЯрд┐рдВрдЧ рдЕрдкрдбреЗрдЯ :
- delta=K cdot(SтИТPrBeta(ri,rj)) ред
- r(new)i=ri+ delta ред r(new)j=rjтИТ delta ред
рдиреЛрдЯ : рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рд╕реАрдзреЗ рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреВрд░реЗ рдореИрдЪ рдореЗрдВ рдирд╣реАрдВ, рдПрдХ рдХрдо рдЗрд╖реНрдЯрддрдо рдЧреБрдгрд╛рдВрдХ рдореВрд▓реНрдп рдХреА рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП K : рдореВрд▓реНрдп рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдбреЗрд▓реНрдЯрд╛ рдПрдХ рдордЬрдмреВрдд рдкреНрд░рднрд╛рд╡ рд╕реЗ рдЖрддрд╛ рд╣реИ PrрдмреАрдЯрд╛(ri,rj) ред
рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдореИрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рдирдпрд╛ рдирд╣реАрдВ рд╣реИред рдлреНрд░рд╛рдВрдХреЛрдЗрд╕ рд▓рд╛рдмреЗрд▓реЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╕рд╛рдЗрдЯ рдкрд░, рдЖрдк "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда" рдЬреАрддрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧрдгрдирд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдПрди "рдореИрдЪ, рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рдеред рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рд╣рдорд╛рд░реА рдЧрдгрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрд▓реЛ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреЛрдИ рд╕реНрд░реЛрдд рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдХреА рдХрд┐рд╕реА рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред
рдореИрдВ рдмреИрдХрдЧреИрдореМрди рдЧреЗрдо рд╕рд░реНрд╡рд░ (FIBS) рдкрд░ рдХреЗрд╡рд▓ рдПрд▓реЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЗрд╕ рд▓реЗрдЦ рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдПрдХ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рднреА рд╣реИ ред рдпрд╣рд╛рдВ, рдореИрдЪ рджреВрд░реА рдХреЗ рд╡рд░реНрдЧрдореВрд▓ рджреНрд╡рд╛рд░рд╛ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдореИрдЪ рдЕрд╡рдзрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдФрдЪрд┐рддреНрдп рдирд╣реАрдВ рд╣реИред
рдПрдХ рдкреНрд░рдпреЛрдЧ
рдПрдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рдХрдИ рд▓рдХреНрд╖реНрдп рд╣реИрдВред рд╕реНрдиреВрдХрд░ рдореИрдЪреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░:
- рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЧреБрдгрд╛рдВрдХ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ K рджреЛрдиреЛрдВ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдПред
- рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдореЙрдбрд▓ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ред
- рд░реЗрдЯрд┐рдВрдЧ рдкрд░ "рдирд┐рдордВрддреНрд░рдг" рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- рд╕рднреА рдкреЗрд╢реЗрд╡рд░ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП 2017/18 рд╕реАрдЬрд╝рди рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд░реЗрдЯрд┐рдВрдЧ рдЗрддрд┐рд╣рд╛рд╕ рдмрдирд╛рдПрдВред
рдбреЗрдЯрд╛
рдкреНрд░рдпреЛрдЧ рдбреЗрдЯрд╛ рдЬрдирд░реЗрд╢рди рдХреЛрдб # "train", "validation" "test" split_cases <- function(n, props = c(0.5, 0.25, 0.25)) { breaks <- n * cumsum(head(props, -1)) / sum(props) id_vec <- findInterval(seq_len(n), breaks, left.open = TRUE) + 1 c("train", "validation", "test")[id_vec] } pro_players <- snooker_players %>% filter(status == "pro") # pro_matches_all <- snooker_matches %>% # filter(!walkover1, !walkover2) %>% # semi_join(y = pro_players, by = c(player1Id = "id")) %>% semi_join(y = pro_players, by = c(player2Id = "id")) %>% # 'season' left_join( y = snooker_events %>% select(id, season), by = c(eventId = "id") ) %>% # arrange(endDate) %>% # widecr transmute( game = seq_len(n()), player1 = player1Id, score1, player2 = player2Id, score2, matchId = id, endDate, eventId, season, # ("train", "validation" "test") # 50/25/25 matchType = split_cases(n()) ) %>% # widecr as_widecr() # (, # , Championship League). pro_matches_off <- pro_matches_all %>% anti_join( y = snooker_events %>% filter(type == "Invitational"), by = c(eventId = "id") ) # get_split <- . %>% count(matchType) %>% mutate(share = n / sum(n)) # 50/25/25 (train/validation/test) pro_matches_all %>% get_split() ## # A tibble: 3 x 3 ## matchType n share ## <chr> <int> <dbl> ## 1 test 1030 0.250 ## 2 train 2059 0.5 ## 3 validation 1029 0.250 # , # . , # __ __, `pro_matches_all`. # , __ # __. pro_matches_off %>% get_split() ## # A tibble: 3 x 3 ## matchType n share ## <chr> <int> <dbl> ## 1 test 820 0.225 ## 2 train 1810 0.497 ## 3 validation 1014 0.278 # K k_grid <- 1:100
рд╣рдо рд╕реНрдиреВрдХрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрдореНрдкрд░реНрдХреИрдВрдХ рдкреИрдХреЗрдЬ рд╕реЗ рдХрд░реЗрдВрдЧреЗред рдореВрд▓ рд╕реНрд░реЛрдд snooker.org рд╣реИ ред рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореИрдЪреЛрдВ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ:
- рдпрд╣ рдореИрдЪ 2016/17 рдпрд╛ 2017/18 рд╕реАрдЬрд╝рди рдореЗрдВ рдЦреЗрд▓рд╛ рдЧрдпрд╛ рдерд╛ред
- рдореИрдЪ рдПрдХ "рдкреЗрд╢реЗрд╡рд░" рд╕реНрдиреВрдХрд░ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ , рдЬреЛ рд╣реИ:
- рдпрд╣ "рдЖрдордВрддреНрд░рдг", "рдпреЛрдЧреНрдпрддрд╛", рдпрд╛ "рд░реИрдВрдХрд┐рдВрдЧ" рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИред рд╣рдо рдореИрдЪреЛрдВ рдХреЗ рджреЛ рд╕реЗрдЯреЛрдВ рдХреЛ рднреА рднреЗрдж рдХрд░реЗрдВрдЧреЗ: "рд╕рднреА рдореИрдЪ" (рдЗрди рд╕рднреА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯреЛрдВ рд╕реЗ) рдФрд░ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореИрдЪреЛрдВ" (рдЖрдордВрддреНрд░рдг рдЯреВрд░реНрдирд╛рдореЗрдВрдЯреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред рдЗрд╕рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВ:
- рдЖрдордВрддреНрд░рдг рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдореЗрдВ, рд╕рднреА рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреА рд░реЗрдЯрд┐рдВрдЧ рдмрджрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдпрд╣ рдПрд▓реЛ рдФрд░ рдПрд▓реЛрдмреЗрдЯ рдореЙрдбрд▓ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ "рдЕрдиреНрдпрд╛рдп рдХрд╛ рддрдВрдЬ" рд╣реИред
- рдРрд╕реА рдзрд╛рд░рдгрд╛ рд╣реИ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗрд╡рд▓ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реЗрдЯрд┐рдВрдЧ рдореИрдЪреЛрдВ рдХреЗ рд▓рд┐рдП "рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ"ред рдиреЛрдЯ : рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдордВрддреНрд░рдг рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдЪреИрдореНрдкрд┐рдпрдирд╢рд┐рдк рд▓реАрдЧ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд╣реБрдд рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдирд╣реАрдВ рдкреИрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВред рдЗрди рдЯреВрд░реНрдирд╛рдореЗрдВрдЯреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд░реИрдВрдХрд┐рдВрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред "рдЪреИрдореНрдкрд┐рдпрдирд╢рд┐рдк рд▓реАрдЧ" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдЖрдордВрддреНрд░рдг рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рднреА рд╣реИрдВ: "2016 рдЪреАрди рдЪреИрдВрдкрд┐рдпрдирд╢рд┐рдк", рджреЛрдиреЛрдВ "рдЪреИрдВрдкрд┐рдпрдВрд╕ рдСрдл рдЪреИрдВрдкрд┐рдпрдВрд╕", рджреЛрдиреЛрдВ "рдорд╛рд╕реНрдЯрд░реНрд╕", "2017 рд╣рд╛рдВрдЧрдХрд╛рдВрдЧ рдорд╛рд╕реНрдЯрд░реНрд╕", "2017 рд╡рд░реНрд▓реНрдб рдЧреЗрдореНрд╕", "2017 рд░реЛрдорд╛рдирд┐рдпрд╛рдИ рдорд╛рд╕реНрдЯрд░реНрд╕"ред
- рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ (рдЯреАрдореЛрдВ рдХреЗ рдмреАрдЪ рдирд╣реАрдВ) рдХреЗ рдмреАрдЪ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕реНрдиреВрдХрд░ (6 рд░реЗрдбреНрд╕ рдпрд╛ рдкрд╛рд╡рд░ рд╕реНрдиреВрдХрд░ рдирд╣реАрдВ) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
- рджреЛрдиреЛрдВ рд▓рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рди рдХреЗрд╡рд▓ рдкреБрд░реБрд╖ рдпрд╛ рдорд╣рд┐рд▓рд╛)ред
- рд╕рднреА рдЙрдореНрд░ рдХреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ (рди рдХреЗрд╡рд▓ рд╡рд░рд┐рд╖реНрда рдпрд╛ "21 рд╡рд░реНрд╖ рд╕реЗ рдХрдо")ред
- рдпрд╣ "рд╢реВрдЯ-рдЖрдЙрдЯ" рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдЕрдиреНрдпрдерд╛ snooker.org рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
- рдореИрдЪ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реБрдЖ : рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЛрдиреЛрдВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЦреЗрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред
- рдореИрдЪ рджреЛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА 2017/18 рд╕реАрдЬрд╝рди (131 рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ) рдХреЗ рд▓рд┐рдП рд▓реА рдЧрдИ рд╣реИред рдпрд╣ рдирд┐рд░реНрдгрдп рд╕рдмрд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд▓рдЧрддрд╛ рд╣реИ рд╢реМрдХрд┐рдпрд╛ рд╕реЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреА рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╢реМрдХрд┐рдпрд╛ "рдЕрдВрдзрд╛" рд╡рд╛рд▓реЗ рдореИрдЪреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗред рдЗрд╕рд╕реЗ рдЗрди рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдЕрдиреБрдЪрд┐рдд рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрдгрдп рд░реЗрдЯрд┐рдВрдЧ рдореБрджреНрд░рд╛рд╕реНрдлреАрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдХрд┐ рд╢реМрдХреАрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЦрд╛рддреЗ рдореЗрдВ рд▓реЗрдиреЗ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рдПрдореЗрдЪреНрдпреЛрд░ рдХрд╛ рдПрдХ рд╕рд╛рде рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдЕрдзреНрдпрдпрди рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЕрдиреБрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рдкреЗрд╢реЗрд╡рд░ рд╢реМрдХрд┐рдпрд╛ рдХреА рд╣рд╛рд░ рдХреЛ рд░реЗрдЯрд┐рдВрдЧ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХрд╛ рдиреБрдХрд╕рд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдореИрдЪреЛрдВ рдХреА рдЕрдВрддрд┐рдо рд╕рдВрдЦреНрдпрд╛ "рд╕рднреА рдореИрдЪреЛрдВ" рдХреЗ рд▓рд┐рдП 4118 рдФрд░ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореИрдЪреЛрдВ" рдХреЗ рд▓рд┐рдП 3644 (рдХреНрд░рдорд╢рдГ 62.9 рдФрд░ 55.6 рдкреНрд░рддрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА) рд╣реИред
рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА
рдкреНрд░рдпреЛрдЧ рд╕рдорд╛рд░реЛрд╣ рдХреЛрдб #' @param matches `longcr` `widecr` `matchType` #' ( : "train", "validation" "test"). #' @param test_type . #' #' ("") . , #' `game`. #' @param k_vec K . #' @param rate_fun_gen , K #' `add_iterative_ratings()`. #' @param get_win_prob #' (`rating1`, `rating2`) , #' (`frames_to_win`). ____: #' . #' @param initial_ratings #' `add_iterative_ratings()`. #' #' @details : #' - `matches` #' `game`. #' - `test_type`: #' - 1. #' - : 1 / #' (), 0.5 0 / (). #' - RMSE: , #' "" - . #' #' @return Tibble 'k' K 'goodness' #' RMSE. compute_goodness <- function(matches, test_type, k_vec, rate_fun_gen, get_win_prob, initial_ratings = 0) { cat("\n") map_dfr(k_vec, function(cur_k) { # cat(cur_k, " ") matches %>% arrange(game) %>% add_iterative_ratings( rate_fun = rate_fun_gen(cur_k), initial_ratings = initial_ratings ) %>% left_join(y = matches %>% select(game, matchType), by = "game") %>% filter(matchType %in% test_type) %>% mutate( # framesToWin = pmax(score1, score2), # 1 `framesToWin` winProb = get_win_prob( rating1 = rating1Before, rating2 = rating2Before, frames_to_win = framesToWin ), result = get_match_result(score1, score2), squareError = (result - winProb)^2 ) %>% summarise(goodness = sqrt(mean(squareError))) }) %>% mutate(k = k_vec) %>% select(k, goodness) } #' `compute_goodness()` compute_goodness_wrap <- function(matches_name, test_type, k_vec, rate_fun_gen_name, win_prob_fun_name, initial_ratings = 0) { matches_tbl <- get(matches_name) rate_fun_gen <- get(rate_fun_gen_name) get_win_prob <- get(win_prob_fun_name) compute_goodness( matches_tbl, test_type, k_vec, rate_fun_gen, get_win_prob, initial_ratings ) } #' #' #' @param test_type `test_type` ( ) #' `compute_goodness()`. #' @param rating_type ( ). #' @param data_type . #' @param k_vec,initial_ratings `compute_goodness()`. #' #' @details #' . #' , , #' : #' - "pro_matches_" + `< >` + `< >` . #' - `< >` + "_fun_gen" . #' - `< >` + "_win_prob" , #' . #' #' @return Tibble : #' - __testType__ <chr> : . #' - __ratingType__ <chr> : . #' - __dataType__ <chr> : . #' - __k__ <dbl/int> : K. #' - __goodness__ <dbl> : . do_experiment <- function(test_type = c("validation", "test"), rating_type = c("elo", "elobeta"), data_type = c("all", "off"), k_vec = k_grid, initial_ratings = 0) { crossing( testType = test_type, ratingType = rating_type, dataType = data_type ) %>% mutate( dataName = paste0("pro_matches_", testType, "_", dataType), kVec = rep(list(k_vec), n()), rateFunGenName = paste0(ratingType, "_fun_gen"), winProbFunName = paste0(ratingType, "_win_prob"), initialRatings = rep(list(initial_ratings), n()), experimentData = pmap( list(dataName, testType, kVec, rateFunGenName, winProbFunName, initialRatings), compute_goodness_wrap ) ) %>% unnest(experimentData) %>% select(testType, ratingType, dataType, k, goodness) }
"" K K=1,2,...,100 ред , . :
- K :
- . , .
add_iterative_ratings()
comperank
. " ", .. . - , ( ) , . RMSE ( ) ( ). , RMSE=тИЪ1|T|тИСtтИИT(StтИТPt)2 рдЬрд╣рд╛рдБ T тАФ , |T| тАФ , St тАФ , Pt тАФ ( ). , " " .
- K RMSE . "" , RMSE K ( ). 0.5 ( "" 0.5) .
, : "train" (), "validation" () "test" (). , .. "train"/"validation" , "validation"/"test". 50/25/25 " ". " " " " . : 49.7/27.8/22.5. , , .
:
- : .
- : " " " " ( ". ").
- : "" ( "validation" RMSE "" "train" ) "" ( "test" RMSE "" "train" "validation" ).
рдкрд░рд┐рдгрд╛рдо
pro_matches_validation_all <- pro_matches_all %>% filter(matchType != "test") pro_matches_validation_off <- pro_matches_off %>% filter(matchType != "test") pro_matches_test_all <- pro_matches_all pro_matches_test_off <- pro_matches_off
# experiment_tbl <- do_experiment()
plot_data <- experiment_tbl %>% unite(group, ratingType, dataType) %>% mutate( testType = recode( testType, validation = "", test = "" ), groupName = recode( group, elo_all = ", ", elo_off = ", . ", elobeta_all = ", ", elobeta_off = ", . " ), # groupName = factor(groupName, levels = unique(groupName)) ) compute_optimal_k <- . %>% group_by(testType, groupName) %>% slice(which.min(goodness)) %>% ungroup() compute_k_labels <- . %>% compute_optimal_k() %>% mutate(label = paste0("K = ", k)) %>% group_by(groupName) %>% # K , # . - # . mutate(hjust = - (k == max(k)) * 1.1 + 1.05) %>% ungroup() plot_experiment_results <- function(results_tbl) { ggplot(results_tbl) + geom_hline( yintercept = 0.5, colour = "#AA5555", size = 0.5, linetype = "dotted" ) + geom_line(aes(k, goodness, colour = testType)) + geom_vline( data = compute_optimal_k, mapping = aes(xintercept = k, colour = testType), linetype = "dashed", show.legend = FALSE ) + geom_text( data = compute_k_labels, mapping = aes(k, Inf, label = label, hjust = hjust), vjust = 1.2 ) + facet_wrap(~ groupName) + scale_colour_manual( values = c(`` = "#377EB8", `` = "#FF7F00"), guide = guide_legend(title = "", override.aes = list(size = 4)) ) + labs( x = " K", y = " (RMSE)", title = " ", subtitle = paste0( ' ( ) ', ' .\n', ' K ( ', '"") , .' ) ) + theme(title = element_text(size = 13), strip.text = element_text(size = 12)) } plot_experiment_results(plot_data)

:
- , K , .
- ( "" "" ). , . - "Championship League": 3 .
- RMSE K . , RMSE K "" "". , " " .
- K ( "") , . "", .
- RMSE . 0.5. .
| K | RMSE |
---|
, | 24 | 0.465 |
, . | 29 | 0.455 |
, | 10 | 0.462 |
, . | 11 | 0.453 |
рдХреНрдпреЛрдВрдХрд┐ , K " " ( ) 5: 30, тАФ 10.
, K=30 K=10 . , рдПрди , .
" " ( K=10 )ред - .
-16 2017/18
-16 2017/18 # gather_to_longcr <- function(tbl) { bind_rows( tbl %>% select(-matches("2")) %>% rename_all(funs(gsub("1", "", .))), tbl %>% select(-matches("1")) %>% rename_all(funs(gsub("2", "", .))) ) %>% arrange(game) } # K best_k <- experiment_tbl %>% filter(testType == "test", ratingType == "elobeta", dataType == "off") %>% slice(which.min(goodness)) %>% pull(k) #!!! "" , .. !!! best_k <- round(best_k / 5) * 5 # elobeta_ratings <- rate_iterative( pro_matches_test_off, elobeta_fun_gen(best_k), initial_ratings = 0 ) %>% rename(ratingEloBeta = rating_iterative) %>% arrange(desc(ratingEloBeta)) %>% left_join( y = snooker_players %>% select(id, playerName = name), by = c(player = "id") ) %>% mutate(rankEloBeta = order(ratingEloBeta, decreasing = TRUE)) %>% select(player, playerName, ratingEloBeta, rankEloBeta) elobeta_top16 <- elobeta_ratings %>% filter(rankEloBeta <= 16) %>% mutate( rankChr = formatC(rankEloBeta, width = 2, format = "d", flag = "0"), ratingEloBeta = round(ratingEloBeta, 1) ) official_ratings <- tibble( player = c( 5, 1, 237, 17, 12, 16, 224, 30, 68, 154, 97, 39, 85, 2, 202, 1260 ), rankOff = c( 2, 3, 4, 1, 5, 7, 6, 13, 16, 10, 8, 9, 26, 17, 12, 23 ), ratingOff = c( 905750, 878750, 751525, 1315275, 660250, 543225, 590525, 324587, 303862, 356125, 453875, 416250, 180862, 291025, 332450, 215125 ) )
-16 2017/18 ( snooker.org):
| | | . | . | |
---|
Ronnie O'Sullivan | 1 | 128.8 | 2 | 905 750 | 1 |
Mark J Williams | 2 | 123.4 | 3 | 878 750 | 1 |
John Higgins | 3 | 112.5 | 4 | 751 525 | 1 |
Mark Selby | 4 | 102.4 | 1 | 1 315 275 | -3 |
Judd Trump | 5 | 92.2 | 5 | 660 250 | 0 |
Barry Hawkins | 6 | 83.1 | 7 | 543 225 | 1 |
Ding Junhui | 7 | 82.8 | 6 | 590 525 | -1 |
Stuart Bingham | 8 | 74.3 | 13 | 324 587 | 5 |
Ryan Day | 9 | 71.9 | 16 | 303 862 | 7 |
Neil Robertson | 10 | 70.6 | 10 | 356 125 | 0 |
Shaun Murphy | 11 | 70.1 | 8 | 453 875 | -3 |
Kyren Wilson | 12 | 70.1 | 9 | 416 250 | -3 |
Jack Lisowski | 13 | 68.8 | 26 | 180 862 | 13 |
Stephen Maguire | 14 | 63.7 | 17 | 291 025 | 3 |
Mark Allen | 15 | 63.7 | 12 | 332 450 | -3 |
Yan Bingtao | 16 | 61.6 | 23 | 215 125 | 7 |
:
- тДЦ1 3 . , , ( ).
- "" ( 13 ), ( 7 ).
- 5 . , 6 - WPBSA. , - "" . : , тАФ .
- .
- ( тДЦ11), (тДЦ14) (тДЦ15) -16. "" (тДЦ26), (тДЦ23) (тДЦ17).
. , тДЦ16 (Yan Bingtao) тДЦ1 (Ronnie O'Sullivan) 0.404. 4 0.299, " 10 " тАФ 0.197 18 тАФ 0.125. , .
# seasons_break <- ISOdatetime(2017, 5, 2, 0, 0, 0, tz = "UTC") # elobeta_history <- pro_matches_test_off %>% add_iterative_ratings(elobeta_fun_gen(best_k), initial_ratings = 0) %>% gather_to_longcr() %>% left_join(y = pro_matches_test_off %>% select(game, endDate), by = "game") # plot_all_elobeta_history <- function(history_tbl) { history_tbl %>% mutate(isTop16 = player %in% elobeta_top16$player) %>% ggplot(aes(endDate, ratingAfter, group = player)) + geom_step(data = . %>% filter(!isTop16), colour = "#C2DF9A") + geom_step(data = . %>% filter(isTop16), colour = "#22A01C") + geom_hline(yintercept = 0, colour = "#AAAAAA") + geom_vline( xintercept = seasons_break, linetype = "dotted", colour = "#E41A1C", size = 1 ) + geom_text( x = seasons_break, y = Inf, label = " 2016/17", colour = "#E41A1C", hjust = 1.05, vjust = 1.2 ) + scale_x_datetime(date_labels = "%Y-%m") + labs( x = NULL, y = " ", title = paste0( " -16 2016/17" ), subtitle = paste0( " ", " ." ) ) + theme(title = element_text(size = 13)) } plot_all_elobeta_history(elobeta_history)

-16
-16 # top16_rating_evolution <- elobeta_history %>% # `inner_join` `elobeta_top16` inner_join(y = elobeta_top16 %>% select(-ratingEloBeta), by = "player") %>% # 2017/18 semi_join( y = pro_matches_test_off %>% filter(season == 2017), by = "game" ) %>% mutate(playerLabel = paste(rankChr, playerName)) # plot_top16_elobeta_history <- function(elobeta_history) { ggplot(elobeta_history) + geom_step(aes(endDate, ratingAfter, group = player), colour = "#22A01C") + geom_hline(yintercept = 0, colour = "#AAAAAA") + geom_rug( data = elobeta_top16, mapping = aes(y = ratingEloBeta), sides = "r" ) + facet_wrap(~ playerLabel, nrow = 4, ncol = 4) + scale_x_datetime(date_labels = "%Y-%m") + labs( x = NULL, y = " ", title = " -16 ( 2017/18)", subtitle = paste0( " ' 2017/18.\n", " : 13- ." ) ) + theme(title = element_text(size = 13), strip.text = element_text(size = 12)) } plot_top16_elobeta_history(top16_rating_evolution)

рдирд┐рд╖реНрдХрд░реНрд╖
- " " R :
pbeta(p, n, m)
. - тАФ "best of рдПрди " ( рдПрди ). .
- K=30 K=10 .
- :
sessionInfo() ## R version 3.4.4 (2018-03-15) ## Platform: x86_64-pc-linux-gnu (64-bit) ## Running under: Ubuntu 16.04.4 LTS ## ## Matrix products: default ## BLAS: /usr/lib/openblas-base/libblas.so.3 ## LAPACK: /usr/lib/libopenblasp-r0.2.18.so ## ## locale: ## [1] LC_CTYPE=ru_UA.UTF-8 LC_NUMERIC=C ## [3] LC_TIME=ru_UA.UTF-8 LC_COLLATE=ru_UA.UTF-8 ## [5] LC_MONETARY=ru_UA.UTF-8 LC_MESSAGES=ru_UA.UTF-8 ## [7] LC_PAPER=ru_UA.UTF-8 LC_NAME=C ## [9] LC_ADDRESS=C LC_TELEPHONE=C ## [11] LC_MEASUREMENT=ru_UA.UTF-8 LC_IDENTIFICATION=C ## ## attached base packages: ## [1] stats graphics grDevices utils datasets methods base ## ## other attached packages: ## [1] bindrcpp_0.2.2 comperank_0.1.0 comperes_0.2.0 ggplot2_2.2.1 ## [5] purrr_0.2.5 tidyr_0.8.1 dplyr_0.7.6 ## ## loaded via a namespace (and not attached): ## [1] Rcpp_0.12.17 knitr_1.20 bindr_0.1.1 magrittr_1.5 ## [5] munsell_0.5.0 tidyselect_0.2.4 colorspace_1.3-2 R6_2.2.2 ## [9] rlang_0.2.1 highr_0.7 plyr_1.8.4 stringr_1.3.1 ## [13] tools_3.4.4 grid_3.4.4 gtable_0.2.0 utf8_1.1.4 ## [17] cli_1.0.0 htmltools_0.3.6 lazyeval_0.2.1 yaml_2.1.19 ## [21] assertthat_0.2.0 rprojroot_1.3-2 digest_0.6.15 tibble_1.4.2 ## [25] crayon_1.3.4 glue_1.2.0 evaluate_0.10.1 rmarkdown_1.10 ## [29] labeling_0.3 stringi_1.2.3 compiler_3.4.4 pillar_1.2.3 ## [33] scales_0.5.0 backports_1.1.2 pkgconfig_2.0.1