用python做贝叶斯A/B测试 — 贝叶斯A/B测试入门 以及“共轭先验”是什么?

如果不再假设一个分布的参数是固定的,而是去寻找这个参数可能的分布,就可以理解超参数的意义 — David 9

A/B测试一直是David 9想cover的知识点,今天又邂逅一篇相关文章:“tl;dr Bayesian A/B Testing with Python”。于是今天决定讲解一下如何“用python做贝叶斯A/B测试”。所以,现在,两个重要的知识点是 A/B 测试 和 “共轭先验”。

关于A/B测试,其实概念非常简单,简单来说,就是为同一个目标制定两个方案(比如两个页面),让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符合设计。A/B测试已经在Web上得到广泛的应用,可以用于增加转化率注册率等网页指标[3].

很显然,A方案的转化率可以看作一个二项分布:

继续阅读用python做贝叶斯A/B测试 — 贝叶斯A/B测试入门 以及“共轭先验”是什么?

#12 机器学习能力自测题—看看你的机器学习知识能打几分?不容错过的机器学习试题与术语

一直苦于没有办法自测一下机器学习知识掌握程度,最近看到一篇Ankit Gupta写的博客Solutions for Skilltest Machine Learning : Revealed。有40题机器学习自测题,马上可以看看你的机器学习知识能打几分?顺便还能查漏补缺相关术语,以及SVM, 隐马尔科夫, 特征选择, 神经网络, 线性回归等众多知识点.

以下是试题, 附答案:

Q1:在一个n维的空间中, 最好的检测outlier(离群点)的方法是:

A. 作正态分布概率图

B. 作盒形图

C. 马氏距离

D. 作散点图

答案:C

马氏距离是基于卡方分布的,度量多元outlier离群点的统计方法。更多请详见:这里和”各种距离“。

 

Q2:对数几率回归(logistics regression)和一般回归分析有什么区别?: 继续阅读#12 机器学习能力自测题—看看你的机器学习知识能打几分?不容错过的机器学习试题与术语

手把手教你写一个生成对抗网络 — 生成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy)

今天我们接着上一讲“#9 生成对抗网络101 终极入门与通俗解析”, 手把手教你写一个生成对抗网络。参考代码是:https://github.com/AYLIEN/gan-intro

关键python库: TensorFlow, numpy, matplotlib, scipy

我们上次讲过,生成对抗网络同时训练两个模型, 叫做生成器判断器. 生成器竭尽全力模仿真实分布生成数据; 判断器竭尽全力区分出真实样本和生成器生成的模仿样本. 直到判断器无法区分出真实样本和模仿样本为止.

out
来自:http://blog.aylien.com/introduction-generative-adversarial-networks-code-tensorflow/

上图是一个生成对抗网络的训练过程,我们所要讲解的代码就是要实现这样的训练过程。
其中, 绿色线的分布是一个高斯分布(真实分布),期望和方差都是固定值,所以分布稳定。红色线的分布是生成器分布,他在训练过程中与判断器对抗,不断改变分布模仿绿色线高斯分布. 整个过程不断模仿绿色线蓝色线的分布就是判断器,约定为, 概率密度越高, 认为真实数据的可能性越大. 可以看到蓝线在真实数据期望4的地方,蓝色线概率密度越来越小, 即, 判断器难区分出生成器和判断器. 继续阅读手把手教你写一个生成对抗网络 — 生成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy)