从零开始学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 ...
随机推荐
- angular中$q用法, $q多个promise串行/同步/等待), $q.all用法,使用
$q的基本用法 function fn() { var defer = $q.defer(); setTimeout(function () { console.log(1); defer.resol ...
- 微信小程序分享转发用法大全——自定义分享、全局分享、组合分享
官方提供的自定义分享 使用隐式页面配置函数实现的全局分享-推荐 使用隐式路由实现的全局分享-不推荐,仅供了解隐式路由 前言: 目前微信小程序只开放了页面自定义分享的API,为了能够更灵活的进行分享配置 ...
- python 产生随机数,随机字符串
import randomimport string#随机整数:print random.randint(1,50)#随机选取0到100间的偶数:print random.randrange(0, 1 ...
- iOS 预渲染加速图像显示
使用 UITableView 时,发现滚动时的性能还不错,但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感. 于是猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如 ...
- iOS 静态:动态 Pod
一.静态和动态 在项目中使用 pod 实现模块化,对于子模块和第三类库的导入方式存在两种:静态库.动态库. 当在 podfile 中指定 use_frameworks! 时,子模块和第三方类库将被打包 ...
- 大数据篇:Hive
大数据篇:Hive hive.apache.org Hive是什么? Hive是Facebook开源的用于解决海量结构化日志的数据统计,是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射 ...
- 【cs224w】Lecture 3 - Motif, Graphlet 及 结构性角色
目录 Network Motifs Configuration Model Graphlets How to Find Motifs and Graphlets Structural Roles 转自 ...
- vulnhub~DC-9
首先对于整体的思路,网上有很多的教程,如果国内的不能满足建议‘fanqiang’,Google有很多大佬,各个部分都有详细的说明.但又由于每个人的环境都有所不同,所以会在同样的命令行执行后出现不同的错 ...
- MetaQNN : 与Google同场竞技,MIT提出基于Q-Learning的神经网络搜索 | ICLR 2017
论文提出MetaQNN,基于Q-Learning的神经网络架构搜索,将优化视觉缩小到单层上,相对于Google Brain的NAS方法着眼与整个网络进行优化,虽然准确率差了2-3%,但搜索过程要简单地 ...
- 我去,还在这样读写 excel 这也太低效了吧!
前言 博文地址:https://sourl.cn/SsD3AM 最近读者小 H 给小黑哥发来私信: 小黑哥,最近我在负责公司报表平台开发,需要导出报表到 excel 中.每次使用 POI 开发,都要写 ...
- 从零开始学AB测试:躲坑篇