标签归档:统计学习

一键收藏自然语言处理学习资源大礼包

虽然知道大多数同学都有资料收藏癖,还是给大家准备一份自然语言处理学习大礼包,其实是之前陆陆续续分享的NLP学习资源,包括自然语言处理、深度学习、机器学习、数学相关的经典课程、书籍和学习笔记,这些资料基本上都是公开渠道可以获得的,整理到一起,方便NLP爱好者收藏把玩。当然,学习的前提依然是”学自然语言处理,其实更应该学好英语“

获取方法很简单,关注AINLP公众号,后台回复关键词:ALL4NLP,一键打包收藏NLP学习资源:

这些自然语言处理相关资源列表如下,欢迎收藏:

相关的资源的过往文章大致介绍如下,不限于下述文章:

斯坦福大学自然语言处理经典入门课程-Dan Jurafsky 和 Chris Manning 教授授课

哥伦比亚大学经典自然语言处理公开课,数学之美中盛赞的柯林斯(Michael Collins)教授授课

认真推荐一份深度学习笔记:简约而不简单

Andrew Ng 老师新推的通俗人工智能课程以及其他相关资料

那些值得推荐和收藏的线性代数学习资源

Philipp Koehn大神的神经网络机器翻译学习资料:NMT Book

凸优化及无约束最优化相关资料

斯坦福大学深度学习自然语言处理课程CS224N 2019 全20个视频分享

自然语言处理经典书籍《Speech and Language Processing》第三版最新版下载(含第二版)

强化学习圣经:《强化学习导论》第二版(附PDF下载)

新书下载 | 面向机器学习的数学(Mathematics for Machine Learning)

Springer面向公众开放正版电子书籍,附65本数学、编程、数据挖掘、数据科学、数据分析、机器学习、深度学习、人工智能相关书籍链接及打包下载

最后,欢迎关注AINLP,回复"all4nlp"获取:

Springer面向公众开放正版电子书籍,附65本数学、编程、数据挖掘、数据科学、数据分析、机器学习、深度学习、人工智能相关书籍链接及打包下载

施普林格(Springer)是世界著名的科技期刊、图书出版公司,这次疫情期间面向公众免费开放了一批社科人文,自然科学等领域的正版电子书籍(据说是400多本),towardsdatascience 上有学者将其中65本机器学习和数据科学以及统计相关的免费教材下载链接整理了出来,我试了一下,无需注册,可以直接下载相关的PDF书籍,相当方便:Springer has released 65 Machine Learning and Data books for free(https://towardsdatascience.com/springer-has-released-65-machine-learning-and-data-books-for-free-961f8181f189)。

看了一下这份书单包括的书籍还是很棒的,包括数学类(多元微积分和几何、计算几何、偏微分、代数、线性代数、线性规划、概率和统计、统计学、统计学习、数学建模等)、编程类(数据结构与算法、Python编程、R语言、编程语言基础、面向对象分析和设计、数据库等)、数据挖掘、数据分析、数据科学、机器学习、人工智能、深度学习、计算机视觉,机器人等相关的电子书,甚至包括如何学习LaTex,远比想象的丰富很多。

这份清单的第一本书籍就是经典的“统计学习基础(ESL,The Elements of Statistical Learning)”, 进入书籍页面后,直接点击“Download PDF” 即可单独下载该书电子版:

Reddit上有网友提供了一个Google Drive的打包下载链接,包括其中64本书籍的PDF打包下载,可以直接下载:

https://www.reddit.com/r/opendirectories/comments/g91u12/google_drive_with_64_books_from_springer_about
https://drive.google.com/drive/folders/1rDJvZsz8EEuVVgZ43pwSvFRRKUo2TIIY

如果还是不方便,可以关注AINLP公众号,回复"sprg"获取百度网盘链接:

这份书籍清单和链接如下,我简单翻译了一下书名,供感兴趣的朋友参考:

The Elements of Statistical Learning(统计学习基础)

Trevor Hastie, Robert Tibshirani, Jerome Friedman

http://link.springer.com/openurl?genre=book&isbn=978-0-387-84858-7

Introductory Time Series with R(时间序列导论-基于R语言讲解)

Paul S.P. Cowpertwait, Andrew V. Metcalfe

http://link.springer.com/openurl?genre=book&isbn=978-0-387-88698-5

A Beginner’s Guide to R(R语言初学者指南)

Alain Zuur, Elena N. Ieno, Erik Meesters

http://link.springer.com/openurl?genre=book&isbn=978-0-387-93837-0

Introduction to Evolutionary Computing(进化计算导论)

A.E. Eiben, J.E. Smith

http://link.springer.com/openurl?genre=book&isbn=978-3-662-44874-8

Data Analysis(数据分析)

Siegmund Brandt

http://link.springer.com/openurl?genre=book&isbn=978-3-319-03762-2

Linear and Nonlinear Programming(线性和非线性规划)

David G. Luenberger, Yinyu Ye

http://link.springer.com/openurl?genre=book&isbn=978-3-319-18842-3

Introduction to Partial Differential Equations(偏微分方程简介)

David Borthwick

http://link.springer.com/openurl?genre=book&isbn=978-3-319-48936-0

Fundamentals of Robotic Mechanical Systems(机器人机械系统基础)

Jorge Angeles

http://link.springer.com/openurl?genre=book&isbn=978-3-319-01851-5

Data Structures and Algorithms with Python(Python数据结构和算法)

Kent D. Lee, Steve Hubbard

http://link.springer.com/openurl?genre=book&isbn=978-3-319-13072-9

Introduction to Partial Differential Equations(偏微分方程简介)

Peter J. Olver

http://link.springer.com/openurl?genre=book&isbn=978-3-319-02099-0

Methods of Mathematical Modelling(数学建模方法)

Thomas Witelski, Mark Bowen

http://link.springer.com/openurl?genre=book&isbn=978-3-319-23042-9

LaTeX in 24 Hours(24小时掌握LaTeX)

Dilip Datta

http://link.springer.com/openurl?genre=book&isbn=978-3-319-47831-9

Introduction to Statistics and Data Analysis(统计与数据分析导论)

Christian Heumann, Michael Schomaker, Shalabh

http://link.springer.com/openurl?genre=book&isbn=978-3-319-46162-5

Principles of Data Mining(数据挖掘原理)

Max Bramer

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-7307-6

Computer Vision(计算机视觉)

Richard Szeliski

http://link.springer.com/openurl?genre=book&isbn=978-1-84882-935-0

Data Mining(数据挖掘)

Charu C. Aggarwal

http://link.springer.com/openurl?genre=book&isbn=978-3-319-14142-8

Computational Geometry(计算几何)

Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars

http://link.springer.com/openurl?genre=book&isbn=978-3-540-77974-2

Robotics, Vision and Control(机器人,视觉与控制)

Peter Corke

http://link.springer.com/openurl?genre=book&isbn=978-3-319-54413-7

Statistical Analysis and Data Display(统计分析和数据展示)

Richard M. Heiberger, Burt Holland

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-2122-5

Statistics and Data Analysis for Financial Engineering(金融工程统计与数据分析)

David Ruppert, David S. Matteson

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-2614-5

Stochastic Processes and Calculus(随机过程与微积分)

Uwe Hassler

http://link.springer.com/openurl?genre=book&isbn=978-3-319-23428-1

Statistical Analysis of Clinical Data on a Pocket Calculator(袖珍计算器上的临床数据统计分析)

Ton J. Cleophas, Aeilko H. Zwinderman

http://link.springer.com/openurl?genre=book&isbn=978-94-007-1211-9

Clinical Data Analysis on a Pocket Calculator(袖珍计算器的临床数据分析)

Ton J. Cleophas, Aeilko H. Zwinderman

http://link.springer.com/openurl?genre=book&isbn=978-3-319-27104-0

The Data Science Design Manual(数据科学设计手册)

Steven S. Skiena

http://link.springer.com/openurl?genre=book&isbn=978-3-319-55444-0

An Introduction to Machine Learning(机器学习导论)

Miroslav Kubat

http://link.springer.com/openurl?genre=book&isbn=978-3-319-63913-0

Guide to Discrete Mathematics(离散数学指南)

Gerard O’Regan

http://link.springer.com/openurl?genre=book&isbn=978-3-319-44561-8

Introduction to Time Series and Forecasting(时间序列和预测简介)

Peter J. Brockwell, Richard A. Davis

http://link.springer.com/openurl?genre=book&isbn=978-3-319-29854-2

Multivariate Calculus and Geometry(多元微积分和几何)

Seán Dineen

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-6419-7

Statistics and Analysis of Scientific Data(科学数据统计与分析)

Massimiliano Bonamente

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-6572-4

Modelling Computing Systems(建模计算系统)

Faron Moller, Georg Struth

http://link.springer.com/openurl?genre=book&isbn=978-1-84800-322-4

Search Methodologies(搜索方法论)

Edmund K. Burke, Graham Kendall

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6940-7

Linear Algebra Done Right(线性代数应该这样学)

Sheldon Axler

http://link.springer.com/openurl?genre=book&isbn=978-3-319-11080-6

Linear Algebra(线性代数)

Jörg Liesen, Volker Mehrmann

http://link.springer.com/openurl?genre=book&isbn=978-3-319-24346-7

Algebra(代数)

Serge Lang

http://link.springer.com/openurl?genre=book&isbn=978-1-4613-0041-0

Understanding Analysis(理解分析学)

Stephen Abbott

http://link.springer.com/openurl?genre=book&isbn=978-1-4939-2712-8

Linear Programming(线性规划)

Robert J Vanderbei

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-7630-6

Understanding Statistics Using R(通过R语言学习统计学)

Randall Schumacker, Sara Tomek

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6227-9

An Introduction to Statistical Learning(统计学习导论)

Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-7138-7

Statistical Learning from a Regression Perspective(回归视角的统计学习)

Richard A. Berk

http://link.springer.com/openurl?genre=book&isbn=978-3-319-44048-4

Applied Partial Differential Equations(应用偏微分方程)

J. David Logan

http://link.springer.com/openurl?genre=book&isbn=978-3-319-12493-3

Robotics(机器人技术)

Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, Giuseppe Oriolo

http://link.springer.com/openurl?genre=book&isbn=978-1-84628-642-1

Regression Modeling Strategies(回归建模策略)

Frank E. Harrell , Jr.

http://link.springer.com/openurl?genre=book&isbn=978-3-319-19425-7

A Modern Introduction to Probability and Statistics(概率统计的现代视角导论)

F.M. Dekking, C. Kraaikamp, H.P. Lopuhaä, L.E. Meester

http://link.springer.com/openurl?genre=book&isbn=978-1-84628-168-6

The Python Workbook(Python手册)

Ben Stephenson

http://link.springer.com/openurl?genre=book&isbn=978-3-319-14240-1

Machine Learning in Medicine — a Complete Overview(医学中的机器学习-完整概述)

Ton J. Cleophas, Aeilko H. Zwinderman

http://link.springer.com/openurl?genre=book&isbn=978-3-319-15195-3

Object-Oriented Analysis, Design and Implementation(面向对象的分析,设计与实现)

Brahma Dathan, Sarnath Ramnath

http://link.springer.com/openurl?genre=book&isbn=978-3-319-24280-4

Introduction to Data Science(数据科学导论)

Laura Igual, Santi Seguí

http://link.springer.com/openurl?genre=book&isbn=978-3-319-50017-1

Applied Predictive Modeling(应用预测建模)

Max Kuhn, Kjell Johnson

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-6849-3

Python For ArcGIS(面向ArcGIS的Python指南)

Laura Tateosian

http://link.springer.com/openurl?genre=book&isbn=978-3-319-18398-5

Concise Guide to Databases(简明数据库指南)

Peter Lake, Paul Crowther

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-5601-7

Digital Image Processing(数字图像处理)

Wilhelm Burger, Mark J. Burge

http://link.springer.com/openurl?genre=book&isbn=978-1-4471-6684-9

Bayesian Essentials with R(通过R学习贝叶斯基础)

Jean-Michel Marin, Christian P. Robert

http://link.springer.com/openurl?genre=book&isbn=978-1-4614-8687-9

Robotics, Vision and Control(机器人,视觉与控制)

Peter Corke

http://link.springer.com/openurl?genre=book&isbn=978-3-642-20144-8

Foundations of Programming Languages(编程语言基础)

Kent D. Lee

http://link.springer.com/openurl?genre=book&isbn=978-3-319-70790-7

Introduction to Artificial Intelligence(人工智能导论)

Wolfgang Ertel

http://link.springer.com/openurl?genre=book&isbn=978-3-319-58487-4

Introduction to Deep Learning(深度学习导论)

Sandro Skansi

http://link.springer.com/openurl?genre=book&isbn=978-3-319-73004-2

Linear Algebra and Analytic Geometry for Physical Sciences(物理科学的线性代数和解析几何)

Giovanni Landi, Alessandro Zampini

http://link.springer.com/openurl?genre=book&isbn=978-3-319-78361-1

Applied Linear Algebra(应用线性代数)

Peter J. Olver, Chehrzad Shakiban

http://link.springer.com/openurl?genre=book&isbn=978-3-319-91041-3

Neural Networks and Deep Learning(神经网络与深度学习)

Charu C. Aggarwal

http://link.springer.com/openurl?genre=book&isbn=978-3-319-94463-0

Data Science and Predictive Analytics(数据科学与预测分析)

Ivo D. Dinov

http://link.springer.com/openurl?genre=book&isbn=978-3-319-72347-1

Analysis for Computer Scientists(面向计算机科学家的分析学)

Michael Oberguggenberger, Alexander Ostermann

http://link.springer.com/openurl?genre=book&isbn=978-3-319-91155-7

Excel Data Analysis(Excel数据分析)

Hector Guerrero

http://link.springer.com/openurl?genre=book&isbn=978-3-030-01279-3

A Beginners Guide to Python 3 Programming(Python 3编程入门指南)

John Hunt

http://link.springer.com/openurl?genre=book&isbn=978-3-030-20290-3

Advanced Guide to Python 3 Programming(Python 3编程高级指南)

John Hunt

http://link.springer.com/openurl?genre=book&isbn=978-3-030-25943-3

感兴趣的同学可以关注下方公众号,回复"sprg"获取打包下载网盘链接:

A/B测试的数学原理与深入理解(达观数据 陈运文)

当面对众多选择时,如何选才能最大化收益(或者说最小化我们的开销)?比如,怎么选择最优的上班的路线才能使途中花费的时间最少?假设每天上下班路线是确定的,我们便可以在账本中记下往返路线的长度。

A/B测试便是基于数据来进行优选的常用方法,在记录多次上班路线长度后,我们便会从数据中发现到一些模式(例如路线A比路线B花的时间更少),然后最终一致选择某条路线。

当A/B测试遇到非简单情况时(如分组不够随机时,或用户量不够大到可以忽略组间差异,或不希望大规模A/B测试长期影响一部分用户的收益),该怎样通过掌握理论知识来更好的指导实践呢?本文尝试通过由浅入深的介绍,希望能够帮助大家对A/B测试有更加深入的理解。

NO.1
为什么需要A/B测试

任何问题,只要它的每个选项能够被多次进行测试,并且每个选项在被测试时都能返回固定的结果,那么它就能使用A/B测试技术来进行优化。在上述例子中,每天的上下班路线是确定的,所以我们能够在账本中记下往返路线的长度。

那么什么样的路线对于用户来说才是一个好的方案呢?是考虑路线A还是B?什么时候用户才有充分的数据去确定哪条线路是最好的?测试线路好与不好的最优策略又是什么?图1用形式化概括定义了问题。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

图1 形式化定义的问题

在这个场景中,参与的用户正面临一个选择,根据他的决策会生成一个结果,而这个结果会对应一份给参与者的反馈。假设用户持续地暴露于这个决策,他应该怎么制定获得最大收益(或等效地说,最小成本)的策略?

图1中假定了用户多次处于需要进行选择的场景中,每一次进行决策都会达成一项结果,而这个结果会关联相应的反馈。在上下班这个例子中,假定他每天都需要上下班,而且他每次上下班都必须进行线路的选择,产出的结果是这次上下班中所有因素的结合体,反馈就是从这些因素中构建出来的(陈运文 达观数据)。

这是个浅显的例子,在互联网产品研发时,有大量类似的场景需要做出各种正确的选择,例如:

1

着陆页优化(Landing-page optimization)

在用户点击去往的页面(着陆页),如何获得最大的转化率(常用计算方法为有购买行为或深度网页交互行为的用户数占网站访问总用户数的比率)。决策要考虑到着陆页的形式和内容(要从可能已有的3或4个备选方案中做出选择),希望能够从候选集合中选出最好的着陆页,以能够吸引来访的用户,并让深度交互或者购买行为的概率最大化。

2

广告创意优化(Ad creative optimization)

在线广告提出了许多适合机器学习技术应用的挑战,其中之一就是如何选择广告的形式和内容。当我们决定将要进行广告展示,以及确定了广告的价格后,在这个广告位上选择放置什么广告呢?我们需要对大量的决策进行测试,选出正确的广告创意组合。

NO.2
什么是A/B测试

经常遇到的问题是,我们应该怎么评估各不相同的决策,以及应该采用哪些策略来测试我们的产出? A/B测试(A/B testing)就是其中之一的方法。A/B测试近年来很受欢迎,但大部分产品经理也许会简单地认为它只不过是一种包含两个组的实验,其实背后有更为复杂的数学统计理论知识。

具体细节
当进行A/B测试时,通常会采用两个(或多个)组:A组和B组。第一个组是对照组,第二个组会改变其中一些因素。就以着陆页优化为例,A组会展示现有的着陆页,B组会展示一个内容或者内容作了某些修改的新着陆页。A/B测试的目的就是尝试了解新的布局是否在统计上显著地改变了转化率。

特别值得注意的是,将用户分配到对应的组需要经过深思熟虑。对于A/B测试,我们可以高效地进行随机分组。当用户数量较大时,各组间用户行为可以假设是相同的(即组间没有偏差)。但是,这里有三个非常重要的关键点,是大家有必要进一步理解其数学理论原理的原因:

1
问题1
怎样验证两个组的用户的行为是无偏差、完全相同的
2
问题2

当两个组的用户行为不完全相同时(例如分组不够随机或者组内用户数量较小时),该如何设计AB测试以实现期望的验证结果

3
问题3

当用户基础行为受其他因素影响发生整体变化了呢?例如季节、时间波动、热度等因素影响下,怎样更好的剔除干扰来评估结果

NO.3
AB测试的统计理论

假设我们已经构建了两组数目较大的用户组,这些用户组的区别仅在于他们到达的着陆页。我们现在希望能测试两组间的转化率在统计上是否存在明显差异。由于样本量大,我们可以采用双样本单尾z-检验(two-sample, one-tailed z-test)。另外,对于较小的样本集合,我们可以依赖于t-检验。

z检验(z-test)是在数据是正态分布和随机抽样的假设下运行的,目的是验证测试集(B组)是否与该对照集(A组)有显著不同,但是如何执行这个测试呢?

假设有来自A组和B组中的每一组的5,000个样本。我们需要一个数学公式来说明我们的零假设(null hypothesis)——两组群体的转化率没有显著的正差异,和备择假设(或称对立假设,alternative hypothesis)——不同人群间的转化率确实存在着正差异。

我们可将采样转化率视为一个正态分布的随机变量,也就是说,采样的转化率是在正态分布下对转化率的一个观测。要了解这一点,请考虑从同一组中提取多个样本进行实验将导致略有不同的转化率。每当对某组进行抽样时,可获得群体转化率的估计,对于A组和B组都是如此。为此我们提出一个新的正态随机变量,它是A和B组的随机变量的组合,是差值的分布。让我们用X来表示这个新的随机变量,定义为:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

其中,Xe表示实验组的转化率的随机变量,Xn表示对照组的转化率的随机变量。现在我们可以写出零假设和备择假设。零假设可以表示为:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

这表示实验组和对照组是相同的。两个随机变量Xe和Xn分布在相同的群体平均值周围,所以我们的新随机变量X应该分布在0左右。我们的备择假设可以表示如下:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

实验组的随机变量的期望值大于对照组的期望值;该群体的平均值较高。

我们可以在零假设的前提下,对X的分布执行单尾z检验,以确定是否有证据支持备择假设。为了达到这个目的,我们对X进行采样,计算标准分,并测试已知的显著性水平。

X的采样等效于运行两个实验,确定它们各自的转化率,并将对照组和实验组的转化率相减。按照标准分的定义,可以写作:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

其中,P_experiment是实验组的转化率,P_control 是对照组的转化率,SE是转化率差值的标准差。

为确定标准误差,注意到转化过程是符合二项分布的,因此访问该网站可以被看作单次伯努利试验(single Bernoulli trial),而积极结果(完成转化)的可能性是未知的。

假设样本数量足够大,我们可以使用广泛采用的Wald方法(参考Lawrence D. Brown, T. Tony Cai, and Anirban DasGupta, “Confidence Intervals for a Binomial Proportion and Asymptotic Expansions,” The Annals of Statistics 30, no. 1 (2002): 160–201.)将该分布近似为正态分布。为了捕获特定转化率的不确定性,我们可以将标准误差(SE)写入实验组和对照组,其中p是转化的可能性,n是样本数量,具体如下:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

从二项分布(np(1-p))的方差得到分子,而分母表示当采用更多的样本时,转化率的误差会随之下降。请注意正面结果的概率等同于转化率,并且因为两个变量的标准误差可以通过相加来合并,得到如下结果:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

通过替换,可获得如下的z检验公式,这是一个符合二项分布的Wald(或正态)区间的公式:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

z的值越大,反对零假设的证据就越多。为了获得单尾测试的90%置信区间,我们的z值将需要大于1.28。这实际上这是指在零假设(A组和B组的人口平均值是相同的)的条件下,等于或大于这个转化率差值的偶然发生的概率小于10%。

换句话说,在对照组和实验组的转化率来自具有相同平均值的分布的假设前提下,如果运行相同的实验100次,只会有10次具有这样的极端值。我们可以通过95%的置信区间,更严格的边界和更多的证据来反对零假设,这时需要将z值增加到1.65。

研究影响z大小的因素会带来很多有用的帮助。很显然,如果在一个给定的时间点从一个实验集和一个对照集中提取两个转化率,转化率的差值越大将导致z分数越大。因此就有了更多的证据表明两个集合分别来自不同的人群,而且这些人群带有不同的均值。然而样品的数量也很重要,如你所见,大量样本将导致总体较小的标准误差。这表明运行实验的时间越长,转化率的估算越准确。

NO.4
评估效果的代码实现

设想你在负责大型零售网站,设计团队刚刚修改了着陆页。每周有约20,000用户,并可以量化用户的转化率:即购买产品的百分比。设计团队向你保证新网站将带来更多的客户。但你不太确定,希望运行A / B测试来看看效果是否真的会提高。

用户在第一次访问网站时被随机分配到A组或B组,并在实验期间始终保留在该组中,实验结束时评估两组用户的平均转化率。统计结果是,新着陆页的平均转化率是0.002,而原先的着陆页的平均转化率是0.001。在着陆页永久更改为新设计之前,你需要知道这一增长是否足够明确。下面这段代码帮你回答这个问题。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

这段代码获取实验中z的值,在上述参数条件下z值为1.827,超过了92%置信区间,但不在95%的区间内。可以说,从控制分布中抽取数据的概率小于0.08。因此在该区间内数据提升是显著的。我们应该否定零假设,接受备择假设,即组之间有差异,第二组具有较高的转化率。如果我们控制了用户组的所有其他方面,就意味着网站的新设计产生了积极的效果。

你应该能够从代码中看到转化率分布的标准误差对返回的z值有直接影响。 对给定的常数值p_experiment和p_control,两个组的SE越高,z的数值越小,结果就越不显著。还注意到由于SE的定义,z的数值与样本的数量具有直接关系,对于给定的转换概率也同样如此。图2展示了这种关系。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

图2

图2 展示了A / B组的固定转化率,以及A / B组中的用户数量和z值之间的关系。 假设转化率不会随着我们收集更多数据而改变,我们需要每个组中大约3,000个用户达到70%的置信区间。 要达到80%的置信区间时需要每组约5000个用户,达到90%时需要 7500个用户,达到95%时需要12000个用户。

图2中可见对于两个组的给定转化率,测试组中的用户越多,备择假设的证据就越充分。直观上来看这很容易理解:当收集的数据越多,我们对结果越自信!我们也可以绘制一张类似的图,保持用户数量不变,改变组之间的差异。但必须注意,对正在关注的应用,不应该期望效果的大幅度变化。

 

NO.5
A/B测试方法的副作用和处理办法

对于非常小的效果变化,往往都需要创建相当大的对照组和测试组来实现AB测试,这个的代价往往是很大的。设想下在零售商场中,每天观察到的用户数量,往往需要很久的时间才能得出明显的结论。在实际业务应用中,会遇到的问题是:当你运行测试时整体运行的效果是受到很大影响的,因为必须有一半的用户处于效果不佳的实验组,或者有一半的用户处于效果不佳的对照组,而且你必须等待测试完成才能停止这种局面。

这是被称为探索利用难题(explore-exploit conundrum)的一个经典问题。我们需要运行次优方法,以探索空间,并找到效果更好的解决方案,而一旦找到了更好的解决方案,我们还需要尽快利用它们来实现效果提升。能否可以更快地利用新的解决方案,而不必等待测试完全完成呢?答案是肯定的。下面简单介绍下多臂赌博机(multi-armed bandit,MAB)的概念。

1

多臂赌博机的定义

多臂赌博机(multi-armed bandit,MAB)的名字来源于著名的赌博游戏角子赌博机(one-armed bandit)。对那些从没去过赌场的人,我们来做下解释:角子机(又称老虎机)是一个需要你拉杠杆(或摇臂)的赌博机器,根据机器展示的数值,你可能会得到一笔奖励,也可能(更大几率)得不到任何东西。和你想的一样,这些机器的设置都对庄家有利,所以能获的奖励的几率是非常非常小的。

多臂赌博机(理论上的)扩展了这种形式,想象你面对的是一堆角子赌博机,每个赌博机都被分配按照一个独立的概率进行奖励。作为一个玩家,你不知道在这些机器后的获奖概率,你唯一可以找到获奖概率的方法是进行游戏。你的任务是通过玩这些机器,最大限度地提高所获的奖励。那么你应该使用什么策略呢?

2

多臂赌博机策略

为了更严格地定义问题,我们通过数学形式化来表达,假设现在有k个赌博机,可观察到的每台的获奖概率等于p_k。假设一次只能拉动一个摇臂,并且赌博机只会按照它关联的概率机型奖励。这是一个设置了限定局数的有限次的游戏。在游戏期间任意时间点时,水平线H被定义为允许的剩余游戏的数量。

对所有机器用户会尝试最大化的获奖回报。在游戏中的任一时间点,我们都可以通过使用称为遗憾值(regret)来度量用户的表现。遗憾值的意思是,假设用户能在每一步选择最优的赌博机,得到的奖励和目前获得的实际奖励的差值。遗憾值的数学定义为:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

其中T表示我们到目前为止进行过的步数,r_t表示在第t步获得的奖励,u_opt表示每一局从最优赌博机返回来的期望奖励。遗憾值的数值越低,策略越优。但因为这个度量值会受到偶然性的影响(奖励可能会被从最优赌博机选择中获得的期望奖励更高),我们可以选择使用遗憾值的期望值代替,定义为:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

其中μ_t是在第t步从赌博机中获得的平均奖励(不可观测的)。因为第二项是来自所选策略的期望奖励,所以它将小于或等于来自最优策略(每一步都选择最优的赌博机)的期望奖励。

3

Epsilon优先方法

Epsilon优先(Epsilon first)是MAB策略中最简单的一种方式,它被认为和事先执行A/B测试方法具有同等意义。给定ε,执行探索空间操作的次数为(1 – ε) × N,其中N是游戏中总共的局数,剩余的次数都是执行后续探索的局数。

update_best_bandit算法会持续统计记录每一个赌博机的奖励收入和游戏局数。变best_bandit会在每一局结束进行更新,记录当前具有最高获奖概率的赌博机的编号,流程如下:

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

4

Epsilon贪婪

Epsilon贪婪(epsilon-greedy)策略中,ε表示我们进行探索空间的概率,和进行利用已知最优摇臂的事件互斥

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

该方法的特点:不需要等到探索阶段完成,才能开始利用有关赌博机的奖励表现的知识。但要小心,该算法不会考虑效果数据的统计意义。因此可能发生这样的情况:个别赌博机的奖励峰值导致后续的所有局游戏都错误地选择了这个赌博机(陈运文 达观数据)。

5

Epsilon递减

Epsilon递减(epsilon-decreasing)策略在实验开始阶段,会有一个很高的ε值,所以探索空间的可能性很高。ε值会随着水平线H上升而不断递减,致使利用似然知识的可能性更高。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

需要注意这里有几种方法去来选择一个最优的速率来更新ε值,具体取决于赌博机的数量,以及他们各自进行奖励的权重。

6

贝叶斯赌博机

与A / B测试类似,贝叶斯赌博机(Bayesian bandits)假设每个赌博机的获奖概率被建模为获奖概率的分布。当我们开始实验时,每个赌博机都有一个通用的先验概率(任意赌博机的奖励比率初始都是同等的)。

在某一个赌博机上进行的局数越多,我们对它的奖励信息就了解越多,所以基于可能的奖励概率更新其获奖概率分布。当需要选择玩哪一个赌博机的时候,从获奖概率分布中采样,并选择对应样本中具有最高奖励比率的赌博机。图3提供了在给定时间内对三个赌博机所含信息的图形化表示。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

图3

使用贝叶斯赌博机策略对三个赌博机的获奖概率信息进行建模。第1、2和3个赌博机的平均获奖率分别为0.1、0.3和0.4。 第1个赌博机具有较低的平均值而且方差也比较大,第2个赌博机具有较高的平均值和较小的方差,第3个赌博机具有更高的平均值和更小的方差。

可以看到关于赌博机的获奖概率分布的信息被编码为三个分布。每个分布具有递增的平均值和递减的方差。因此,我们不太确定奖励期望值为0.1的真实奖励率,最可靠的是奖励期望值为0.4的赌博机。因为赌博机的选择是通过对分布进行抽样来进行的,所以分布期望值是0.1的赌博机的摇臂也可能被拉动。这个事件会发生在第2个赌博机和第3个赌博机的采样样本奖励值异常小,而且第1个赌博机的采样样本异常大时,相应代码如下(陈运文 达观数据):

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

NO.6
总结

A/B测试和贝叶斯赌博机的各自的优点和局限是:两者有各自适用的场景,也验证的变量数量也各不相同,具体如下表。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

此外,两个方法的收敛速度也很不一样。在A/B测试中是指获得统计意义,在贝叶斯赌博机中是指累积遗憾值不再增加。以本章最开始的网站优化为例,首先请注意,任何行为的改变可能是微小的(<0.01),而我们已经知道贝叶斯赌博机相比大的改变提升,需要更多的收敛时间。如果加了多种选择,在同一个实验中测试多种登陆页面,将更加会影响收敛速度。假如用户变化导致的底层分布变的比模型收敛更快呢?比如,季节趋势,销售或者其他因素可能会影响。

技术干货 | 如何选择上班路线最省时间?从A/B测试数学原理说起

显然,收集的数据越多,对效果的潜在变化的把握度就越高。当2个组划分本身就存在统计差异时,通过多臂赌博机而不是A/B测试的方法可以从概率上修正我们选择的分布。本文还重点介绍了z检验(z-test)的数学知识,因为其构成了A/B测试的统计理论基础。

PRML读书会第一章 Introduction

PRML读书会第一章 Introduction

主讲人 常象宇

prml-introduction-1

大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章。估计都是大神觉得第一章比较简单,所以就由我来吧。我的背景是统计与数学,稍懂些计算机,大家以后有问题可以讨论。
今天我们来讲一下PRML第一章,这一章的内容是基于一些简单的例子对于机器学习中的基本概念给与介绍。这是为后续章节的介绍给一个铺垫。我今天讲的内容包括以下几个部分:

prml-introduction-2

把书上的知识点做了个总结大概。
首先我们来看一下,我个人理解的机器学习的定义:

prml-inro-3

机器学习的分类有很多种,一般是基于两点:数据类型与学习过程。
是否有标签->监督(分类,回归),半监督,无监督(聚类);
学习过程不同->主动学习,强化学习,转导学习。

prml-intro-4

继续阅读