从零开始学AB测试:基础篇
什么是AB测试?
通俗点理解,AB测试就是比较两个东西好坏的一套方法,这种A和B的比较在我们的生活和人生中非常常见,所以不难理解。具体到AB测试这个概念,它和我们比较哪个梨更大、比较哪个美女更漂亮、比较哪个工作更好之间有什么区别吗? 区别其实非常明显,从以下几个方面不难看出来:
- 领域不同:AB测试的概念是在互联网中被提出来的,所以它有特定的应用领域。
- 标准不同:AB测试需要比较产品的两个不同版本之间的优劣,但是评判要交给用户,不像我们生活中遇到的AB比较,基本都可以“自己拿主意”。
正是因为标准在“用户爸爸”那里,所以这个看起来很简单的AB比较就变得异常复杂。在我这个理科男眼里,凡是跟人有关的东西都更复杂,何况和千千万万人有关的产品。因此,为了比较A和B两个不同版本产品的优劣,AB测试这一套系统的方法被发明出来了。

上图是AB测试的一个直观解释。我们会随机给不同的人群提供两个不同版本的产品,然后通过收集用户反馈的数据进行统计分析,决定出哪个版本的产品更好。相信我们每个人都当过AB测试的小白鼠,细心的你不难在使用微信、抖音、高德、美团这些APP时发现一些端倪。
维基百科上给AB测试下了一个定义:
A/B testing is a way to compare two versions of a single variable, typically by testing a subject's response to variant A against variant B, and determining which of the two variants is more effective.
在我看来这跟啥也没说差不多,就是我上面“通俗理解”的翻译版本。AB测试属于那种一听就懂,一看就明白,一做就抓瞎的事。所以定义和概念不重要,实践才重要。幸运的是,前辈们已经帮我们总结了非常多的经验教训,而我作为知识的搬砖工,将会用几篇文章来和大家一起从零开始学习AB测试。
- 互联网公民第一守则:不要重复造轮子。
- 互联网公民第二守则:参照上一条。
为什么要做AB测试?
AB测试虽然思想简单但是非常有效,看了如下的几个好处你就明白为什么一定要做AB测试了:
- 如果我们人工针对部分用户做调研,很难消除一些外部因素的影响,比如交通、天气、节日,而AB测试可以通过随机分配和对照的方式,有效消除这些影响。
- 如果我们听取专家或研究机构的建议,众所周知,他们很可能出错。用户行为是个很复杂的事,具有潜在性,很多时候用户自己都不知道自己怎么想的,想要什么。
- 让数据说话,而不是听老板的
从零开始学AB测试:基础篇的更多相关文章
- 从零开始学AB测试:躲坑篇
AB测试的原理很简单,只用到了最简单的统计假设检验,但表面的简单通常都隐藏着陷阱,这一点没有经过实践的摸爬滚打是不容易看到的,今天我就把前人已经踩过的坑,一共15个,给大家分享一下.在分享之前,大家脑 ...
- 小白学Docker之基础篇
系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm PS: 以下是个人作为新手小白学习docker的笔记总结 1. docker是什么 百科上的 ...
- 一起学Spring之基础篇
本文主要讲解Spring的基础环境搭建以及演变由来,仅供学习分享使用,如有不足之处,还请指正. 什么是Spring ? Spring是一个开源框架,用来处理业务逻辑层和其他层之间的耦合问题.因此Spr ...
- 【Android Api 翻译1】Android Texting(2)Testing Fundamentals 测试基础篇
Testing Fundamentals The Android testing framework, an integral part of the development environment, ...
- Android Texting(2)Testing Fundamentals 测试基础篇
Testing Fundamentals The Android testing framework, an integral part of the development environment, ...
- Shell编程-条件测试 | 基础篇
什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...
- 小朋友学Linux<一>基础篇
Linux最基础之<小朋友也能学会Linux>... 1.Linux 知识积累: Linux 英文解释为 Linux is not Unix.学习Linux必须要熟练使用的操作系统是Cen ...
- 新年在家学java之基础篇-高级类的特性
继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...
- 新年在家学java之基础篇--循环&数组
因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...
随机推荐
- CodeForces 196B Infinite Maze
Infinite Maze time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- sql-lib闯关11-20关
从第11关开始,我们就进入到了POST注入的世界了. POSTpost是一种数据提交方式,它主要是指数据从客户端提交到服务器端,例如,我们常常使用的用户登录模块.网站的留言板模块等,在这些功能模块中我 ...
- matplotlib命令与格式:参数配置文件与参数配置
转自 https://my.oschina.net/swuly302/blog/94805 自定义matplotlib Created Saturday 08 December 2012 5.1 ma ...
- Django-rest-framework源码分析(三)
APIView(二) 在APIView执行dispatch()方法的时候,它不仅做了分发函数的功能,还进行了一系列的校验. Django的全局校验一般写在中间件中,但是rest_framework于D ...
- Linux时间和现实时间不同步解决方案
输入三条命令 yum install ntpdate -y ntpdate tiger.sina.com.cnping tiger.sina.com.cn 然后输入date检查时间是否已经同步
- [codeforces]Page Numbers <模拟>
描述: «Bersoft» company is working on a new version of its most popular text editor — Bord 2010. Bord, ...
- Face The Right Way POJ - 3276(区间)
Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing forward, li ...
- 人生靠反省,Java靠泛型
昨天有同事问 UserService.XxxService 都会调用 Dao 的 insert.update ... ...,这些重复的代码,有没有办法变得灵活一些? 巧了,和咱们分享的主题刚好碰上, ...
- 百度在PWA中阐述的弹性布局-[CSS]
原文链接 响应式布局 自从进入移动互联网时代,响应式布局这个词经常出现在 Web 设计和开发领域,它让 Web 页面在不同尺寸的设备上都具有良好的浏览体验. 开始之前 在讲解响应式布局之前,需要先了解 ...
- ajax前端传递对象给后端
前端操作如下即可:
- 从零开始学AB测试:躲坑篇