什么是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测试:基础篇的更多相关文章

    1. 从零开始学AB测试:躲坑篇

      AB测试的原理很简单,只用到了最简单的统计假设检验,但表面的简单通常都隐藏着陷阱,这一点没有经过实践的摸爬滚打是不容易看到的,今天我就把前人已经踩过的坑,一共15个,给大家分享一下.在分享之前,大家脑 ...

    2. 小白学Docker之基础篇

      系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm PS: 以下是个人作为新手小白学习docker的笔记总结 1. docker是什么 百科上的 ...

    3. 一起学Spring之基础篇

      本文主要讲解Spring的基础环境搭建以及演变由来,仅供学习分享使用,如有不足之处,还请指正. 什么是Spring ? Spring是一个开源框架,用来处理业务逻辑层和其他层之间的耦合问题.因此Spr ...

    4. 【Android Api 翻译1】Android Texting(2)Testing Fundamentals 测试基础篇

      Testing Fundamentals The Android testing framework, an integral part of the development environment, ...

    5. Android Texting(2)Testing Fundamentals 测试基础篇

      Testing Fundamentals The Android testing framework, an integral part of the development environment, ...

    6. Shell编程-条件测试 | 基础篇

      什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...

    7. 小朋友学Linux<一>基础篇

      Linux最基础之<小朋友也能学会Linux>... 1.Linux 知识积累: Linux 英文解释为 Linux is not Unix.学习Linux必须要熟练使用的操作系统是Cen ...

    8. 新年在家学java之基础篇-高级类的特性

      继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...

    9. 新年在家学java之基础篇--循环&数组

      因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...

    随机推荐

    1. C 2012年笔试题(保)

      1 程序改错 1.1 下面程序段的功能是交换两个字符数组的内容(每个字符串字符数均不超过100)  (8分)   [ 见2012年笔试题1.1] void StrSwap(char *pa,char ...

    2. FaceBook 发布星际争霸最大 AI 数据集

      简介 我们刚发布了最大的星际争霸:Brood War 重播数据集,有 65646 个游戏.完整的数据集经过压缩之后有 365 GB,1535 million 帧,和 496 million 操作动作. ...

    3. TensorFlow系列专题(二):机器学习基础

      欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/ ,学习更多的机器学习.深度学习的知识! 目录: 数据预处理 归一化 标准化 离散化 二值化 哑编码 特征 ...

    4. maven resource filter 说明和配置方法

      <maven> <dependencies> <dependency> ... </dependency> </dependencies> ...

    5. 意外发现PHP另一个显示转换类型 binary

      竟然不知道除了(string)$a之外,还有(binary)$a知道unset可以不加括号,但不知道还有这种写法(unset) 请看lex文件(php-7.1.8) <ST_IN_SCRIPTI ...

    6. [noip2016]组合数问题<dp+杨辉三角>

      题目链接:https://vijos.org/p/2006 当时在考场上只想到了暴力的做法,现在自己看了以后还是没思路,最后看大佬说的杨辉三角才懂这题... 我自己总结了一下,我不能反应出杨辉三角的递 ...

    7. django中设置定时任务

      django中设置定时任务 在django中设置定时任务我们可以借用django-crontab这个第三包来实现 django-crontab只能在linux系统下使用 安装: pip install ...

    8. 数据结构和算法(Golang实现)(30)查找算法-2-3-4树和普通红黑树

      文章首发于 阅读更友好的GitBook. 2-3-4树和普通红黑树 某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较 ...

    9. go 编译protobuf

      D:\project\bin\protoc.exe --plugin=protoc-gen-go=%GOPATH%\bin\protoc-gen-go.exe --go_out=. *.proto 编 ...

    10. 计算机网络篇,基于UDP、TCP的应用层及其端口