ABTEST平台建设思路与方案

news2024/10/5 23:29:48

导读

ABTest的作用:

  1. 用ABTEST的结果数据,论证是因为某个业务方案的调整,对产品能力的影响。
  2. ABTEST是一个过程,只是为了证明改动的效果,其最终的阶段一定是对某个方案进行推全结束实验,避免稳定的业务流程还需要依赖ABTEST。

基础概念

AB实验的业务推进过程

  1. 明确实验的目标
  2. 分析实验目标中,包含的变量。确定哪些变量是和实验结果直接相关的,排除掉影响结果的的无关因素
  3. 确定实验过程中,需要观测的指标。制定好对应日志埋点方案、数据分析方案
  4. 确定分流维度,确保和实验目标一致、分流结果足够分散
  5. 按实验目标中涉及的变量,设置实验分组类型、流量比例、实验参数等

实验状态变化

在这里插入图片描述

说明:

  1. 创建流量入口id:按业务,创建对应的流量入口id(entranceId)
  2. 创建中:
    • 新建AB实验,将实验和流量入口进行关联
    • 新增AB实验下的实验分组、分组参数、分组流量、组内指定的实验uid
    • 此时实验还不能被外界访问到
  3. 调试中
    • 调整上一步中,分组内的参数和组内指定的实验uid
    • 此时实验可以被外界访问到
    • 此时不允许调整分组的流量,因为调试阶段调整分组流量没有意义
  4. 运行中
    • 该状态只允许调整组内的流量,但只能调大流量,不能缩减某个分组的流量(因为缩减流量后,会出现某个uid从老方案 >> 新方案 >> 老方案的情况,造成用户体验)
  5. 推全实验:
    • 选择实验中的某个分组,将其设置为该实验的返回值
    • 推全后流量将被释放到entranceId中的空闲流量

实验类型介绍

   可将实验分为 互斥流量实验正交流量实验,分别对应下图中的实验1和实验2。
在这里插入图片描述

实验类型比较:

实验类型一句话特点介绍优点缺点
互斥流量实验(随机实验)将流量随机的分配到某个组上进行实验1.请求只会获得到一个组的结果 2. 可认为是只有一层的正交流量实验1. 实验简单,在做数据分析时,只需要对比所有互斥实验即可1.由于组之间流量互斥,100的流量所分的组是有限的。 2. 若所有运行中实验把流量占满后, 将无法在同一个流量入口下再新增实验,将影响业务的AB推进
正交流量实验用更少的实验,测试更多的因素,并保证各个因素间的独立性1. 流量会经过每个层级的实验。向下传递时,流量会被再次打散到实验内的组上1. 可以不断的添加正交实验1. 不同层级的实验,在统计最后的结果时,比较复杂

实验分组、流量划分关系图

以多个正交实验类型为列:
在这里插入图片描述
说明:

  1. 推全的实验A,占用的流量会被释放出来,但不是删除实验,推全分组的值,会被作为该流量入口的必须返回值

AB时的常见问题

一、 分流维度:

   对业务做AB实验时,需要对分流的维度思考清楚。要避免因为分流维度的问题,导致对最后的数据分析产生影响。如以下一些AB场景:

  1. 在统一支付场景下,需要在PC端验证不同钱包展示页面,对支付成功率的影响
  2. 验证在h5场景下,不同的拉端方案(保拉端:尽量尝试将钱包APP拉起、保支付:提供给用户选择支付的方式)对支付成功率的影响

两个方案中,均使用前端生成的浏览器唯一标识来分流,让分流结果更分散

二、分流算法:
   最简单的分流算法,取模+概率对比完成分流,但这种场景下,需要被取模数一定要随机。

   另外一种随机算法,MurmurHash算法,计算出的hash值更加分散,取模后更加符合随机性。

实验数据分析

   需要对平台内部,建设通用的实验基础数据分析模型和流程。若需要借助其他应用的数据结合分析,需要建设对应的数据分析平台能力。

   数据分析需要Case By Case 的去看,这里不做过多的介绍和研究。

Q:

  1. AB解决了什么问题?
    • 用ABTEST的结果数据,论证业务方案的调整,对产品能力的影响。
  2. 能对业务带来什么样产值?
    • 用来自实际市场的实验数据,证明业务方案调整的意义,确保业务调整方向是符合市场、产品心智的。
  3. 平台和业务的产出,有没有形成闭环?
    • 通过数据分析,得出实验结果,引导PD调整业务方案,助力业务发展。

MurmurHash3算法介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/477070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32的位带操作

STM32的位带操作 为什么需要位带操作&#xff1f; 因为编程需要操作某个bit位来达到我们想要的功能&#xff0c;比如点灯需要操作GPIOA->ODR 的某个bit假设是第2bit&#xff0c;写1就可以让GPIO输出一个高电平。 GPIOA->ODR | 1<<2;这样写其实有三个隐含的操作…

SpringSecurity-从入门到精通

SpringSecurity从入门到精通 一、简介1.1 官网介绍1.2 认证与授权 二、使用步骤2.1 快速入门2.2 认证流程2.3 相关概念 三、解决问题3.1 思路分析3.2 准备工作3.3 具体实现3.4 加密存储3.5 登录接口3.6 认证过滤器 一、简介 1.1 官网介绍 SpringSecurity 是一个强大且高度自定…

Stable Diffusion-生式AI的新范式

! 扩散模型&#xff08;Stable Diffusion)现在是生成图像的首选模型。由于扩散模型允许我们以提示( prompts)为条件生成图像&#xff0c;我们可以生成我们所选择的图像。在这些文本条件的扩散模型中&#xff0c;稳定扩散模型由于其开源性而最为著名。 在这篇文章中&#xff0…

通用智能的瓶颈及可能的解决途径

通用智能是指能够在各种不同的任务和环境中灵活地适应和执行任务的智能。通用智能与特定任务的智能相反&#xff0c;后者只能在特定领域或任务中表现出色。通用智能的理论基础是人工智能领域的通用人工智能&#xff08;AGI&#xff09;研究&#xff0c;旨在设计出能够像人类一样…

【Java笔试强训 5】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;统计回文…

Zynq-7000、FMQL45T900的GPIO控制(三)---linux管脚编号计算

本文主要对在Linux下使用zynq-7000或者FMQL45T900控制MIO/EMIO 首先内核配置项 如下&#xff0c;这个不用太多关注&#xff0c;一般都是默认打开的 CONFIG_GPIO_SYSFSy CONFIG_SYSVIPCy CONFIG_GPIO_ZYNQy两者的控制都是流程都是一样的&#xff0c;在细节上又区别 首先都在…

Go | 一分钟掌握Go | 9 - 通道

作者&#xff1a;Mars酱 声明&#xff1a;本文章由Mars酱编写&#xff0c;部分内容来源于网络&#xff0c;如有疑问请联系本人。 转载&#xff1a;欢迎转载&#xff0c;转载前先请联系我&#xff01; 前言 在Java中&#xff0c;多线程之间的通信方式有哪些&#xff1f;记得吗&…

浪潮之巅 OpenAI有可能是历史上第一个10万亿美元的公司

淘金时代很像 如果你那个时候去加州淘金&#xff0c;一大堆人会死掉&#xff0c;但是卖勺子的人、卖铲子的人永远可以赚钱。所谓的shove and pick business。 大模型是平台型机会。按照我们几天的判断&#xff0c;以模型为先的平台&#xff0c;将比以信息为先的平台体量更大。…

带你深入学习k8s--(四) 控制器(k8s核心)

目录 一、概念 1、什么是控制器 2、控制器执行流程 3、控制器类型 二、控制器的使用 1、ReplicaSet 2、Deployment 1、版本迭代 2、回滚 3、修改滚动更新策略 4、暂停与恢复 3、daemonset 4、job 5、cronjob 前言&#xff1a; 上一章我们说到&#xff0c;pod有…

C++——入门基础知识

0.关注博主有更多知识 C知识合集 目录 1.命名空间 1.1命名空间的定义 1.2命名空间的使用 1.3命名空间定义的补充 2.输入与输出 3.缺省参数 3.1全缺省参数 3.2半缺省参数 3.3缺省参数的补充 4.函数重载 4.1C为什么支持函数重载&#xff1f; &#xff15;.引用 5.…

Wine运行器3.2.1——Windows虚拟机模块支持非X86架构

不写太多啥了&#xff0c;详细介绍看这里就行&#xff1a;https://bbs.deepin.org/post/248098 更新内容 ※1、Windows 虚拟机安装工具支持非 X86 架构&#xff1b; ※2、应用打包器可以与星火应用商店配合构建 arm/all 全架构的 Wine 包&#xff1b; ※3、Windows 虚拟机安装…

【MATLAB图像处理实用案例详解(12)】——基于纹理特征的指纹识别方法

目录 一、指纹图像预处理1.1 图像对比度增强1.2 图像二值化1.3 图像滤波 二、指纹图像特征提取 指纹识别系统主要涉及4个步骤&#xff1a;指纹图像采集、图像预处理、特征提取、特征匹配。一开始&#xff0c;通过指纹读取设备取得图像&#xff0c;并对原始图像进行初步处理&…

《斯坦福数据挖掘教程·第三版》读书笔记(英文版) Chapter 2 MapReduce and the New Software Stack

来源&#xff1a;《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 2 MapReduce and the New Software Stack Computing cluster means large collections of commodity hardware, including conventional processors (“compute nodes”) connected by Ethernet …

学习HCIP的day.03

目录 OSPF&#xff1a;开放式最短路径优先协议 OSPF的数据包 -- 5种 OSPF的状态机 OSPF的工作过程 OSPF的基础配置 关于OSPF协议从邻居建立成为邻接的条件 OSPF的接口网络类型 OSPF&#xff1a;开放式最短路径优先协议 无类别链路状态型IGP协议&#xff1b;由于其基于拓…

golang Gin实现websocket

golang使用 Gin实现 websocket&#xff0c;这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下&#xff0c;新建项目文件夹 go-gin-websocket 进入项目文件夹&#xff0c;打开cmd窗口&#xff0c;在项目&#xff08;go-gin-websocket&a…

【Git 入门教程】第九节、Git的最佳实践

Git是一个强大的版本控制系统&#xff0c;可以帮助开发者管理和协调代码库。然而&#xff0c;正确使用Git并不总是容易。本文将介绍一些Git的最佳实践&#xff0c;以帮助开发者更好地利用Git来管理和协调代码库。 一、编写有意义的提交信息 在使用Git时&#xff0c;编写有意义…

Python编程IDE的选择

Python环境安装之后&#xff0c;接下来就是选择编写Python程序的编辑器了&#xff0c;这里就给大家推荐几种Python编辑器&#xff0c;我们简称这些编辑器为IDE。好的编程IDE可以提高编写代码效率&#xff0c;那咱话不多说&#xff0c;直接开始推荐&#xff01; IDLE 首先&…

有人USR-M100边缘主动上报电流数据到TCP服务器

前两天跟强哥配置了有人的USR-M100模块&#xff0c;实现了采集的电流信号主动上报服务器的功能&#xff0c;昨天去第一污水厂配置了1台、第二污水厂配置了5台、第三污水厂配置了1台&#xff0c;能够将数据上报到甲方的云平台&#xff0c;这里记录一下配置过程&#xff0c;方便以…

推荐4款免费好用的chatGPT平台

1 ShellGPT 这是一款出色的客户端&#xff0c;无需APIkey和科学上网即可访问chatGPT3.5以及绘画AI。项目的github地址如下&#xff1a;https://github.com/akl7777777/free-chatgpt-client-pub/&#xff0c;可在主页下载windows、linux和macOS的安装包&#xff0c;安装后即可使…

力扣刷题2023-04-30-1——题目:剑指 Offer II 007. 数组中和为 0 的三个数

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复…