融合ELO机制的销售能力评估方案

2023-10-14 10:30

本文主要是介绍融合ELO机制的销售能力评估方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ELO排位赛算法


文章目录

  • ELO排位赛算法
  • 一. ELO机制
  • 二. 销售能力抽象为ELO排位赛设计
      • 2.1 基础设计
      • 2.2 存在问题
  • 三. 优化措施
    • 3.1 如何解决新销售存在冷启动问题
        • 新老人动态K值调整
        • 假设检验衡量赢的程度
    • 3.2 如何解决转化率存在不置信的问题
    • ELO升级为MultiELO


一. ELO机制

    ELO等级分制度是由匈牙利裔美国物理学家Elo创建的一个衡量各类对弈活动选手水平的评分方法,是当今对弈水平评估的公认的权威方法。被广泛应用于国际象棋、围棋、足球等运动,以及很多网游与电子竞技产业。游戏界比较著名的应用有: WOW(魔兽世界)、DOTA、LOL。

    ELO计算方法:

Ra:A玩家当前的积分
Rb:B玩家当前的积分
Sa:实际胜负值,胜=1,平=0.5,负=0
Ea:预期A选手的胜负值: E a = 1 1 + 1 0 R b − R a D Ea=\frac{1}{1+10^{\frac{R_b-R_a}{D}}} Ea=1+10DRbRa1
Eb:预期B选手的胜负值: E b = 1 1 + 1 0 R a − R b D Eb=\frac{1}{1+10^{\frac{R_a-R_b}{D}}} Eb=1+10DRaRb1

因为E值也为预估,则Ea+ Eb=1
R’a=Ra+K(Sa-Ea),
其中默认K=32, D=400,均为超参

二. 销售能力抽象为ELO排位赛设计

2.1 基础设计

假如一共有ABCDE个销售,每个人基础分数1500分, 新销售加入也是基础分数1500分
结算周期:1day(假如1day代表1期)
在这里插入图片描述
配置赛季初为:2021-06-01,所有销售初始分均为1500分
在这里插入图片描述

2.2 存在问题

问题1:新销售存在冷启动问题;

问题2:转化率存在不置信的问题,例如极端情况,新销售分配了2单,成交了一单,转化率为50%;

问题3:比赛周期固定,导致销售相对能力不稳定,例如比赛周期设定的短,分配量不足,转化率不置信;比赛周期长,销售受休假调整,生活变故等因素,转化率仍存在波动。

问题4:销售之间的多人竞技若视为两两对抗,将会导致赛季表现优异者一赢通赢,分数爆炸增长,而赛季表现差者,一输皆输,分数剧烈下滑。

问题5:没有考虑胜负程度,例如转化率3.5%的销售胜出转化率3.4%的销售,与3.5%胜出1.5%的奖惩是一样的。

三. 优化措施

3.1 如何解决新销售存在冷启动问题

新老人动态K值调整

目标:解决问题1,新人加入,期望分数快速收敛

若销售参赛时间<=9个赛日(45-63days): K=36
若销售参赛时间>9个赛日: K=64
若销售第一次参赛:K=28
auc:0.528 -> 0.532

假设检验衡量赢的程度

目标:解决问题5

● 假设检验法(TODO),如z_检验 -> 用于判断两组均值(即转化率)是否存在显著性差异
目前只有聚合后的转化率数据,对于假设检验缺少核心数据
在这里插入图片描述

● 基于二组率样本量估算求得显著性水平法
在这里插入图片描述
原规则,赢:1, 平:0.5, 输:0
若p1>p2,则显著性水平=赢的程度,把赢的程度映射到[0.5-1]区间
若p1<p2, 则显著性水平=输的程度,把输的程度映射到[0-0.5]区间

如p1=0.036, p2=0.031,通过计算得知,显著性水平=0.45(即赢的程度)
k = (1-0.5)/(0.95-0)
映射后的值=0.5+k*显著性水平=0.73

如p1=0.031, p2=0.036,通过计算得知,显著性水平=0.45(即输的程度)
映射后的值=0.5-k*显著性水平=0.26

auc从0.528->0.532

二组率差异性样本量计算

3.2 如何解决转化率存在不置信的问题

ELO升级为MultiELO

    基础ELO对于预期A选手的胜负值为 E a = 1 1 + 1 0 R b − R a D Ea=\frac{1}{1+10^{\frac{R_b-R_a}{D}}} Ea=1+10DRbRa1,这在1v1场景下是没有异议的。但对于多人竞技场景下(n v n),两两选手都会进行一次比赛,那么一共会进行 C n 2 = n ( n − 1 ) 2 C^2_n=\frac{n(n-1)}{2} Cn2=2n(n1)次竞技。

痛点:传统ELO会本轮多人竞技抽象为 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n1)场1v1的胜负,那么导致的结果是,本轮第一名赢了其余所有选手,他本轮的净胜分会迎来爆炸级增长,同样的,本轮最后一名选手输给了其余所有选手,他的净胜分会迎来剧烈下跌(甚至负分)。这样的剧烈波动是我们不想看见的。

MutiELO:

  • 预期分改良

在多人比赛结果基础上,将预期A选手的胜负值进行标准化,如下图所示
在这里插入图片描述

  • 实际胜负值改良

传统实际胜负值为1,0.5和0。
在这里插入图片描述
N:本轮参与比赛的人数
pA: A玩家本轮的排位自然位置(1 for first place, 2 for second, and so on)

举例而言,本轮5名玩家参赛,本轮结束后,根据比赛结果排位,每个对应位置的玩家实际胜负值为[0.4, 0.3, 0.2, 0.1, 0],使用本方法,则认为第一名赢第二名的程度,与第二名赢第三名的程度时一致且公平的。

https://github.com/djcunningham0/multielo

这篇关于融合ELO机制的销售能力评估方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209934

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用