TowardsDataScience 博客中文翻译 2016~2018(二百八十)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

下兔子洞的快乐,第一部分

原文:https://towardsdatascience.com/the-joy-of-going-down-rabbit-holes-part-i-5a56cecf293?source=collection_archive---------20-----------------------

作为一名想要构建真正有用的工具的数据科学家,需要掌握的一项关键技能是放弃一种思维方式。在适当的时候,得出的结论,这将花费太多的时间,收获太少。简直不值得。一个人必须避免掉进兔子洞。从商业角度来看,兔子洞通常会将宝贵的资源冲向一个未满足期限和仓促交付的黑洞。考虑到解决问题有多么诱人,这种经济学是一个巨大的耻辱。所以,几个月前,当一个谜题突然出现在我脑海中时,我决定一头扎进一个兔子洞。令人振奋。

在我脑海中盘旋的意识混合物所带来的问题如下。如果我掷一枚公平的硬币,它正面朝上的几率是一半。如果我扔两次,连续两次人头落地的几率是四分之一。从这样一个随机来源中还能构建出其他什么概率呢?有没有可能把一个公平的硬币,一个我以前认为只能产生 2 的幂概率的东西,变成一个强大得多的东西?一个很好的例子,也是我在接下来的几天里一直坚持并思考的一个例子,是三分之一的概率。这听起来很容易,但它确实难倒了我。我绝对不可能去研究这个问题,剥夺自己解决这个问题的满足感。我决心看看下了这个兔子洞会把我带到哪里。

我的第一个想法是*扔硬币我能得到什么?*半个。掷两次硬币我能得到什么?四分之一,或一半。我能做得更好吗?是的,我可以。事实上,如果你掷三次硬币,就有八种可能的结果。如果你简单地将成功定义为从这些序列中任意选择三个,你有 0.375 的成功概率。然后你可以把它精确到你喜欢的任何程度。随着 n 次投掷,有 2n 次方个不同的序列。然后你可以取其中的大约三分之一,将这些序列定义为成功。瞧啊!随着 n 趋于无穷大,这个概率趋于三分之一。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Precision improves the more tosses we use [source: me]

但是,这感觉像作弊。事实仍然是,对于任何一个 n ,“成功”的概率仍然顽固地不等于三分之一。这似乎是一个无法解决的问题。毕竟,如果你掷硬币的次数是固定的,考虑到掷硬币的独立性,结果的任何组合或组合或组合的概率注定在分母上有 2 的幂。我需要的是一个事件,其投掷硬币的次数是无限,而有限。无界性会让我摆脱那些讨厌的 2 的幂,而有限性会确保概率总和为 1。换句话说,我需要一个保证终止的进程,但是它的终止时间理论上可以是任意整数次投掷硬币。

因此,我想到了一个简单得令人沮丧的解决方案。让我们再一次考虑我们期望的三分之一的概率。让我们回到掷硬币两次的想法。有四种可能的顺序。 HHHTTHTT 。每一种都有四分之一的发生概率。所以如果成功是着陆,我们有四分之一的机会成功。现在,如果我们忽略结果,再试一次,如果我们得到了 TT 呢?现在,我们每个人都有四分之一的机会 HHHTTH 获胜,但也有四分之一的机会完全忽略结果,再次投掷硬币两次。然后,这最后的四分之一在第二次投掷的 HHHTTHTT 之间平均分配,当然,最后的结果再次被忽略,重复这个过程,直到我们得到除 TT 之外的任何序列。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The sequence continues indefinitely until an outcome occurs other than TT [source: me]

因此,“成功”的概率是四分之一(我们在第一次双掷中获得 HH ),加上四分之一倍的我们在任何未来双掷中获得它的概率,也就是四分之一(我们在第二次双掷中获得 HH )加上四分之一倍的我们在任何未来双掷中获得HH

挺住;这开始听起来像一些无穷级数。的确,正是如此。我们成功的可能性是

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[source: me]

注意,省略号表示这个表达式无限重复。这导致了一个难以置信的数学上的便利方法来证明这确实导致了三分之一的概率。如果我们将整个无穷和定义为 s ,我们可以观察到,如果这个无穷级数有一个有限和,那么我们有下面的递归

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[source: me]

因此,我们可以很容易地重新排列,求解 s 并观察到 s = 1/3 如下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

[source: me]

如果这让你不满意,这里有另一个解释。如果我们可以证明进程HHHTTH 终止,并且这些都是同等可能的,我们必须得出结论:在 HH 终止的概率是 1/3

鉴于每当我们遇到 TT 时,我们继续并翻转两次以上,终止于 TT 的概率为零。但是,在 HHHTTH 中的任何一个上终止的概率平均分布在所有三个上。现在,我们只需要证明终止是必然的。让我们开始第一次双掷。这次双抛后终止的概率是 1/4 。现在让我们进行第二次双掷。这里不终止的概率也是 1/4 ,假设我们已经过了第一次双抛。但从一开始,任何一次投掷前,两次双掷后终止的概率是 1/4 乘以 1/4 ,也就是 1/16 。然后你可以看到,在 n 双掷之后没有终止的概率是 1 除以 4n 的幂,随着 n 线性增加,它很快趋于零。例如,在十次双掷后没有终止的概率是 1/4 ⁰,大约是 0.00000095。因此,我们的流程肯定会终止,并且我们得到了想要的结果。

请继续关注第二部分,在第二部分中,我们将进一步深入兔子洞,使我们的硬币更加强大,仅使用其自身的随机性来产生任何概率的事件,这些事件可以表示为 n/d ,其中 nd 是整数。

JupyterLab 凭据存储

原文:https://towardsdatascience.com/the-jupyterlab-credential-store-9cc3a0b9356?source=collection_archive---------14-----------------------

这个 JupyterLab 扩展使您的凭证安全,并提供方便的访问。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

TL;博士:

JupyterLab 凭据库使用 AES 加密保护您的凭据安全。在这个 JupyterLab 前端扩展中添加、编辑和删除作为键-值对的凭证。使用他们的密钥访问凭据:

import kernel_connector as kc
kc.get_credential(“my_secret”)

使用以下命令安装 JupyterLab 凭证存储库:

pip install pycrypto
apt-get install nodejs -y
apt-get install npm -y
jupyter labextension install @lean-data-science/jupyterlab_credentialstore

如果你喜欢容器化的配置, JupyterLab 凭证存储库JupyterLab-Configurator (此处呈现)无缝集成,让你轻松创建自己的 JupyterLab 配置

保管好你的证件

JupyterLab 是一个交互式开发环境,使您能够在选项卡式工作区中使用 Jupyter 笔记本。Jupyter 笔记本允许您轻松地与您的同事共享您的代码和模型。当您处理数据时,访问数据几乎总是需要某种形式的凭证,例如用户名和密码或 API 访问密钥。

你需要特别注意你的证件。如果您直接在笔记本中使用它们,您可能会意外地暴露它们,例如,当您将笔记本提交到您的 git-repository 时,或者当您共享笔记本时。

笔记本的力量:是福是祸

以正确的方式处理凭证的问题不仅限于 Jupyter 笔记本。这在任何其他开发环境中都同样重要。但是笔记本有暴露凭证的特殊风险。不是技术上的。而是程序性的!

笔记本作为一种工具,可以快速、轻松地浏览数据,无需太多开销。笔记本电脑不需要明确的解决方案架构来规定代码、数据和凭证的存放位置。笔记本电脑很少采用多阶段部署的方式投入生产,这可确保凭据分别安全地存储在各个阶段的配置中。

但是笔记本是一个灵活而强大的工具。它们在数据科学家的工具箱中有合法的位置。

环境变量

将凭证存储在环境变量中是一种常见的做法。环境变量驻留在系统进程中。Jupyter 内核就是一个很好的例子。这些进程源自操作系统(或启动它们的软件,如 Jupyter)。流程及其环境变量不是笔记本的一部分,因为笔记本不是流程,而是文件(JSON)。Jupyter 应用程序将笔记本文件与进程(内核)连接起来。

但是使用环境变量似乎是一种有一些缺点的变通方法:

  1. 无论何时添加、编辑或删除环境变量,都必须重新启动笔记本服务器,以使更改生效。但是,如果您刚刚完成了一个长时间运行的计算,您不能存储它的结果,因为存储它需要一个 API 调用,您之前没有设置它的凭证,那该怎么办呢?请你把凭据放进笔记本里,只有这一次,答应吗?哎呀!
  2. API(例如 AWS)通常提供使用环境变量的便利功能。当环境变量设置好后,一切都正常了。但是你的同事在使用笔记本和复制你的结果时遇到了问题。不仅如此,API 调用也不起作用(这是可以的,因为你不希望别人使用你的账户)。而且,你的同伴不一定知道(详细地)为什么它不起作用,以及需要什么来使它起作用。当你不能轻松分享时,笔记本就失去了它的大部分用途。
  3. 如果因为使用两个同类服务(例如 AWS)而需要同一个环境变量的两个不同值,该怎么办?每个服务都需要自己的凭据。您会手动设置和更改环境变量吗?在给定的情况下,记住变量的所需值将是一个严峻的挑战,不是吗?

保持你的灵活性

JupyterLab 凭据库保留了 Jupyter 笔记本的灵活性,同时确保您的凭据安全。这个 JupyterLab 扩展向您的工作区添加了一个凭证浏览器,您可以通过侧边栏上的菜单项打开它。在凭据资源管理器中,您可以添加、编辑和删除凭据的键值对。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The credential explorer

您可以在代码中轻松使用凭据。只需导入kernel_connector并使用其密钥访问凭证。这就像使用环境变量一样简单。

import kernel_connector as kc
kc.get_credential(“my_secret”)

当您更改凭证时,不需要重新启动内核。当您添加或编辑凭证时,只需按下保存按钮,您就可以直接使用它。当您删除凭据时,对它的访问会立即被删除。

如果需要设置环境变量,可以在代码中完成,而不会有暴露凭据的风险。因为您直接在活动内核中设置环境,所以您可以立即使用它,而无需重启内核。这允许您动态地准备您的环境。它明确地向你的同伴显示,你在这里使用环境变量。但这并没有暴露他们!下图描述了这个用例。但是请注意,您不应该打印您的凭据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Example of using the credential store

你的证书是安全的

JupyterLab 凭据库使用您在首次使用时设置的密码。每个凭证都用您的密码散列加密。加密的凭证存储在启动 JupyterLab 的目录中的.credentialstore文件中。如果您使用版本控制系统,请确保将它添加到您的.gitignore文件中。

JupyterLab 凭证存储库要求您在解密凭证之前登录。因此,即使有人获得了你的.credentialstore文件,那个人仍然需要破解 AES 加密的密码。

2003 年 6 月,美国政府宣布 AES 可用于保护最高机密级别的信息。

Jupyter 辅助安全

JupyterLab 凭证存储库利用了 Jupyter 的一个核心特性:生成缺省情况下相互独立的进程(内核)的能力。当您登录到凭证存储时,它会将解密的凭证放入一个新的 Python 内核中。为了获得凭证,您需要访问这个内核。因为每次启动凭证存储时内核的标识符都会发生变化,这增加了一定程度的混淆。

这个 JupyterLab 扩展的kernel_connector模块从前端获取 kernel-id,并提供对保存凭证的内核的方便访问。

当您停止凭证存储时(使用 stop 图标),持有凭证的内核会立即停止。因此,您的凭证会立即被阻止访问。如果您现在试图访问它们,库将抛出一个异常。如果您再次登录,您可以立即再次访问,而无需重启内核。

易于安装

您可以使用以下命令安装 JupyterLab 凭证存储库及其依赖项:

apt-get install nodejs -y
apt-get install npm -y
jupyter labextension install @lean-data-science/jupyterlab_credentialstore

您还可以使用JupyterLab-Configurator为您自动创建一个脚本控制的容器化 JupyterLab 环境。在配置器中,只需选中使用 JupyterLab 凭证存储选项。关于JupyterLab-Configurator的介绍见这篇文章

容器化的 JupyterLab 环境不仅方便使用,而且进一步增加了安全性。容器将保存凭证的内核与系统的其余部分分开。如果有人想访问这个内核,他需要首先进入容器的环境。

下图描述了 JupyterLab 凭证存储库的架构。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The architecture of the JupyterLab Credential Store

支持向量分类中的核技巧

原文:https://towardsdatascience.com/the-kernel-trick-c98cdbcaeb3f?source=collection_archive---------0-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

内核技巧似乎是统计学和机器学习中最容易混淆的概念之一;它首先看起来是真正的数学魔法,更不用说词汇歧义的问题(内核是指:一种估计概率密度(统计)的非参数方法,线性变换 T 映射到零向量的向量集v——即 T( v ) = 0(线性代数),通过组之间的同态映射到单位元素的组 G 中的元素集(群论),计算机操作系统的核心(计算机科学),或者与坚果种子有关的东西).

尽管理解核技巧有一些障碍,但是理解核在支持向量分类中是如何使用的是非常重要的。出于实际原因,理解这一点很重要,因为实现支持向量分类器需要指定一个核函数,并且没有既定的通用规则来知道哪种核最适合您的特定数据。

更概念性地,内核技巧还说明了一些关于表示数据的不同方法以及机器学习算法如何“看到”这些不同的数据表示的基本思想。最后,内核技巧中表面上的数学花招只是让人们进一步探索它的实际含义。

在这篇文章中,我当然不能完全解释内核的技巧。我相信对内核技巧的真正深入理解需要严格的数学处理,而这不可能在所谓的七分钟阅读中完成,更不用说由那些实际上只在很短时间内学习内核技巧和 SVM 的人来完成。但是,我将尝试做以下事情:

  • 简要介绍支持向量分类
  • 在支持向量分类的上下文中可视化一些非线性变换
  • 介绍核技巧在训练支持向量分类器中的好处在于独特的数据表示

I ntro 支持向量分类

支持向量分类基于一种非常自然的方式,人们可以尝试将数据点分类到各种目标类中。如果我们的训练数据中的类可以由一条线或某个边界分开,那么我们可以根据数据位于该决策边界的哪一侧来对数据进行分类。

在下面的二维例子中,我们可以用三条线中的任何一条来分隔数据,然后根据观察值是在线的上方还是线的下方来分配类别。数据是由特征 X1 和 X2 指定的二维矢量,分类标签为 y =1(蓝色)或 y = 0(红色)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

An example dataset showing classes that can be linearly separated.

像机器学习和生活中的几乎每个问题一样,训练线性支持向量分类器是一个优化问题。我们最大化裕度——分离属于相反类别的最近的一对数据点的距离。这些点被称为支持向量,因为它们是“支持”或确定决策边界的数据观察。为了训练支持向量分类器,我们找到了最大间隔超平面,或最优分离超平面,其最优地分离两个类,以便推广到新数据并做出准确的分类预测。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The support vectors are the points on the dashed lines. The distance from the dashed line to the solid line is the margin, represented by the arrows.

支持向量机在高维空间更难解释。很难想象数据是如何线性分离的,以及决策边界是什么样子的。p 维中的超平面是位于更大的 p 维空间内部的 p-1 维“平坦”子空间。在二维中,超平面只是一条线。在三维中,超平面是一个规则的二维平面。从数学上讲,我们有以下内容:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Equations defining a hyperplane and the classification rules defined by the decision boundary.

支持向量分类依赖于线性可分数据的概念。在数据不是完全线性可分的情况下,“软边界”分类可以适应训练数据上的一些分类错误。然而,在实践中,数据通常远远不是线性可分的,我们需要将数据转换到更高维的空间中,以便适合支持向量分类器。

非线性变换

如果数据在原始或输入空间中不是线性可分的,那么我们对数据应用变换,将数据从原始空间映射到更高维的特征空间。目标是在转换到更高维度空间之后,类别现在在这个更高维度特征空间中是线性可分的*。然后,我们可以拟合一个决策边界来划分类别并进行预测。决策边界将是这个高维空间中的超平面。*

显而易见,很难将高维数据可视化,因此我们首先关注应用于一维数据的一些变换。在这个例子中,左边的图片显示了我们的原始数据点。在一维中,这些数据不是线性可分的,但是在应用变换 ϕ (x) = x 并且将第二维添加到我们的特征空间之后,这些类变成线性可分的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

This data becomes linearly separable after a quadratic transformation to 2-dimensions.

目前,我们只是检查原始数据到更高维度的转换,允许数据线性分离。这些只是函数,还有许多可能的函数可以将数据映射到任意数量的更高维度。

这里我们应用变换 ϕ (x) = x 模 2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

This transformation allows us to linearly separate the even and odd X1 values in 2 dimensions.

现在让我们看一个例子,在这个例子中,我们的原始数据在二维空间中不是线性可分的。这里是我们的原始数据,不能线性分离。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

经过以下转换:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们的数据在三维空间中可以线性分离(通过二维平面)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Linearly separable data in 3-d after applying the 2nd-degree polynomial transformation

可以有许多允许数据在更高维度中线性分离的转换,但是并不是所有这些函数都是内核。核函数具有特殊的性质,这使得它在训练支持向量模型中特别有用,并且在优化非线性支持向量分类器中使用该性质通常被称为核技巧。

内核技巧

我们已经看到了更高维度的变换是如何允许我们分离数据以进行分类预测的。看起来,为了训练支持向量分类器并优化我们的目标函数,我们将不得不对变换后的特征空间中的更高维向量执行操作。在实际应用中,数据中可能有许多特征,应用涉及这些特征的许多多项式组合的变换将导致极高且不切实际的计算成本。

内核技巧提供了这个问题的解决方案。“诀窍”是内核方法仅通过原始数据观察值 x (原始坐标在低维空间中)之间的一组成对相似性比较来表示数据,而不是显式应用变换 ϕ ( x )并通过高维特征空间中的这些变换坐标来表示数据。

在核方法中,数据集 X 由成对相似性比较的 n×n 核矩阵表示,其中条目(I,j)由核函数定义: k(xi,xj)。这个核函数有一个特殊的数学性质。核函数充当修改的点积。我们有:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们的核函数接受原始低维空间中的输入,并返回高维空间中的变换向量的点积。在某些条件下,也有定理保证这种核函数的存在。

通过考虑变换向量 ϕ ( x )的每个坐标只是相应的低维向量 x 中的坐标的某个函数,可以在某种程度上帮助理解核函数如何等于变换向量的点积。

例如,下面举例说明了二次多项式的核心技巧,并且我们在前面的图中以三维方式可视化了这种转换。变换后的向量具有作为两个分量 x1 和 x2 的函数的坐标。所以点积也只包括分量 x1 和 x2。内核函数也将接受输入 x1、x2 并返回一个实数。点积也总是返回一个实数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

On the left-hand side, we have the dot product of the transformed feature vectors, which is equal to our 2nd-degree polynomial kernel function.

这里的核函数是多项式核 k(a,b) = (a^T * b)

核技巧的最终好处是,我们正在优化以适合更高维度决策边界的目标函数仅包括变换后的特征向量的点积。所以我们可以直接用核函数代替这些点积项,甚至不用 ϕ ( x )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

In the bottom equation, we replace the dot product of the transformed vectors with the kernel function.

请记住,我们的数据只能作为高维空间中的向量 ϕ ( x )进行线性分离,我们正在这个高维空间中寻找最佳分离超平面,而无需计算或者实际上甚至不知道任何关于ϕ(x).的事情

图论发现的王者

原文:https://towardsdatascience.com/the-king-that-graph-theory-discovered-8cce31a3cd26?source=collection_archive---------17-----------------------

这是为那些可能在数据科学环境中使用网络的人解释网络原理的系列文章的第四篇。第一篇文章,主要讲图论的起源和图的基本性质,这里可以找到

2012 年 8 月的一个早晨,在英国中部莱斯特的一个停车场,一台机械挖掘机开始切入混凝土表面。许多感兴趣的观众都在场,抱着一线希望,希望可能会发生一些惊人但极不可能发生的事情。

一些艰苦的侦探工作让一群业余和专业历史学家相信,这可能是 500 多年前理查德三世——弯腰驼背的英国国王,在 1485 年博斯沃思菲尔德战役中惨遭杀害——被随意抛弃的地方。在捐款和众筹的支持下,他们筹集了足够的资金,并获得了在当地议会大楼停车场进行有限考古挖掘的批准。他们激动得无以复加。其他人,包括在场的学术和专业考古学家,都持怀疑态度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The skeleton of King Richard III discovered in Leicester in 2012

第一次切割是在停车场的一个区域,标有一个看起来神秘的字母 R。这可能表明这个停车位是为某个重要人物保留的,但事实上,没有人能解释为什么那个 R 会在那里以及它意味着什么。

几个小时后,在字母 R 的正下方,他们发现了一具驼背的骷髅。

这是现代最惊人的考古发现之一的开端。但是,他们如何证明这具骨骼无疑就是国王理查德三世呢?它清楚地显示出一生都饱受脊柱侧凸的折磨——这与历史上对国王理查德三世的描述有着长久的联系。

随后对骨骼的分析表明,它可以追溯到 15 世纪晚期,并且享受丰富的肉类和鱼类饮食,所有这些都增加了这是国王的可能性。但是他们还需要一样东西来完成证明:DNA。

用 DNA 来证明这是理查德三世将是一个巨大的挑战。只有线粒体 DNA 或 mtDNA,在家族中通过母系遗传,一代代保持不变。因此,为了找到证据,需要找到一个活着的理查德三世的妹妹的后代,这个后代只能通过一个 500 岁的女性来追溯。大海捞针!

那根针原来是加拿大人迈克尔·易卜生,他在伦敦北部做木匠和家具修复工。从迈克尔的嘴里取出了一个拭子,提取了 mtDNA,并与从骨骼上提取的进行了比较。这是一场完美的比赛。

2015 年 3 月 26 日,挖掘出的国王理查德三世的遗体被带到莱斯特大教堂,在那里,在他去世 500 多年后,它以完整的英国教会仪式和盛大的仪式被重新安葬!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Graph databases focus on the properties of nodes and the relationships between them

图形数据库

由于图表数据库的出现,迈克尔·易卜生的皇室血统和无数其他家族血统之谜现在变得更容易被发现。

尽管图形数据库自 20 世纪 60 年代以来就存在于高度专业化的圈子中,但它在 2005 年左右才开始进入企业技术领域。与更常见的将信息存储在链接表中的关系数据库不同,图数据库背后的原理与数学图论中的原理完全相同(有关图论的简介,请参阅本系列以前的文章)。在与人的研究相关的领域中,图形数据库可能特别有用。

每个“顶点”或“节点”可以存储关于人或物体的信息。每条“边”都存储着它所连接的节点之间的关系信息。这允许更灵活的查询。通过查询节点和边,您可以回答类似“显示所有与此人一起发表过论文的人”这样的问题。在数学谱系项目的网站上,通过查询图形数据库,我可以使用边来追溯我的数学谱系到像狄利克雷、泊松和欧拉这样的巨人。我也可以通过查询节点来了解我的或者他们的博士论文题目。

显然,像脸书、Twitter 和 LinkedIn 这样的社交媒体引擎是由图形数据库大量支持的。边缘将你与你的追随者或关系,以及你的喜好联系起来。当脸书最近引入了更广泛的反应(如愤怒、爱)时,他们基本上只需将这些添加到他们的图形数据库的边缘属性中。

系谱学也是一个被图形数据库大规模支持的领域的很好的例子。Ancestry.com在其节点中存储个人的传记信息(出生日期、结婚日期、照片、文档),在其边缘存储关系数据(母亲、父亲、兄弟、姐妹)。当您查看某人的家谱时,您正在查询该人的图形数据库(尽管一种特殊类型的图形被称为树—参见此处 了解图形类型的简介)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

建立图形数据库

图形数据库的设置和配置相对简单,目前市场上已经有一些成熟的图形数据库产品。 Neo4j 是目前最流行的图形数据库,适用于大多数用例,但也有很多其他的。对于任何以关系为主要分析焦点的用例来说,图数据库将证明优于传统的关系数据库。它将更快地处理查询,并且更容易配置和调整。您可以通过更高效的查询来询问更复杂的问题。

在大多数图数据库中,如果你熟悉图论,查询语言是非常直观和容易学习的。 Neo4j 的查询语言 Cypher ,用括号将节点括起来,如(p),用箭头表示边/关系,如-->。比如说,你可能想使用 Neo4j 来找到你最亲密的朋友,他们可以教你关于 Neo4j 的知识——你可能会这样使用:

*MATCH (you {name:"You"})
MATCH (expert)-[:WORKED_WITH]->(db:Database {name:"Neo4j"})
MATCH path = shortestPath( (you)-[:FRIEND*..5]-(expert) )
RETURN db,expert,path*

当您拥有可以重新配置以表示人或对象之间的连接的现有数据时,设置图形数据库引擎特别有意义。这方面的例子可能包括:

  • 根据时间表或财务数据在项目中一起工作的时间
  • 来自电子邮件元数据的电子邮件或日历连接
  • 日志或出勤记录中的共同参与事件
  • 发布记录的文档协作
  • 公开的关系,如导师或教练关系
  • 实体之间的契约关系

如果您没有玩过图形数据库,请尝试找个机会测试一下。亲身体验会让你真正感受到他们的力量。如果图形数据库可以在几秒钟内找到你所有的第五代表兄弟,想象一下他们在一个大型组织中可以做什么。

在本系列关于网络分析的下一篇也是最后一篇文章中,我将探讨网络如何为研究现象提供难以置信的机会,并为网络支持的未来研究提供思路。

最初我是一名纯粹的数学家,后来我成为了一名心理计量学家和数据科学家。我热衷于将所有这些学科的严谨性应用到复杂的人的问题上。我也是一个编码极客和日本 RPG 的超级粉丝。在LinkedInTwitter上找我。

懒惰的数据科学家

原文:https://towardsdatascience.com/the-lazy-data-scientist-e7d8b0de4ef?source=collection_archive---------9-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

没有什么比白费力气更令人沮丧的了

懒惰的数据科学家不是你团队中做最没用的工作的人,他们很可能是工作最有用的人。他们只是最讨厌看到努力付诸东流的人。

在做错题

最糟糕的浪费努力是把卓有成效的努力用在了错误的问题上——想想如果努力被正确应用会是什么样子,这简直令人心碎。在某些圈子里,这被称为“第三类”错误——对错误问题的正确回答。

这是一个可以说没有得到应有关注的领域——有时似乎有一种假设,即仅仅通过经验,大多数人最终会学会识别真正问题的艺术,可能是通过不愉快的经历。然而,根据定义,经验实际上意味着“在找到正确的方法之前,反复以错误的方式去做”,所以与向他人学习相比,自己学习可能会浪费很多精力。

可以找到少量帮助的一个地方是六适马过程的“T4”、“定义”阶段,在这里使用了确保项目专注于客户真正问题的工具。虽然并非每个工具都适用于数据科学环境,但了解每个工具的基本原理将为如何发现客户的真正问题提供重要线索。

最后一个问题——顾客错误识别自己的需求——值得自己研究,一些有趣的和有用的讨论来自医学领域。例如,虽然数据科学家采访客户或顾客以了解他们的需求存在许多重要差异,尤其是客户或顾客通常是由多人代表的组织,但在第二篇链接文章中发现的倾听技巧等问题上有许多可以应用的内容。

未能重用自己的作品

虽然看到大量工作浪费在解决不存在或对企业不重要的问题上特别令人心碎,但看到努力浪费在一次又一次地执行相同的任务上也是如此。

airbnb 团队在这方面做得很好,至少在他们的账户上,并且他们不是唯一看到好处的。现在,尽管这两个相关的故事都强调 R 对创建库有很好的支持,但显然它也可以在 Python 中实现。

事实上,即使是像 SQL Server 这样的数据库,也支持那些希望以某种形式创建可重用代码的用户(显然不同的实现会有所不同)——例如,这个 MOOC 讨论了如何将用户定义的函数和存储过程应用于 SQL Server 数据库。当然,虽然这只是一个 MS SQL Server 示例,但是大多数主要的数据库实现都有自己的方式来达到相同的目的。

被新奇事物催眠

人们很容易花很多时间去寻找最新最棒的东西,尤其是更新、更闪亮的软件包,它们与旧的软件包做相同的任务,但对表现形式做了某种改变,使它们看起来更“最新”。

当你除了花费精力去学习那些并不真正必要的华而不实的工具之外,还没有花精力去学习那些必要的基础知识时,问题就变得更加复杂了。特别是,如果你错过了学习如何组织数据进行分析的基本方面,以及如何在更高级的建模之前执行严格和有针对性的探索性数据分析,那么你就在为解决问题做徒劳的努力。

造成他人工作

当数据科学不是组织的产品时,我们从其他人那里获得的时间就是他们制造或销售产品的时间,这是理所当然的。即使数据科学家为咨询公司或类似机构工作,他们的工作或多或少直接向客户收费,你也需要他人的帮助。

做得很好,没有被发现

即使你正在解决正确的问题,如果你的模型展示得不好,或者根本不展示,你仍然会在最后一个障碍上绊倒。如果没有人使用你的模型,或者即使使用的人比应该使用的少,全部的潜力也不会实现。

仔细考虑如何销售你的模型,以及如何确保它得到选择使用。推而广之,你也应该通过精心维护来保持它的使用。总的来说,一个伟大的模型得到它应得的使用还远远不是必然的;虽然众所周知的谚语是“数据科学家将 80%的时间花在数据准备上”,但我还是要说“模型被实现的数据科学家将会花 80%的时间来解释她的模型及其结果”。

写简短的博客文章

如果你写了一篇冗长的解释,没有人会接受你关于如何事半功倍的建议;我就此打住。

眼球数据科学的危险

原文:https://towardsdatascience.com/the-lazy-jobless-reality-or-myth-b3adfdc23ffa?source=collection_archive---------8-----------------------

失业救济金会让人变懒吗?

本周在斯坦福大学的公共财政 III 中,佩尔松教授谈论了最优保险设计。这门课总共有 78 张幻灯片。我会把它们编成一段轻松的 7 分钟的读物给你。

眼球数据科学的危险

失业救济金会让人变懒吗?如果是这样,在其他条件不变的情况下,福利越高的州失业率越高。

瞧,到处都是红线在蓝线之上!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这一点上,任何不知情的人都会忍不住做出如下结论:失业救济金会让人变懒。

那么,我们应该一劳永逸地停止支付失业救济金吗?

毕竟,所有的州都有相同的失业率——唯一的区别是,福利低于平均水平的州似乎更快达到目标。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关!=因果关系

相关性并不意味着因果关系。

当我们看到(高福利,高失业率)时,除了“失业福利让人变懒”之外,还有很多可能的解释。

这里有另一种解释:高收益的州有更多的知识型产业。他们需要更长的时间来找到合适的员工。这也符合(高效益,高失业率),但与人懒无关。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Eyeball data science: knowledge-based states have higher benefits.

这个解释是否正确并不重要。我要说的就是,在得出“福利让人变懒,所以应该取消失业救济”的结论之前,我们先慢下来。

让我们回到基础:

  1. 失业救济金如何影响失业时间的长短,如果有的话?
  2. 如果福利增加了失业率,有多少是因为逃避?
  3. 最后,失业救济金的最佳水平是多少?

在下面的讨论中,我将从问题 3 开始,这样我们就可以对这个问题有一个总体的了解。在这个过程中,我将讨论一些很酷的数据分析来解决问题 1 和 2。

寻找失业救济金的最佳水平

为什么很难

本质上,寻找最佳社会保险设计是一项成本效益分析。我们想帮助那些运气不好的人,尽管他们自己并没有错。但我们也承认,利益鼓励逃避。为了找到最优的失业救济水平,我们需要回答一些基本问题:

  • 当人们失业时,失业救济金能帮助他们平稳消费吗?这是一个重要的问题,因为如果你能简单地搬去和你的父母一起住,并且你们三个都有足够的食物和支付账单,我们就不需要政府介入并取代一份有效的失业保险。
  • 失业救济金会鼓励逃避责任吗?它是否阻碍了人们尽最大努力寻找?或者,它允许人们坚持寻找合适的工作吗?

做不可能的事

最优社会保险问题可以形式化为一个动态规划问题。详情请 PM 我或阅读哈吉·柴提教授的论文

下面是基本结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里有一些关于符号的注释:

  • C_l: 低状态下的消费(即失业时);
  • C_h: 高状态下的消耗(即就业时);
  • :一个人消费的效用$ C;
  • U’©: 消费水平 C 时效用函数的导数说白了,一个人已经在消费 C 时效用函数的导数说白了,一个人已经在消费 C时效用函数的导数说白了,一个人已经在消费C 时,他的消费边际效用多$1。
  • e: 求职努力程度。为简单起见,Chetty 将找到工作的概率设为 e。
  • b: 失业救济金水平
  • Epsilon_(1-e),b :当失业救济金 b 增加 1%时,一个人要懈怠的百分比是多少 (1-e)

关键见解

  • 直觉上,这证实了我们的直觉,即最优失业权衡了消费平滑的好处和推卸责任造成的效率损失的成本。
  • 我们需要估计这个公式中的所有东西,从而得出失业救济金的最佳水平。让我们开始吧。

发现ε:当福利增加时,失业持续时间如何变化?

第一次尝试:危险模型

通过估计连续工资和福利历史的风险模型,Meyer 回答了以下问题:

定义为(就业人数/失业人数)的风险率如何对失业救济金的变化做出反应?

以下是他从 1978 年至 1983 年间居住在 12 个州的 3365 名男性中收集的数据:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

福利增加 10%会导致危险率降低 9%。这意味着预期失业时间增加了 9%!

值得注意的是,最近的研究使用了更大更好的数据,包括 Meyer 本人的数据,得到的估计值更小,约为 5%。

估计 e:搜索工作

随着调查数据越来越细,经济学家现在对人们花在找工作上的时间有了一个相当好的估计。

放弃最佳利益

缺失的最后一块拼图是 U’©s,找到消费数据很容易,但找到效用函数就不那么容易了。因此,经济学家所做的是取消各种效用函数的最优收益水平。

如果你相信人们有不变的相对风险厌恶,一致风险系数在 2 左右,那么最优收益是总工资的 5%,远低于我们所拥有的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么,失业率的增加有多少是由于拖延造成的呢?

根据哈吉·柴提(2008) :

40%,这意味着 60%的额外失业时间被用于寻找更好的匹配。

Chetty 是如何设法分离这些影响的?

****强大的洞察力:失业救济金的增加做了两件事:给你钱+扭曲相对工资(即降低工资福利比)。

它们如何影响你的搜索工作?直觉上,当你手头有更多现金时,你会感到寻找自己不喜欢的工作的压力较小(又称“流动性效应”);当工资与福利的比率较低时,你会觉得工作动力不足(也称为“道德风险”)。

流动性和道德风险都会降低你的搜索努力——只不过流动性效应是可取的,而道德风险则不是。

重要见解:为了估计一种效应,我们需要使另一种效应静音。

要估计道德风险效应,看看那些已经有足够钱的人。即使没有任何额外的帮助,这些人也不会从事不受欢迎的工作。实际上,流动性效应被弱化了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于净财富最高的四分之一的人来说,当福利水平增加时,失业率没有显著增加!

将此与我在本博客开始时展示给你的净财富最低四分之一人群的图表进行比较:这表明许多穷人被迫接受不太理想的工作,因为他们等不起!

但是等等!你在假设穷人和富人是可比的!

如果你同意共和党的思路,认为富人变富恰恰是因为他们有更好的职业道德,那会怎么样?

没问题!

全能的切蒂有另一篇论文 用卡和韦伯 2007 年的 来处理这种担忧,用的是来自奥地利建筑工人的遣散费数据。

遣散费是一种失业保险,相对于失业,它不会扭曲工作的吸引力。因此,它将捕捉流动性效应,而不是道德风险效应。实际上,我们正在抑制道德风险渠道,以估计流动性效应。

在奥地利,只有当你的工作期限超过 36 个月,你才能得到遣散费。让我们比较一下低于和高于 36 个月门槛的人的失业持续时间。这些人应该蛮有可比性的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

左图显示流动性效应巨大!

当没有足够积蓄的人,真的需要更加努力的去寻找。

右边的图表表明,员工在压力下接受了不太理想的工作匹配,这转化为更短的后续工作持续时间。

结论

对失业保险文献的全面讨论超出了本博客的范围。但是,教训是明确的:

眼球数据科学危险!

每当你看到暗示性的情节,问问你自己:有没有其他的叙事可以产生这种模式?

现实很少是非黑即白。

在这种情况下,失业保险是好的,因为它帮助人们找到更好的工作匹配(60%),但它也鼓励一些人拖延(40%)。

在现实世界中,任何改变都有成本和收益。真正的问题很少是“是或不是”,而是“值得吗?”

研究是不断发展的!

有了更好的数据和更好的设计,科学家们不断更新他们对关键参数的估计。甚至我讨论的 Card,Chetty 和 Weber (2007)的论文也不是无懈可击的。你能发现致命的弱点吗?如果你认为你已经找到了,请在下面留下回复:)

下次见!

墙后的生活——扎克伯格仓库之旅

原文:https://towardsdatascience.com/the-life-behind-the-wall-b00af694c3c5?source=collection_archive---------16-----------------------

开场白

2018 年 3 月,剑桥分析(2013–2018)丑闻曝光于大众。大约 5000 万脸书用户的信息被“泄露”给了分析公司“剑桥分析”,据称该公司将这些信息用于选举宣传目的。仅仅两个月后,我的电子邮件就被各种网站的消息淹没了,这些消息都是关于根据 GDPR(一般数据保护条例——欧盟关于个人对自己信息的权利的条例)更新隐私政策的,该条例允许人们访问关于他的所有存储信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GDPR emails

由于这些事件,我想准确地找出我的个人资料中保留了哪些信息,以及这些信息如何讲述我的故事。

数据

我打开我的脸书账户,在“设置”选项卡上点击了个位数,我的桌面上已经有了一个令人印象深刻的目录树,里面充满了关于我的数字自我的有趣信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Data downloaded from Facebook

这些数据包括(摘自脸书网页):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Data Stored on Facebook

第一眼,我看到了一个只有一行字的文件,说明我被描述为“开始他的成年生活”。在另一个文件中,我看到了所有符合我兴趣的广告关键词的列表(它们相当准确)。不管怎样,我已经知道我会找到一些有趣的信息。

现在,我正式兴奋了。

艰苦的工作

第一步是手动检查数据,总共大约 1200 个文件,其中只有 47 个实际上需要字段映射(如果您想知道为什么只有 47 个需要映射,那是因为有 1150 个相同格式的文件。每个文件代表我曾经与之聊天的不同的人/群体)。

有了编程语言“Python”和数据分析软件“Tableau”,我开始处理所有的信息。花了几个小时编写代码,以统一的方式将所有不同的信息标准化(处理希伯来语、从大量文本中提取姓名模式、按主题对信息进行分组、创建汇总表等)。).对于那些不熟悉这些任务的人,我不得不这样说:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Raw Data

变成这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(Coherent information)

现在所有的信息都在它正确的位置上,我们都准备好了一些乐趣!

吊儿郎当

概述

作为已经广泛使用脸书超过 10 年的自豪的 Y 一代代表,很容易猜测(正确地)脸书在我的个人资料中保留了相当多的信息(忽略媒体,有 21mb 关于我的数据,这是相当多的)。但是这些信息说明了我什么呢?

首先,我想随着时间的推移检查我在社交网络上的活跃程度,所以我创建了一个顺序评级机制,衡量我每年的活跃程度,考虑了这些年来我发起的喜欢、聊天天数、回复和帖子的数量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The extent of my activity in Facebook over years

对于那些想知道的人来说——2011 年活动增加的一个可能的解释是,这期间有多少空闲时间,因为我刚刚高中毕业,在被招募入伍之前有一个长假。此外,2010-2011 年是脸书在以色列最好的几年,这一事实得到了以色列“脸书”一词的谷歌搜索趋势的支持。:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Amount of the search term “פייסבוק” (“Facebook” in Hebrew) on google `over the years in Israel

无论如何,我可以说,在过去的十年里,我在社交网络中相当活跃,因此,我将允许我自己将高可靠性归因于我的脸书数据的长期统计。

告诉我你的朋友是谁,我就告诉你你是谁

今天,我的脸书账户有大约 1500 个朋友。快速计算会得出,在过去的十年里,我平均增加了 12 个(5 个?)每个月的朋友。为了集中精力探索,我决定(几乎是任意地)将数字 23 设定为一个阈值,定义为“高度社会化的月份”在我增加 23 个或更多朋友的每个月,我都试图根据那个月发生的重大事件来描述这一现象(这是我记忆所及),但我也试图观察我每月在脸书的活动与我的“朋友趋势”之间是否存在关联

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Monthly friend-trend over the past 10 years. the green color indicates a section above the threshold; the gray graph in the background represents my monthly activity on Facebook (according to the same ordinal rating I presented before). The sharp-eyed people will notice sections where there is considerable congruence between the trends of the two graphs.

很高兴看到过去几年里我在哪里结识了大多数脸书朋友。但是,还有什么更重要的吗?如果脸书只能根据朋友的趋势和与他们的联系来描述我生活中的里程碑呢?例如,他们可以用有趣的视频和恼人的音乐向我展示这些信息(就像他们经常做的那样)?或者,例如,脸书会给所有 18-21 岁(以色列的军事年龄)有相似朋友趋势的用户绘制地图,并找到最有可能拥有相同军事背景的人群?那更好。但是你明白我的意思;可能性无穷无尽。

一年级朋友

我不会轻易放弃对脸书的“喜欢”。我只“喜欢”我真正喜欢的东西。说到爱情,脸书的“爱情”反应也是一种罕见的商品。更具体地说,我认为“爱”的反应比“喜欢”的反应更有价值五倍,而一个评论比两个“喜欢”更有价值,我在聊天中与某人交谈的不同次数就其价值而言等于一次评论互动。当然,那只是我看待事物的方式,但是嘿!似乎我已经不知不觉地创建了一个评级模型来衡量我对脸书朋友的感情!

于是,我用上面提到的评分方法进行了一次测试(免责声明——不同于“喜欢”的回复在 2016 年才开始使用)。在清除了一些来自低分数用户的干扰后,我有了合理数量的数据来分析,因此我自动编辑了一个可以被定义为“脸书密友”的人的列表这甚至没有看我的内容。(回复模式、聊天中的关键词、标签评论数量等。).这意味着我可以只根据我上面提到的互动的存在来绘制我的数字社交朋友群。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Top friends according to my rating system, arranged in bubbles. The size of the circle as the size of the score; the color of the circle according to the score (from darker to brighter)

更有趣的是,我可以看到这些年来我的(数字)社交朋友群的变化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Same as the graph above, per year 2009–2018 (Yes, it looks like an image from a Biology book.)

当我为这些信息在多大程度上正确地讲述了我的生活故事而激动时,我不禁想到如何将它带入下一个明显的阶段,关系。

作为概念的证明,我还检查了我过去的成人关系的社交互动量:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

For privacy reasons, you will not see names/dates/numbers here. different colors indicate different relationships on a timeline, and the number of points is the number of times the interaction score has exceeded a certain threshold.

事实上,上面提供的信息与实际关系相符。这意味着绘制出“重要关系”及其持续时间是非常可行的。如果我考虑额外的参数,如性别、年龄、关键词、信息发送/接收比率、标签、取消喜欢电影《星际穿越》(must)的个人资料等(发挥创意,脸书有各种数据),这样的脸书算法不仅可以为我提供潜在的伴侣,还可以估计性取向,预测恋爱成功的可能性,事实上,它们可以做任何事情…想想看,没有什么可以阻止脸书成为最好的约会平台(事实证明,我是指出明显的)。

外景,外景,外景

不幸的是,这些年来我不允许脸书访问我的设备位置,所以脸书的数据库里没有这些信息。但为了不破坏我们有趣的旅程,我去了谷歌时间线(为那些不知道的人,这里是你在地图上的生活)并下载了这些年来从我的设备中收集的所有信息。

我做的下一件事是在脸书上绘制我曾经回应过的所有脸书事件,将它们钉在时间轴上,并将这些信息与我的谷歌位置历史相关联。这是它的样子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Timeline bars = Events marked as ‘going’. Points on the map = Location from these very same dates

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Specific example — my route on the day G&R performed in Tel Aviv — Welcome to the jungle baby!

如果你相信我对每一个事件做出反应的到达状态,那么就很容易在地图上确定事件的位置,反之亦然——很容易确定我是否出现在事件现场。那又怎样?嗯,也许脸书会根据我过去的行为向我提供我可能感兴趣的活动,或者脸书会与谷歌合作,标出哪些年龄组在什么时间、什么地点,这样他们就可以向这样那样的企业出售这些信息。再说一次——这只是取决于脸书想要获得多大的创造力。

其他一些东西

还有许多其他的发现,但是在这个阶段,我觉得这个问题已经被讨论完了,因此,我不会对以下数据类型进行更多的快速截图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Major activity hours on Facebook (there is nothing like a coffee break at 14:00)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Posts on my wall by months (It’s highly visual that my friends remember my birthday in January every year)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The most common words I make use of — mainly Hebrew pronouns, unsurprisingly. Imagine taking all my chat history and feed some machine learning algorithm with it (Did someone say Black Mirror S02E01?)

不幸的是,我不能给你提供对我的搜索历史的有趣分析,因为我时不时会清除它,但是聪明的读者可以想象他可能会在自己的搜索历史中找到什么宝藏。

收场白

依我拙见,用户世界大致分为三类:冷漠型、焦虑型和放任型。

第一组——如果你已经读到这里,做得很好。

第二组——我希望至少现在你已经阅读了这篇评论,你会确切地知道什么样的信息存储在脸书数据库的某个深处。出于您的考虑,在任何符合 GDPR 法规的组织中,您都可以要求删除您的个人信息(直至若干例外)。

第三组——你只是被邀请为它所拥有的丰富信息和机会感到兴奋,但也尝试和思考如何利用它来更好地造福用户。如果我们已经生活在一个每平方厘米都有广告的现实中,而我们很少与陌生人面对面交谈,难道我们不希望得到与我们需求最相关的广告吗?我们不是更喜欢最有希望的比赛吗?

强调存储在我们每个人身上的信息在目的、容量和意义上都是非常不同的,这一点非常重要。有许多因素会影响数据的完整性,其中最主要的是我们在互联网上的不同行为模式,我们在社交网络上活跃的时间,以及我们授予我们的应用程序的权限。此外,多年来,脸书不能被视为单一一致的信息来源。重要的是要考虑 Instagram、WhatsApp 和 Twitter 等其他应用程序多年来的觉醒,以及它们影响我们行为的方式。

我并不假装对社交网络/统计模型/行为科学有什么深刻的了解。这里介绍的所有研究完全基于我的直觉和个人观点,并不依赖于许多比我更好的人可能已经完成的先前研究,但我确实希望我已经实现了让这些信息可访问并说明其可能用途的目标。

由 Yoav Tepper 撰写,又名:

“开始他的成年生活”

与关于音乐、技术、艺术和度假主题的广告互动

拥有独特的指纹:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分析的局限性

原文:https://towardsdatascience.com/the-limits-of-analytics-101d93623adf?source=collection_archive---------4-----------------------

您的数据是否超出了极限?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Photo by Lukas Blazek on Unsplash

如今,在没有结构化分析的情况下推出一项产品或服务就像瞎飞一样。衡量和改进对于创造人们关心的东西至关重要。这是常识(或者至少应该是)。

虽然我很高兴看到客户和合作伙伴采用数据驱动的工作方式,但我开始看到数据被赋予过多信任的情况。为了确保您获得有效的洞察力以做出明智的决策,您必须首先回答两个关键问题:

我们在建造正确的东西吗?

你的分析,从定义上来说,提供了一个已经存在的过去的观点。这意味着您可以增量地改进流程,并且可能发现一些潜在的需求——但是不要认为它会告诉您需要构建什么。你可以得到验证,而不是确认。

例如,假设你有一个社交应用,用户不经常上传照片。这是否意味着你应该在应用程序中突出该功能?创建上传照片的奖励?或者干脆去掉这个功能?这些想法中的每一个都应该被提炼、测试和衡量,以确保我们理解根本原因。

这个问题可以在分析的帮助下部分解决,使用特别的措施和工具来评估想法。然而,这与您用来衡量核心产品和业务目标的结构化流程大相径庭。在任何情况下,数据只会补充深入的用户访谈、市场研究和其他定性技术。

我们问的问题对吗?

今天的工具提供了大量现成的仪表板和报告,包括“普遍”适用的 KPI:活跃用户、会话长度、崩溃率等等。但是,一般的措施仅仅是一般的。要获得可以操作的数据,您必须:

  1. 添加或调整对业务价值有直接影响的指标。跟踪在你的具体案例中导致转化的流程,标记积极和消极的交互,确保得出的数字实际上告诉你事情是否如你预期的那样工作:什么是可接受的响应时间?有多少用户应该完成注册漏斗?
  2. 删除对你的目标不重要的措施。有 50 个关键绩效指标的报告和没有报告一样有用——你根本不可能去追踪那些针。一个特别讨厌的威胁是虚荣心——我们都喜欢看到大量的下载和活跃用户,但这真的能维持增长吗?对于许多产品来说,留存率、转换率和病毒系数对底线有更大的影响。

你只能得到你所提问题的答案。如果你不专门去追求那些为你的用户创造价值(或者破坏价值)的东西,你从数据中得出的结论就不可靠。

结论

毫无疑问,分析应该是你在产品团队工作中不可或缺的一部分,但它不是唯一的工具。记住数据能告诉你什么,不能告诉你什么,并使用额外的方法来确保你看到了全局,并为正确的人构建了正确的东西。

最重要的是,不要被图表和数字冲昏了头脑。创建精确且相关的指标:每个 KPI 如何影响您的业务目标?如果此 KPI 向上或向下移动,您将采取什么措施?

你有数据误导你的例子吗?分享你的想法,继续关注我们关于健康数据怀疑论的(有点哲学的)讨论!

数据科学的局限性

原文:https://towardsdatascience.com/the-limits-of-data-science-b4e5faad20f4?source=collection_archive---------5-----------------------

组织无法实施数据驱动流程的根本原因

所表达的观点仅代表我个人,并不反映联合参谋部、美国陆军、国防部或美国政府的官方政策或立场。

我几乎完成了联合参谋部的一项任务,在一个组织中,我负责监控十个作战司令部、四个军种以及几个联合参谋部和国防部(DoD)参谋部之间的资金账户。这个多样化的领导小组一直在努力识别和描述账户对联合部队的影响,特别是在它所提供的价值方面。看着领导者努力寻找意义,即使有看似大量的数据,也让我对数据工具不太适合解决的挑战有了深入的了解。

这里描述的三个极限,从根本上来说,挑战是如此的根本,以至于我可以坦然地宣称这是数据科学的极限。数学意义上的极限——无法超越的东西。我可能曾经相信,如果我们能够更好地理解数据和它们之间的复杂关系,洞察力将得到启发,领导者将能够做出更快更好的决策。我不再认为这是事实。数据和证据有它们的位置,但也有限度。这些限制可能比你想象的要宽泛。

本文的主要目的是描述数据科学的这三个限制,并提供一些在您的组织中如何发现这些问题的线索。第一个问题是哲学上的,第二个是心理学上的,第三个问题涉及商业动态。目标是像应用专门工具一样应用数据科学,如果你有这些问题,那么你需要应用不同的工具。

一个公开的价值问题

你所在组织的领导层是否呼吁让他们的钱发挥最大价值,但却不能清楚地表达他们所谈论的价值。他们是否声称投资回报,但他们不是指回报的技术定义(以美元计),而是指某种其他模糊概念(如准备程度、弹性或能力)产生的回报?根据不同的目标,不同的利益相关者看到他们的计划的价值了吗?

这些陷阱表明,对于你的组织中的价值是什么,确实存在一个公开的问题。领导者不是试图理解他们如何创造价值,而是试图理解他们的价值是什么。如果你的主要工作是定义一个组织应该拥有什么样的价值观,那么数据科学是没有用的。

没有一种算法能够学习应该优化、最大化或最小化什么。

从广义上讲,数据科学(人工智能/机器学习)是一种经验性的努力。机器使用数学和算法来检查大量数据,以找到隐藏的见解,并更好地解释实际情况。更好地理解这些关系可以帮助领导者做出决策,但前提是他们必须就为什么要做出这些决策达成一致。

在 2011 年的电影 Moneyball 中,数据科学和统计学帮助奥克兰运动家队的经理们获得新的人才以赢得比赛。在电影中,评价球员的新方法和旧方法之间有很多冲突,但没有人不同意球队应该赢得比赛。老球探和年轻的统计学家都同意球队应该赢得更多的比赛。

但是赢得比赛的价值是一个公开的问题。这不是一个算法可以自己学习的东西。数据驱动的方法也许能够学会如何赢得游戏,但它可能很容易就学会了如何实现利润最大化。而且没有合理的方法将利润最大化与赢得比赛,或者任何其他潜在的组织目标结合起来。

撤销项目 中,迈克尔·刘易斯继续描述了美国在应用数据驱动战略方面的成功如何影响了大量行业,从体育到总统竞选。他还继续描述了当这种新策略没有产生结果时,组织已经回到更经典的方法的弧线。

但是数据科学的极限不在于数据驱动战略的好处。限制是关于选择哪些值是重要的。这几乎是在紧张的价值观之间的某种妥协。成本和安全,形式和功能,坚固性和复杂性。

你可能会说,组织应该达成妥协。接受一个目标的某个水平,最大化另一个目标。但是,在目标上妥协的过程本身是一个人的过程,而不是一个可以留给机器的过程。当然也不是数据能帮你解决的问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Credit: Wikipedia Commons

这个问题最早是由苏格兰哲学家大卫·休谟提出的,通常被称为是-应该问题或自然主义谬误。

…我惊奇地发现,除了通常的命题组合,,不是,我没有遇到一个命题不与一个应该或者一个不应该联系在一起。这种变化是察觉不到的;但是,这是最后的结果。因为这个应该,或者不应该,表达了某种新的关系或者肯定,所以有必要对其进行观察和解释。

数据科学找到了解释世界本来面目的复杂方法。但是,每当有人声称一个组织应该如何处理这些信息时,他们就在事实和价值之间建立了某种新的关系,这必须得到解释。

数据本身不能指导决策,因为它们是引导你实现目标的一种手段。没有目标,数据没有任何用处。领导者处理的许多问题与重要的事情关系不大,与应该重要的事情关系更大。

人际主观数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您的组织是否依赖大量自我报告的主观数据?

在军队中,衡量一支部队是否训练有素或准备就绪的方法主要是依靠该部队指挥官的直觉和智慧。但是你如何比较指挥官之间的这些判断呢?你能知道一个单位是否和另一个单位一样训练有素吗?

第二个问题源于人类心理学。威廉·詹姆斯在 1898 年偶然发现了试图测量疼痛的问题。医生可能会要求您对您所经历的疼痛给出一个数值。

这种方法的问题是 1 到 10 的范围不精确,其中 10 是“可以想象的最强烈的疼痛感觉”患者如何“想象”有史以来最严重的疼痛,并给自己的疼痛一个数字?从未到过战区的英国中产阶级男性可能很难想象还有什么比牙疼或网球受伤更让人痛苦的了。经历过分娩的女性,在那次经历之后,可能会将其他事情评为轻度 3 或 4 级。

罗宾斯博士将医生如何测量疼痛的困惑部分归因于当前阿片类药物的流行。我们感觉到的疼痛程度是一种主观状态,我们的语言和测量方法并不能像我们希望的那样帮助我们传达我们的内心状态。

传统的量表分配一个数字 1 =高度不同意,5 =高度同意,在比较个人价值观方面做得不错,但在比较个人之间或群体之间的事情方面做得很差。男人比女人感觉痛苦少吗?,数学专业的学生比心理学专业的学生更喜欢啤酒吗?

在一种测量理论中,这些类型的标度被称为序数标度。测量的序数尺度对于排序是有用的,但是将这种类型的数据用于加法和减法是不合理的。

试图测量主观事物(如指挥官对其部队执行任务能力的评估)的组织似乎受限于这些类型的数据。事实上,大多数政府数据主要是这种类型的。该机构依赖这些评估作为重要的信息来源。为了理解这种荒谬,我们需要简单介绍一下这些评估是如何产生的。

执行特定任务的评估被分解为从属任务。实际上,一个任务可以变成数百个任务。这些子任务被分配给不同的职能单位,以对其子任务进行评估(这可能是不同的指挥官,或组织参谋领导)。但是当有人(通常是准备经理或参谋长)必须从两个不同的功能单元收集输入时,他们就犯了前面提到的所有错误。一个指挥官对训练/准备就绪的理解与另一个不同。

与数据科学的第一个极限不同,这个问题有两条出路。然而,他们并不是没有自己的问题和并发症。

第一条出路是尝试并排除主观经验作为数据来源。论点可能是,随着数据集越来越大,我们将能够直接测量基本尺度的事物(时间、重量、温度等)。).组织可能会面临组合这些度量的效用问题,但是度量本身不再受制于个人的经验。我认为这个解决方案不令人满意。我将举一个例子来说明这一点。

一个军事单位可能有护送任务(驾驶多辆车从一个地点到另一个地点,同时为这些车辆提供安全保障)。在未来的世界中,所有的车辆上都有大量的传感器,我们可以想象关于车辆速度、位置和时间的输入。我们可以将这一点与其他数据结合起来,这些数据是关于士兵们在沿途遇到威胁时会采取什么行动的。

很明显,这些数据的任何组合都不能回答这个问题:“这支部队能有效地指挥护航吗?”这些数据可以被组合到某个车队索引中,但是回答业务问题需要对该索引进行其他解释。也许唯一的方法,也是最好的方法,可能就是问指挥官他们的部队是否能有效地指挥护航?

刘易斯描述了休斯顿火箭队总经理达里尔·莫雷在试图将数据整合到相关篮球能力时遇到的同样问题。

……即使是客观的、可衡量的信息,其有用性也是有限的。你需要,或者看起来需要,专家来观察工具的运行情况,以及在更好的竞争中,它们在玩不同的游戏时会发挥多大的作用。你需要球探来评估一个球员做他们知道在篮球场上最重要的各种事情的能力:投篮、得分、上篮。

解决这个问题的第二个方法是忽略主观数据的不合理组合,只使用主观报告的数据作为有用的输入。我们的愿景并不完美,但却行得通。我们的眼睛都有一个永久的盲点,但是我们非常依赖我们的视觉来穿越这个世界。

事实上,军方主要采用后一种方法。领导知道数据是主观的,我的评估和你的评估对于相同的事实可能是不同的(或者对于不同的事实可能是相同的评估)。但是这些主观评估就像组织的眼睛一样,为复杂的世界提供了一个粗略的方向。

商业动态和心智模型

约翰·斯特曼写了一本 920 页的厚书,讲述反馈和时间延迟对系统行为的影响。如果你对系统动力学不熟悉,这是一种理解、预测和管理复杂系统行为的有趣而有用的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Credit: MIT

在最初被称为“生产-分配游戏”的“啤酒游戏”的现场演示中,经理们暴露于他们的决策对系统行为的影响。该游戏模拟了 50 周的决策,其中每个玩家决定订购多少箱啤酒。一条线上有四个参与者:零售商、批发商、分销商和工厂。玩家被告知,他们可以想订购多少箱子就订购多少箱子(生产没有限制),而且客户的需求可能会有所不同。目标是库存中有尽可能少的啤酒,但销售尽可能多的啤酒。

大多数人没有很好地考虑他们自己的决定对他们的队友——对整个系统——的影响。

游戏通常会变得紧张,因为参与者会目睹供应链中的牛鞭效应。系统的底层结构,游戏规则,决定了它的行为。

在系统动力学中,这些结构由因果循环图描述。这些图表描述了系统行为的原因,而不仅仅是机器学习揭示的相关性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

A causal loop diagram describing the number of product defects.

系统动力学从业者使用 cuasal 循环图来说明决策者的心智模型。心理模型解释了一个过程在现实世界中是如何工作的。共享心智模型很重要,因为没有共享心智模型,领导者就无法就新数据的含义达成一致。评估培训深受这个问题的困扰。如果领导者对培训和绩效之间的关系有不同的心理模型,那么他们可能会以非常不同的方式寻找和解释数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3 different mental models of the relationship between training and performance

如果你认为训练和表现之间的关系可以通过左边的图表得到最好的总结,那么你就没有理由认为停止训练是重要的。任何可以花在训练上的额外时间都会有利于你的表现。

如果你认为培训和绩效之间的关系有一个收益递减点,那么你会想知道在什么点上你的资源会得到更好的利用。在收益递减的时候,你可能想把时间或金钱花在其他能提高绩效的方面。

如果你相信右边的心智模型,那么你不仅会担心收益递减,还会担心公开培训。你会担心花费太多的资源进行培训。

这些心智模式都不正确。它们总结了一个人对未来的信念。有一些方法可以通过查看过去的数据来验证你对未来的信念;但这不一定能让你相信你对未来的信念是错误的。

如果管理者对数据和组织的价值达成一致,但对该做什么仍有分歧,他们可能对自己的心智模型有根本的分歧。如果是这样的话,那么对这个有问题的系统建立一个共享的心智模型会比应用更多的数据科学更有用。

包装完毕

上面的批评都不应该被解读为数据科学没有价值。商业和政府中的许多问题都有一个经验性的答案,只要我们用正确的工具去正确的地方寻找答案。缺少具有正确技能的人来执行分析和回答这些问题仍然是一个问题。能够执行这种类型的数据工作的人员数量存在缺口,特别是从各种来源清理数据,这些来源从未被设计为一起使用。

即使你不打算在数据科学领域从事严肃的职业(无论这里的严肃是指什么),你也应该学习编码。r、python 和 java 是可能会存在很长时间的语言,对于理解无法在 excel 中打开的数据集非常有用。这些语言不仅允许您以新的方式理解和解释数据,而且编码的能力允许您获得不同的思维方式。

理解数据科学的局限性对领导者和分析师很有用。在开始收集数据和建立模型来预测未来之前,有必要考虑一下为什么你认为数据可以解决你的问题。

你隐式或显式地给了数据什么值?你组织中的其他人认同这些价值观吗?

数据是主观的吗?您将如何比较个人、下属单位或业务部门的主观数据?

你认为因果关系是什么?随着时间的推移,这种关系是如何变化的?有没有办法从过去的数据中检验这种信念?其他领导不同意你的这些关系吗?

如果这些问题中的任何一个都不能得到非常清晰的回答,那么追求数据驱动的战略或建立数据科学能力可能就没有什么价值了。领导者可能会抱怨缺乏数据,但他们真正缺少的是数据的意义。数据科学本身不会提供意义。这仍然是一项人工任务。

备注:

关于自然主义谬误和人际主观性问题的有趣音频入门,我推荐非常糟糕的巫师播客。

  1. 自然主义谬误
  2. 主观评估

关于信念如何影响你解读经济数据的方式的有趣视频。

概率软逻辑背后的逻辑

原文:https://towardsdatascience.com/the-logic-behind-the-probabilistic-soft-logic-80616b425535?source=collection_archive---------10-----------------------

继我之前的博客文章“概率软逻辑的高层次概述”之后,我们将关注 PSL 的核心。

我们在上一篇博客中讨论的样本规则(原子)由变量组成,并且是通用的格式。

例如

2.0:姓名(A,姓名 _A) &姓名(B,姓名 _B) &相似(姓名 _A,姓名 _B) →同一个人(A,B)

因此,我们称这些规则为“解除规则”。如果你记得接地是什么意思,我们可以重申,并提到这些规则还没有接地。所以,第一步是把实际值代入这些原子,得到一组基本规则,我们将在这里继续工作。

现在我们需要理解这些基于“和”和“或”的基本规则是如何被解释的,以至于 PSL 可以处理它。使用布尔逻辑,很容易观察到基本规则到逻辑规则的转换。但是对于处理软逻辑的 PSL 来说,它比简单的“1”或“0”要稍微复杂一些。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们从评估规则是否会“快乐”开始。

(在看了一些先决概念之后,我们将阐明规则的快乐到底意味着什么)。

规则的“快乐”将是基于规则体(规则的“如果”部分)和头(规则的“那么”部分)的真值的度量。由于规则的行为类似布尔逻辑,如果主体的真值较低,则规则将始终为真。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果身体有很高的真值,那么规则的快乐将取决于头脑是否快乐。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在《T4》中,如果瑞秋和莫妮卡真的是朋友,规则就是快乐。既然我们提到了 如果 (瑞秋,莫妮卡)是朋友 (菲比,莫妮卡)是朋友 那么 (瑞秋,莫妮卡)是朋友,结果就是这样。

但是在*(2)*中,因为我们考虑了如果-然后的关系,我们设想了瑞秋和莫妮卡不是朋友的场景。因为这个压头会很低,所以规则不会被满足。

所以我们仍然试图在这里传达一种直觉。但是我们需要从数学上明确这些函数实际上做什么。为此,我们使用 Lukasiewicz T-范数。

Lukasiewicz T-范数

Lukasiewicz T-norms 采用逻辑规则(A 和 B)主体的真值,并评估要满足的规则头部的最小所需真值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里上面将产生身体的真值

根据以上所述,可以观察到,这些逻辑具有与布尔逻辑完全一样的行为能力。当主体的所有真值都是 1 和 0 时,它能够产生 1 或 0,对于其他软真值,它将在 0 和 1 之间变化。

这里上面会产生身体的真值。

根据以上所述,可以观察到,这些逻辑具有与布尔逻辑完全一样的行为能力。当主体的所有真值都是 1 和 0 时,它能够产生 1 或 0,对于其他软真值,它将在 0 和 1 之间变化。

规则的快乐

现在回到规则的“快乐”,这也可以被称为规则的满意度。但是对于一个规则来说,快乐或满意到底意味着什么呢?

为了说一个规则被满足,头脑的真值应该至少和身体的真值一样大。

示例:

考虑以下情况,其中 B1B2 是基本规则主体的一部分,而 H1 是头部。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为身体中的原子建立真值我们需要找到头部的最小真值以满足规则。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以将上述内容转化为实际场景:

(瑞秋,菲比)是真值 0.7 的朋友。(菲比,莫妮卡)是真值 0.8 的朋友。那么在什么条件下会满足这个规则呢?

为了回答这个问题,我们解析 Lukasiewicz T-norms,其中 B1B2 映射到 A 和 b

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

据此,身体的真值为 0.5。所以,对于任何头部≥5 的值,规则都是快乐的或满足的。这意味着如果( RachelMonica) 的友谊的真值至少为 0.5,那么传递性规则将得到满足。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以当规则需要快乐或满足时,头部的真值应该是或超过上面案例中的 0.5。但是当头部的真值没有超过这个值会怎么样呢?当规则不能快乐或满足时会发生什么?

这就是另一个衡量标准“满意度”的背景。

满意距离

“距离”,在一般意义上,意味着一个人离某物有多远。调整到“满意的距离”,它仅仅意味着规则离满意还有多远。当头部的价值没有超过身体时,满足感的距离可以让我们洞察到规则离达到这样的满足感还有多远。

满意的距离作用于以下,这将导致 0 或身体和头部之间的差异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在上面我们规则的快乐评估中,规则的满意度是 0.5。如果我们将 0.7 的真值赋给头部,这意味着

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为身体的真实值是 0.5,而头部的真实值是 0.7,很明显,这个规则将会令人高兴或满意,因为头部的真实值大于身体的真实值。因此,在这里计算满意的距离,我们得到 0.0 满意的距离,因为规则将总是被满足,并且在这个实例中离被满足不远。

但现在让我们举一个反面的例子,头部的真值为 0.3,身体的真值保持不变。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这些计算计算规则是否得到满足以及离满足还有多远。但是我们可以通过给每条规则增加一个权重来增强这些规则,这将会给我们“满意的加权距离”。

总结到这一点,

  • 有一组已知的关系被发现为谓词。这些都有固定的真值。
  • 但是有些人可能不知道真实值,在这种情况下,我们得到满意度的加权距离。这就是概率论发挥作用的地方。

概率论

所有可能的分配都可以绘制成概率分布,并放置在概率模型中。并且概率将由那些加权的满意度距离来确定。

因此,继续下去,权重的可能值从 0 到无穷大,我们如何决定分配给每个基本规则的权重?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个概率模型复制了判别模型。所以在这里,我们为不同的真值赋值定义了一个概率分布,给了我们未知原子不同的解释。

这就给我们留下了模型中每个基本规则的 1 个基础或 1 个特征。该要素将满意度的距离作为其值。规则的权重将作为满意距离的参数。

所以根据这个概率密度,随着满意距离的增加,我们会失去更多的概率。此外,随着规则权重的增加,我们会更快地失去概率。这方面的概要是:

规则的权重越高→满足该规则就越重要

该模型是称为“铰链损失马尔可夫随机场”的特定类型模型的推广。

铰链损失马尔可夫随机场

铰链损失函数是一种表示机器学习中错误分类或不准确预测所导致的开销的方式。铰链损失在支持向量机(SVM)中被形象地用于最大间隔分类。因此,铰链损失马尔可夫随机场是离散马尔可夫随机场的分支,除了它的函数是铰链损失[1]。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PSL 模型总是基于铰链损失马尔可夫随机场。

参考文献

[1]巴赫,S. H .,布罗意切勒,m .,黄,b .,&格图尔,L. (2015)。铰链损失马尔可夫随机场和概率软逻辑。arXiv 预印本 arXiv:1505.04406。

机器学习工作流程

原文:https://towardsdatascience.com/the-machine-learning-workflow-8e83c3b008be?source=collection_archive---------15-----------------------

机器学习项目有什么不同?你如何在最短的时间内降低风险并建立一个可行的解决方案?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

普通软件开发中,你只需回答这个问题:

你想实现什么?

然后你,嗯,实施。

但是在机器学习项目中,你首先需要探索什么是可能的——用你拥有的数据。因此,第一个问题是:

什么 可以 实现?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以下是我们学到的让机器学习项目从开始到结束都保持在正轨上的方法:

1.定义任务

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

很容易被无处可去的人工智能项目吸引。一个正确的机器学习项目定义可以大大降低这种风险。

定义项目时,您需要回答以下问题:

了解当前流程

您目前的流程是什么?你的机器学习解决方案将取代一个已经存在的过程。在这个过程中,目前是如何做出决策的?当前的过程将教会你许多领域知识,并帮助你定义你的机器学习系统应该是什么样子。

定义你想要预测的内容

你想预测什么样的变量?定义你的机器学习系统的输出——尽可能详细。

列出有用的数据来源

你有什么有用的数据来正确预测这个输出?首先列出当前流程所依赖的数据源。列出有用数据源的一种方法是问自己:“如果我——作为一个人——需要做这个预测,我想要了解哪些数据点?”

如果你了解当前的流程,知道你想要预测什么,并识别出所有有用的数据来源,你就能很好地决定进入下一阶段是否有意义。

2.找到一种可行的方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

即使你有一个好的问题定义,你也无法知道你的机器学习模型最终会有多准确。以及是否值得替换当前的过程。

概念验证是了解最终解决方案的投资回报率的最经济的方法。这些是步骤:

研究

研究其他团队解决类似任务的所有方法——无论他们是否使用机器学习。然后制定一个计划,利用你所学到的,以及你从你想要取代的现有流程中学到的。

构建数据集

任何机器学习项目的中心部分都是样本数据集!这个数据集包括真实的例子,这些例子正是你希望你的机器学习系统做出正确预测的情况。可以把它想象成一个 Excel 表格,带有

  1. 每个示例一行,并且
  2. 许多列有用的输入数据,加上
  3. 一列包含输出(也称为目标)。

然后,模型必须学会根据输入预测输出*。例如,从客户的支付历史(输入)预测客户的信用等级(输出)。*

这个数据集就像普通软件项目中的需求文档——你检查自己是否在正轨上的参考点。

实验

从最有希望的方法开始,评估它,然后从那里改进。重复——直到你找到一个足够好的方法。

3.构建全面的解决方案

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

工作软件是进度的主要衡量标准。— 敏捷宣言

概念验证不会让你赚到钱。这些是实现稳定、全面解决方案的步骤。

提高精度

概念验证是 20/80 实施。现在是时候做出您在第一次迭代中遗漏的关键改进了:

  • 添加更多数据
  • 构建新功能
  • 尝试其他算法
  • 微调模型参数。

刻度

这是从概念验证脚本到生产就绪解决方案的一大步。

  • 可伸缩性&稳定性:将数据处理步骤重写为数据管道中独立的、可伸缩的任务。
  • 测试:编写额外的单元测试和集成测试——也包括数据中可能的错误。
  • 部署:构建灵活、可重复且简单的部署,满足您所需的吞吐量&处理速度(包括基础设施的自动构建)。

A/B 测试

与其他软件更新类似,新自动化流程的最终测试是与当前流程进行比较。通过 A/B 测试,你可以衡量你所取得的进步,以及你的项目的投资回报率。

API

您的机器学习服务需要一种方式来与基础设施的其余部分进行交流。这要么通过不断地将结果保存到数据库中来完成,要么通过 API 使算法可用。

文档

除了代码文档之外,您应该考虑编写一个用户指南来解释解决方案是如何工作的。澄清实现背后的思想很重要:在数据科学中,仅仅从代码中很难理解你的推理。

可选附件

  • 版本化。也许您需要针对旧的模型进行 A/B 测试,或者您需要在短时间内切换到您的管道的先前版本——正确的版本控制使这变得容易。
  • 自动化再培训。模型会过时,最终你将不得不根据新数据对其进行重新培训。在某些情况下,自动化模型更新是有意义的。

有任何问题或意见吗?下面让我知道。

如果你在机器学习问题上需要帮助——联系

【www.datarevenue.com】最初发表于

LSTM 神经网络的魔力

原文:https://towardsdatascience.com/the-magic-of-lstm-neural-networks-1e4a1f7d81c0?source=collection_archive---------8-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

LSTM 神经网络,代表LONGSshort-TermMemory,是一种特殊类型的递归神经网络,最近在机器学习社区得到了很多关注。

简单地说,LSTM 网络有一些内部的上下文状态单元充当长期或短期记忆单元。
LSTM 网络的输出由这些单元的状态调制。当我们需要神经网络的预测依赖于输入的历史背景而不是仅仅依赖于最后的输入时,这是一个非常重要的特性。

举个简单的例子,假设我们要预测以下序列的下一个数字:6 -> 7 -> 8 ->?。我们希望下一个输出是 9 (x+1)。但是,如果我们提供这个序列:2 - > 4 - > 8 - >?,我们想得到 16 (2x)。
虽然在这两种情况下,当前的最后输入是数字 8 ,但是预测结果应该是不同的(当我们考虑先前值的上下文信息而不仅仅是最后一个时)。

LSTM 网络通过整合一个允许信息从一个步骤流向下一个步骤的回路来管理保持输入的上下文信息。这些循环使得递归神经网络看起来很神奇。但是如果我们想一想,当你在读这篇文章的时候,你是在理解前面的单词的基础上理解每个单词的。你不会扔掉所有东西,从每一个单词开始思考。类似地,LSTM 预测总是受到网络输入的过去经验的制约。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

LSTM loop unrolled

另一方面,时间过得越久,下一个输出就越不可能依赖于一个非常旧的输入。这个时间依赖距离本身也是要学习的上下文信息。LSTM 网络通过“忘记门”权重来学习何时记住何时忘记。简单地说,如果遗忘门只是 0.9 的乘法因子,在 10 个时间步长内,该因子变成:0。⁹ ⁰=0.348(或 65%的信息被遗忘),以及 30 步内- > 0.04 (96%被遗忘)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

LSTM internal wiring showing the forget gate

在这篇文章中,我不会过多地谈论 LSTM 的技术细节。这篇博文很好地解释了他们的机制。相反,我将在这里介绍 LSTM 的不同应用汇编。

生成这样的文本可以转化为 LSTM 任务,其中每个字母的生成都要考虑所有先前生成的字母。事实上,教一个 LSTM 网络字母表可以成为第一个学习如何让 LSTM 学习东西的编程例子。安德烈·卡帕西,展示了 LSTM 根据你输入的训练集生成文本的不同例子。以下是一些自动生成的文本:

莎翁:

PANDARUS:
Alas, I think he shall be come approached and the day
When little srain would be attain’d into being never fed,
And who is but a chain and subjects of his death,
I should not sleep.Second Senator:
They are away this miseries, produced upon my soul,
Breaking and strongly should be buried, when I perish
The earth and thoughts of many states.

维基百科:

Naturalism and decision for the majority of Arab countries’ capitalide was grounded
by the Irish language by [[John Clair]], [[An Imperial Japanese Revolt]], associated
with Guangzham’s sovereignty. His generals were the powerful ruler of the Portugal
in the [[Protestant Immineners]], which could be said to be directly in Cantonese
Communication, which followed a ceremony and set inspired prison, training. The
emperor travelled back to [[Antioch, Perth, October 25|21]] to note, the Kingdom
of Costa Rica, unsuccessful fashioned the [[Thrales]], [[Cynth’s Dajoard]], known
in western [[Scotland]], near Italy to the conquest of India with the conflict.

XML:

<revision>
 <id>15900676</id>
 <timestamp>2002–08–03T18:14:12Z</timestamp>
 <contributor>
 <username>Paris</username>
 <id>23</id>
 </contributor>
 <minor />
 <comment>Automated conversion</comment>
 </revision>

奥巴马:

SEED: War on terror
Good everybody. Thank you very much. God bless the United States of America, and has already began with the world’s gathering their health insurance.
It’s about hard-earned for our efforts that are not continued.
We are all the assumptionion to the streets of the Americas that we are still for everybody and destruction.
We are doing a lot of this.
I know that someone would be prefered to their children to take a million insurance company. We’re watching their people and continued to find ourselves with Republicans — to give up on these challenges and despite the challenges of our country. In the last two years, we must recognise that our borders have access from the world. We’re continuing that this day of things that the United States will clean up it´s allies and prosperity to stand up enough to be a sanctions that we made their faith, and for the country of the Internet to Osama bin Laden.
Thank you. God bless you. Good morning, everybody. And May God loss man. Thank you very much. Thank you very much, everybody.

这是 Alex Graves 制作的一个动画,展示了一个 LSTM 网络在现场进行手写识别:

  • 第 1 行:显示被识别的字母(网络的输出
  • 第 2 行:显示存储单元的状态(注意当一个字符被识别时它们是如何复位的)
  • 第 3 行:显示了正在被 LSTM 分析的书写内容(网络的输入
  • 第 4 行:显示从最活跃的字符反向传播到输入的梯度。这体现了忘记的效果。

作为一个反向实验,这里有一些由 LSTM 生成的笔迹。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于现场演示,并自动生成一个 LSTM-'手’写文本自己,访问这一页

因为音乐,就像文本一样,是一系列音符(而不是字符),它也可以由 LSTM 通过考虑先前演奏的音符(或音符的组合)来生成。在这里你可以找到一个关于如何在 midi 文件上训练 LSTM 的有趣解释。否则,您可以欣赏以下生成的音乐(来自古典音乐训练集):

语言翻译可以看作是序列到序列的映射。一组研究人员与英伟达合作,公布了如何驯服 LSTM 完成这项任务的细节(第一部分第二部分第三部分)。
简而言之,他们创建了一个神经网络,其中一个编码器将文本压缩为更高抽象的矢量表示,一个解码器将其解码回目标语言。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Machine translation encoder/decoder architecture

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

English to french translation by NVidia

最后,LSTM 网络最令人印象深刻的用途是从输入图像生成描述图像内容的文本标题。微软研究院在这方面取得了很大进展。以下是一些他们的结果的示例演示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

你可以在这里自己尝试一下他们的在线演示:https://www . caption bot . ai

玩得开心!

原载于 2018 年 2 月 2 日medium.com

数据分析中分层的魔力

原文:https://towardsdatascience.com/the-magic-of-stratification-in-data-analysis-f1ee4800a283?source=collection_archive---------6-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在我关于 Medium 的第一篇文章中,我将简要回顾一下我认为统计学中最基本的问题——混淆,更重要的是,我们如何利用熊猫和一些可视化来处理这个问题。

人们可以通过想象一项流行病学家正在研究吸烟导致的死亡率的研究,很容易理解混淆。如果我们将样本人群分为吸烟者和非吸烟者,并观察死亡率,我们很快就会遇到如下问题:

  • 如果吸烟的人多了会怎么样?
  • 如果吸烟者比不吸烟者有更多更老更胖的人会怎样?

不考虑这些其他变量可能会导致研究中的偏差,并使结果非常可疑。这也是我高度怀疑任何出现在传统新闻来源和社交媒体上的夸张标题的原因之一。

我们将使用这个数据集来确定:

  1. 存在性别工资差距
  2. 这一差距在多大程度上可归因于对妇女的歧视

请注意,我们使用的数据已经过时,这篇文章的目的是说明技术,而不是进入关于工作场所性别歧视的辩论

让我们做我们的进口。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

For those new to reading in excel files, you might have to conda or pip install xlrd and openpyxl packages

数据集相对较小,有 527 行和 5 列。

输入变量

  1. 教育程度:研究中受试者完成教育的年数
  2. Exper:在他们的职业中经历的年数
  3. 女性:分类变量,其中女性=1,男性=0
  4. Union:分类变量,其中 Union 成员资格=1,Non-Union 成员资格=0

目标变量

  1. Hwage:不同的小时工资率

2.logHwage:Hwage 的自然日志

次要预处理

幸运的是,这个数据集已经进行了大部分预处理,但有一件事我们需要注意,那就是“Educ”变量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们把他们分成“初中”、“高中”和“大学”作为一个新的栏目。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据探索

让我们通过一些基本的视觉效果和表格来感受一下我们的数据集。通过可视化数据集,我们可能会得到什么属性可能是工资的重要决定因素的线索。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“女性”一栏在男性和女性之间相当平衡。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然而,“工会”属性不平衡,只有大约 22%的人属于工会。当进行因果推断和解释回归系数时,这可能是一个令人头痛的大问题,但是我们将保持联合变量不变,因为它似乎提供了相对于其他属性尤其是“女性”的有价值的信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“教育程度”和“教育水平”属性似乎很均衡,只有少数人是“初中”学生,但这是意料之中的,因为大多数美国人至少都是高中毕业生。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“Hwage”有一个偏斜的分布,这可能会有问题,所以我们将记录变量供以后使用。我们可以看到,在执行日志之后,“Hwage”具有更“正常”的分布。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

该数据集的一个预期但突出的特征是上述关系,即较高的教育水平等同于较高的工资率。

让我们看看这种关系是否对男性和女性都适用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里,我们得到了第一个暗示,一切都不太好,在丹麦可能有些东西已经腐烂了。在教育水平相同的情况下,男性(蓝点)往往在工资水平较高的人群中占主导地位,尤其是在“教育程度”较高的人群中。

这是否意味着男女之间存在明显的工资差距?

简洁量化视觉效果的一种方法是相关性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这种相关性意味着在确定工资率时最感兴趣的 3 个变量是:

  1. 教育水平——正相关
  2. 女性-消极关系
  3. 联盟-积极的关系

有些违反直觉的经验(Exper)与工资率的关联很弱。

让我们通过回归所有四个独立变量的工资(对数)率,对数据集进行 OLS 多元回归分析。

线性回归

import statsmodels.api as sm
import statsmodels.formula.api as smf

我使用 statsmodels 是因为它能够打印格式良好的回归统计数据,否则使用 scikit-learn 会产生完全相同的结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

检查 R 平方和 F 分数,模型的拟合优度相对较弱。总的来说,这不是一个非常令人满意的了解工资率差异的模型。

如果我们看一下系数,这个模型中最重要的四个属性依次是:

  1. 女性的
  2. 联盟
  3. 教育
  4. 经验

这个结果不同于相关性告诉我们的,也有些不同于视觉告诉我们的。

这种相关性暗示着教育水平是最重要的,而图片也在一定程度上支持了这一论断。

这是怎么回事?

首先,让我们确立这样一个观点,至少在这个特定的数据集中,在所有其他因素不变的情况下,男性和女性之间似乎确实存在某种普遍的工资差距。

第二个问题是,这种工资差距的驱动因素可能是什么?

回归表明,工会成员资格可能是答案,但我们已经从回归统计中知道,该模型受到混杂因素的严重影响。

一个可能的解决方案:将数据分层

对我来说,一个重要的观点是,数据科学并不总是给出明确的答案。有时,这是一个苦读指向不同结论的数据的问题。

统计学家设计的处理混淆的最简单也是最优雅的方法之一是将数据分层以深入细节。在 Python 中,简单胜于复杂,数据科学也是如此。

让我们通过首先创建一个全男性数据框架来仔细检查“Union”分类属性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们来了解一下加入工会给男性带来的好处。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从上面我们可以看到,加入工会后,男性的工资平均增加了 2 美元。

如果看一下上面的图像,在“Educ = = 12”标记处,我们可以清楚地看到加入工会的男性和未加入工会的男性的工资率之间的分界线。

现在让我们通过创建一个全女性的数据框架来看看女性的情况。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

经济理论告诉我们,工会可以帮助工人谈判获得更高的工资。这似乎是我们混乱局面的关键。

女性似乎还从工会会员那里获得了平均 2 美元的加薪。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如上图所示,问题在于,在数据集中,很少有女性是一个工会的成员!

因此,一种可能的解释是,女性的工资比男性低,因为女性没有获得工会会员的福利。

以这种方式对数据集进行分层给了我们一种可能的解释。

女性和联合之间有某种互动的可能性,但是我们假设没有这种关系。

但是还有一个更大的问题。

在全部 527 项记录中,只有 96 人加入了工会,而这 96 人中只有 28 人是女性。因为与男性相比,样本是如此不平衡,我们不能用对男性同样的方式解释回归系数(女性和结合)。

如果能有一些数据来揭示女性是否曾经怀孕,以及这些变量如何随着时间的推移而变化,那就太好了,因为工资率是一个动态变量。另一个重要的变量可能是男性和女性获得的大学学位的类型。

结论

在处理观察数据时,数据科学可能会很艰难。

然而,这并不意味着一切都完了。对数据进行分层和可视化可以提供新的见解,否则仅靠纯粹的回归分析是无法找到这些见解的。

尽管我在学校学过一些计量经济学,但用 pandas 和 seaborn 的工具挖掘这个特殊的数据集让我看到了分层方法是一种魔术。

在我结束之前,我想展示另一个分层表,我认为如果样本中有更多的工会妇女,它可能会有所启发。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果我们研究女性=1,并比较工会=1 和工会=0 的高中学生的工资率,工资率几乎没有增加大约 1 美元,这是我们在男性中看到的 4 美元增长的一小部分。

因此,如果工会变量更加平衡,我们可以陈述一个看似合理的案例,说明尽管拥有相同的教育水平和工会会员资格,妇女在薪酬方面仍受到歧视。

不幸的是,这个数据集不允许我们这样做。

*本文的 Jupyter 笔记本驻留在此处。

数据分析的多种未来

原文:https://towardsdatascience.com/the-many-futures-of-data-analysis-951bb2932943?source=collection_archive---------4-----------------------

有导游的短途旅行

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最近——作为我典型的书呆子饮食的一部分,包括演讲、会议讨论、学术论文等等。—我遇到了围绕一个共同主题的异常强大的资源继承:数据分析理论&实践的未来(&过去&现在)。我在这里收集了它们和一些笔记&评论,供我自己参考&其他可能感兴趣的人。

大致按从最宽泛和一般到更具体的顺序排列:

皇家统计学会小组讨论-数据科学与统计:不同的世界?

从 2015 年年中开始,这个话题在我的播放列表上已经有一段时间了,但我一直在回避它,因为它是一个老生常谈的话题,几乎没有突破或洞察力的潜力。对我来说不幸的是,我没有意识到整个小组会有多聪明&智力上的多样性,也没有意识到它会是我见过的最好、最令人愉快的小组之一。

参与者:

  • 克里斯·维金斯(纽约时报首席数据科学家)
  • 戴维·汉德(帝国理工学院数学名誉教授)
  • 弗朗辛·贝内特(乳齿象-C 创始人)
  • Patrick Wolfe(UCL 统计学教授/UCL 大数据研究所执行董事 )
  • 邹斌·格拉马尼(剑桥大学机器学习教授)
  • 主席:Martin Goodson(skim links 数据科学副总裁)
  • 讨论者:约翰·普林格(英国国家统计学家)

一些注意事项:

  • 行业对数据科学家的需求巨大,公司知道他们需要数据科学家,但不确定数据科学家是什么,也不知道如何聘用数据科学家(在技能组合等方面没有真正的共识)
  • 数据科学硕士项目通常很少甚至没有统计数据,以大数据框架为中心。当学生毕业时,他们可能会感到震惊&发现行业已经从他们接受培训的热门大数据框架转向下一个大事件。
  • 数据科学是一组“痛点”——克里斯·维金斯,首席数据科学家 NYT。(喜欢这个)
  • 人不要数据;他们想要答案-**-**戴维·汉德。数据和信息不是一回事。
  • 所有数据集都有问题,大数据集潜在的问题更大。是一个吸引人的幻想。
  • ‘大数据不代表小数据的终结,我可以用数学证明。“我可以将任何大数据集分割成许多小数据集:小数据比大数据多,”- 戴维·汉德。
  • 数据科学家“比任何程序员都更擅长统计,比任何统计学家都更擅长编程”:在行业中,这种广度往往比深度更好,加上沟通技巧,才能真正实现事情。
  • 统计学家必须承认并帮助构建范式转变,在这种转变中,我们学到的一切都适用于稀有、少量、昂贵且有意设计/收集的数据,但今天并非如此。不能只告诉每个人他们做错了。
  • 在行业中,数据科学是大量的收集、处理、清理、操纵数据,少量有趣的统计和机器学习,然后是大量的幻灯片和向高管解释——所以我们不要高估我们在这个管道中的作用(作为学者等)。要么让所有其他部分都是特别的,要么开始思考&为整个管道的理论和方法做出贡献,那里有许多有趣的研究挑战。
  • 如果统计学发展得不够快,其他学科也渴望进入这个领域。
  • 跨学科是关键
  • 统计学家是受过专业训练的怀疑论者,因为他们从根本上来说是保守的,通常是孤立的/不可接近的。不能一直是一个唱反调的社区,否则“实干家”会介入提供解决方案,这可能会不那么严格。
  • 程序员/黑客/制造者为了解决感兴趣的问题而修修补补,而受过传统训练的统计学家却迂腐地根据推论对一个未被观察到的群体说什么和不说什么,这之间存在着某种文化冲突。
  • 从统计学家的角度来看机器学习:欺骗人们学习统计数据的好方法。
  • 我们是否认为统计学是数学、科学或工程的一部分,这涉及到许多历史偶然事件。数学:目标是做出严谨的陈述,科学:理解事物并做出推论,工程:构建材料——“任务完成”的定义在每一个领域都有很大的不同。
  • 在美国,统计学与数学联系在一起是一个历史意外,因此约翰·图基、利奥·布雷曼的“异端传统”:告诫统计学不应该完全是关于严谨性,而是数据的首要性。
  • 从智力上来说,你今天读到的许多关于数据科学的内容很像 John Tukey 在 1962 年写的《数据分析的未来》,或者 Bill Cleveland 在 2001 年写的,或者 Leo Breiman 在各种劝诫中写的,要花更多的时间在数据和计算上。
  • 难怪图基发明了 FFT &单词“比特”,思想开放总是成功统计学家的标志。
  • 统计学的基础:理解和推理不确定性的框架,理解和推理可变性的框架——这些有时会在技术细节的教学或手工计算中丢失。
  • 我们需要有冒险精神和勇气的人,他们会冲进去,开发机器学习产品,其中一些会是灾难性的。也需要保守谨慎的人指出灾难发生的原因。重要的是保持统计数据,如果不是声誉,那么关键的能力。
  • 方法专家和领域应用专家之间,以及数据科学家和企业之间的沟通经常面临挑战。必须能够与决策者沟通,与知道数据在哪里以及为什么隐藏数据的人交朋友,等等。
  • 统计学有很强的历史传统,与来自不同学科(如自然科学)的人合作&用仔细的思考重新定义他们的问题&一种跨越许多问题的思考类型,用数据解决他们的问题,如实验设计。数据科学知识传统的祖先(Tukey,Breiman)花费大量时间进行咨询,他们来自高等数学教会,来到沙漠中行走,与具有真实问题和真实数据的真实人员一起工作,围绕探索性数据分析、数据可视化、CART、随机森林等进行思考,这并非偶然。
  • 180 年前,当几个世纪的传统被新的数据分析方法颠覆时,皇家统计学会的四位创始人之一查尔斯·巴贝奇厌倦了充满错误的人工计算,因此必须发明某种机器来改进它。还有第一位女性成员,弗洛伦斯·尼特恩加尔,她不在学术的密室里,而是带着对人们关心的问题的深刻见解面对世界。

爱德华·塔夫特:数据分析的未来

[## 主题会议:爱德华·塔夫特博士-数据分析的未来

数据分析寻求从经验中学习。更好的推论需要更好的思维和更好的工具。实用…

channel9.msdn.com](https://channel9.msdn.com/Events/Machine-Learning-and-Data-Sciences-Conference/Data-Science-Summit-2016/MSDSS11)

对图基【1962 年的开创性论文(被广泛认为奠定了“数据科学”大厦的第一块砖)的另一个致敬/暗示,这位现代数据可视化教父的演讲实际上不是我上面提到的最近作物的一部分,但仍然属于这里。我实际上用这个演讲框定了一个以前的中片段,它在这里也很相关。

下面是这个 twitter 帖子 &中的一些亮点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

罗杰·彭:数据分析的过去与未来

那个熟悉的标题又来了,这次借用的是约翰霍普金斯大学的罗杰·彭,以及大名鼎鼎的 Coursera 数据科学专业&不那么标准差 播客。

在这里,Roger 提出了一个有见地且具有启发性的案例,即对于什么是“好的”数据分析,我们仍然没有太多的理论或通用标准。利用与其他学科中设计模式的类比,音乐理论和数据可视化的经验方法,他主张发展数据分析的“美学”,并提供了一些建议。

(注意,罗杰和帕特里克·沃尔夫——来自上面的 RSS 小组——分享音乐背景,加入了分析师的稀薄领域,其中还包括吉杰伦泽,内特·西尔弗&……嗯……?)

下面是幻灯片摘录。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

理论统计学是应用统计学的理论:如何思考我们所做的事情

正如我叽叽喳喳:

赫尔曼教授再次证明了自己是个十足的疯子

(一个完全聪明、深刻的疯子)

真正的快乐是看着他在一个会议上发表演讲,人们带着钦佩之情“做工作”,关心棘手的理论和历史,并鼓励我们做出贡献

这与 Roger 的演讲非常吻合,因为 Andy 在 2017 年的 #RstatsNYC 大会上明确阐述了现实世界数据分析实用理论的实证发展(同时参考了 Hadley Wickham 的 Tidyverse 贡献作为范例)。在老式的盖尔曼时尚中,他以一种看似自由联想的方式即兴表演(没有幻灯片!)直到汇聚成尖锐、清晰、典型的卓越见解的几个时刻之一。

观看(再看)imo 绝对是一种享受。

fried erike Schür——谦逊的数据科学家:数据科学的本质和意外

Fast Forward Labs 的 fried erike Schür 在#RstatsNYC 发表的另一篇(也很精彩)文章中,再次深思熟虑地挖掘了一些经典理论文本(这一次是来自我们的计算机科学同胞),以获得对应用数据科学的现代见解。

弗里德里克的论点,正如我最初在推特上实时看到的:

我听从了她的建议,立即将上述内容添加到我的周末阅读清单中,并在推特上发布了一些摘录供日后参考。

很高兴后来找到她的谈话意识到它非常值得推荐。一些注意事项:

尽管围绕神经网络和其他闪亮的工具大肆宣传…

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(cf. ‘People don’t want data; they want answers’,from RSS panel above)

或者:“找到好的和有效的解决方案,只要问题需要就可以”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

left: Edsger W. Dijsktra — The Humble Programmer

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

敏捷开发方法并不总是适合数据科学,因为我们是真正的科学家,我们的工作是了解世界,…管理不确定性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为什么我们到处都能看到这么多深度学习的方法?…我认为是因为招聘的激励机制被搞乱了,如果有人想帮忙解决,请说吧。

再一次,我非常喜欢这部电影&大概总共看了 4 遍。

阿曼达·考克斯-不知道的空间

继续超级聪明和有趣的主题(&实际上是加大赌注):NYT 结果的编辑 Amanda Cox 在 Vis 2017 年的主题演讲中谈到了沟通和为不确定性留出空间。(正如我在之前说过 ,我不认为结果是不确定的2016 年……&那些选举之夜颤抖的速度表指针客观上是可怕的。但仍然是一个伟大的演讲。)

值得注意的亮点:

报纸应该分为四个部分:

1.真相
2。概率
3。可能性
4。谎言

…。第一部分会很短

-显然是托马斯·杰斐逊

  • 知道 vs 感觉不确定
  • 概率陈述的主观解释的广泛范围
  • 通过文字与数字/图形交流不确定性:

对于文字,我们没有太多的工具来严谨地对待不确定性……想要保持真实,但仍然说某事之间的平衡是一种内在的紧张

还有其他一些,但这些对我影响最大。作为参考,以下是上面提到的一些重要文本的链接:

一个在路上:

——
在推特上关注:@ dnlmc
LinkedIn:linkedin.com/in/dnlmc
Github:https://github.com/dnlmc

数据科学的地图

原文:https://towardsdatascience.com/the-map-of-data-science-e54b46e463ff?source=collection_archive---------2-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

大约一年前,我创建了这个机器学习算法的地图。如果我再创造一个,我很可能会增加一个深度学习的新大陆。

你想补充什么?

技术营销

原文:https://towardsdatascience.com/the-marketing-of-technology-93ac20db624f?source=collection_archive---------2-----------------------

技术革命的车轮转得比看起来要慢得多,它只不过是消费主义。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Tesla Roadster launched into space by SpaceX Falcon Heavy

我曾多次想过要写下这一点,但当每个人都更乐意蒙住自己的眼睛时,展示真相的纯粹无意义性,从来没有给我足够的动力去真正推进它。

直到昨天早上,我发现每一个自认为是极客/书呆子的人,不管对技术和/或科学有没有一点真正的兴趣,都会说“伙计,你看到特斯拉发布了吗?Omg。这是一些毒品狗屎!!!"

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Elon Musk fanbois all over reddit are best summed up by this

在我们继续之前一个非常重要的 解释 :我连埃隆·马斯克的十万分之一都不到。我既不是在批评他,也不是在批评昨天的事情。最重要的是因为我没有这样做的陈述权。粗略浏览一下互联网,你会发现一些大型出版物的一些大记者抨击了埃隆·马斯克昨天的行为,理由从“*把科学变成娱乐”*到“亿万富翁玩昂贵的玩具”。事情是这样的,埃隆·马斯克是一个亿万富翁而且他知道足够的科学知识来把它变成娱乐圈,所以是的,你只是在作为一个痛苦的失败者评论这样的事情。我所评论的是向消费者推销技术的更大计划。

容量为 16eb 的 2GB RAM 手机

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Rahul Sharma launching YU Televentures at DroidCon 2014, with me toggling the slides for him behind him.

我是一名天真的大二学生,在德里科技大学攻读电子和电气工程。我觉得我是房间里最聪明的人,无论你把我放在哪个房间。我的同学正在死记硬背拉普拉斯和傅立叶变换方程。我熬夜修改我的 Android Xperia 手机的内核,并把它发布在手机改装论坛上,成千上万的人下载并使用它。我对移动无线电和 GSM/CDMA/LTE 工作原理的了解比我大学里的任何通信系统教授都要多。我比在高通工作的任何一位前辈都更了解骁龙 CPU 是如何制造的。

由于我是唯一一个住在德里参与 CyanogenMod 项目的印度人,在我大学二年级时,明星们为我排队,成为 YU Televentures 核心团队的一部分,这是一家 Micromax 公司,它将第一部 Cyanogen OS 手机带到了印度——YU yure ka。

Watch from 37:40 to know what “64 bit” means. Watch from 58:10 to see what my contribution to YU was.

4 个月后,我站在新德里凯悦酒店 1 号宴会厅的舞台旁。Micromax 联合创始人、YU 首席执行官拉胡尔·夏尔马(Rahul Sharma);电信市场最成功的企业家之一;在舞台上,推出 YUREKA。64 位手机、LTE 手机、增强的操作系统功能——印度消费者还没有买到这些产品。

前一天晚上,我们在 Micromax 办公室夏尔马的房间里熬夜准备幻灯片。高通在我们身上下了很大的赌注,因为我们正在以中低端价位进入高端中端市场,这是众多联发科处理器中唯一的骁龙变体。高通在我们的甲板上有一个完整的特辑。有一整节都是关于 64 位的。拉胡尔·夏尔马(Rahul Sharma)在一个由 2 万名观众和几个新闻频道播放的直播流中,解释了 64 位技术如何帮助我们支持 16eb 内存(在上面的视频中为 37:40)。 在配有 2GB 内存的手机上: 手机的内存是烧在主板上的。它甚至不可扩展。

是的,64 位地址空间意味着理论上一个 CPU 可以使用 16 EB 的内存。但在 2014 年,手机曾经有 2GB 的内存,64 位 ARM 并没有带来什么变化,因为 32 位已经可以支持高达 4GB 的内存。我们有两个版本的操作系统,64 位版本在基准测试中比 32 位版本差,因为 arm64 是一个不成熟的平台,优化甚至没有触及 Clang 或 GCC 工具链。这意味着除了代码的某些部分使用 64 位整数uint64_t之外,代码的其余部分被简单地编译,与 32 位 ARMv7 目标相同。我们要赶上最后期限,要发布一款手机,还要为此付出数百万美元。所以我们像 bit-妓女一样卖 64 位,在基准应用运行的时候通过超频来欺骗基准(不要那样看着我,每个手机都是这样)。

但这些都不重要。再看一遍视频,但是从 1:02:00 开始。这才是最重要的。人们预计以 20,000 印度卢比推出的手机,以 8,999 印度卢比推出。在印度移动生态系统的分水岭时刻,写有 29999 的计数器以合适的 Impact 字体出现,急速下降到 9999,然后最终被 8999 取代。这个价位,除了夏尔马自己之外,参与 YU 的前 6 名高管中没有人知道。

当时,一名困惑的大二学生认为自己比世界上其他人更了解手机,但不知道该和谁分享他刚刚发现的事实——印度最大手机制造商的创始人对 CPU 架构一无所知。

今天,我知道,如果我能够实现 Rahul Sharma、Vikas Jain 和 Sumeet Arora 在印度与中国主导的电子市场进行斗争,创造一个本土品牌,并在某一时刻售出印度所有智能手机的近 50%的成功故事的 1%,这本身就是一项成就。拉胡尔·夏尔马是有意还是无意地在一个 2GB 的芯片里卖出了 16 EB 的 RAM,这并不重要。(郑重声明,我在适当的时候与他的广泛互动证明,他并非不知道 CPU 架构,而是非常清楚如何创建销售百万部手机的演示文稿)

蝙蝠战车是黑色的,但是在 HDR 有吗?

有很多以科技新闻的名义兜售的马粪,但这篇名副其实的 Popsci 文章——“HDR”是目前消费科技领域最令人困惑的术语是一个良好的消费者教育的例子。

HDR——代表高动态范围,是源于技术的术语之一,但后来成为各种产品行业营销部门的噱头生成器。原因显而易见。任何涉及“范围”的产品,无论是相机(曝光范围)、电视(颜色范围)、麦克风(录制的音频范围)还是扬声器(播放的音频范围),都可以简单地扩展其范围,并开始自称为 HDR。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

HDR Cameras (shown here HDR on Sony Xperia Z) make the lighting more ‘life-like’ because our eyes can simultaneously see bright and dark patches — a feature that only cameras with HDR have.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

You might think the sun has set a bit more in the lower photo, but no, it is HDR in action.

带 HDR 的相机在同一张照片中可能会有低曝光点和高曝光点。

HDR 的照片或视频需要在 PS4 Pro 或最新的 Apple TV 等设备上播放,以同时显示低曝光和高曝光区域。

然后,您需要将它们连接到支持 HDR 的显示器上,才能真正看到差异。

但是,当你购买 HDR 电视时,不要忘记检查他们是指电视有 HDR 显示屏还是指电视中的扬声器是 HDR 扬声器。因为是的,同时支持超高频(高音)和超低频(低音)的扬声器现在被称为 HDR 扬声器。显然,老术语“全频”扬声器不再那么吸引人了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于营销主管来说,他们销售的电视是 HDR 音频还是 HDR 屏幕有关系吗?可能现在。当你在最近的百思买(BestBuy)或亚马逊(Amazon)上花钱,把电视拿回家,打电话给你的朋友看下一场比赛时,他们会过来问“它有 HDR 吗?”。他们真的知道 HDR 是什么吗?真的需要给出正确答案吗?你需要让他们澄清吗——你是指演讲者还是视频?咩。没人在乎。你的队现在赢了。把啤酒拿出来。即使动态范围不高,你也绝对可以。

你知道 HDR 还有什么吗?如果你在高山上建造一个实用的射击场。(如果你没听懂这个笑话,没关系,这需要花很多时间去谷歌一下)。

这些机器花了太长时间来学习

最近有多少次你被告知,这是机器学习的时代,人工智能将吃掉你的工作。最近有多少头条新闻尖叫着自动化正在夺走工作。当人工智能末日降临到我们头上时,埃隆·马斯克(Elon Musk)一直在嘶哑地哭诉我们如何需要最低工资。

事实是,在被夸大为生命、宇宙和一切的答案的事物列表中,人工智能仅次于上帝和区块链。虽然我并不鄙视人工智能,但并不是深度神经网络和卷积网络驱动有感知能力的机器人在观察它们后学习像人类一样行事,夺走了工作。罪魁祸首更有可能是微软办公套件自动取款机/信用卡机

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

On assembly lines, most of the grunt work is already automated, so please.

尽管埃隆·马斯克(Elon Musk)正在向特斯拉推送一个又一个自动驾驶补丁的更新,类似于微软更新他们的 Windows 10 笔记本电脑,并危及数百名特斯拉车主的生命(其中包括一名因自动驾驶而死亡的人),但事实是,自动驾驶汽车不仅仅是过去的地平线,,而是一条漫长的道路。在那个领域,科技媒体的耐心越来越少

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Truer words haven’t been uttered

我们刚刚度过了人工智能革命被高估的两年,实际影响将在 2020 年开始影响我们。

被“推销”是一种非人的经历,而且很伤人

曾经有一段时间,正常人、大器晚成者、冲浪运动员和“大众”对智能手机不感兴趣。极客、技术知识分子、wave 创造者、早期采用者刚刚接触到这个将一台成熟的计算机放入他们手掌/口袋的设备。

讨论围绕着 CPU 时钟速度和功能以及操作系统升级。修改操作系统并给它添加一些时髦的功能是很有趣的。

然后就成了主流。市场部接管了技术人员的工作。公关人员,主要的产品负责人,而不是主要的 T2 技术负责人参加了新的发布会。现在讨论的焦点是内核的数量(只要你称之为八核,谁会在乎所有 8 个内核不能同时运行)。如果你的手机没有两个摄像头,那它有什么用呢?谁在乎它里面装了什么传感器。

阅读和购买智能手机甚至都不是一种愉快的体验。你不再是酷精英的一员了。你是人群中的一员。购买自拍相机像素最高的最便宜手机的人群。即使你比大众聪明也没关系。这些手机将面向整个人群进行销售。没人在乎你知道手机是怎么制造的。你的父亲、出租车司机、秃顶的邻居、咖啡店里的陌生人、网络上随机出现的巨魔——他们现在都有给你买智能手机的建议。这很简单——你需要买一部 ARM128 手机,因为它支持 274877906944 兆字节的内存。这难道不是很有道理吗?
(你的脑袋可能会被这样的想法炸开——该死的 yottabytes,想想 YotaPhone ,它甚至可以在关机、没有电池的情况下显示信息)

这是营销和消费主义的分层蛋糕

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

消费者认为自动驾驶汽车和比特币驱动的经济即将到来,因为开发者认为 NLP、人工智能和区块链的下一个大事件即将到来。

之所以这样认为,是因为工程师们确信,深度学习、人工神经网络和密码学的第二次出现就在眼前。

机器学习不是 2016 年给人类的礼物。阿瑟·塞缪尔在 20 世纪 60 年代初告诉世界计算机将如何学习创造新的逻辑。然而,50 多年后,我们只取得了一群推特巨魔把微软的机器人变成了种族主义混蛋,不得不被杀死

当谷歌和苹果忙于兜售虚拟现实是最新金矿的观点时,我无法理解人们怎么会轻易忘记虚拟现实自 20 世纪 50 年代就存在了

量子计算是 40 年前的 1980 年左右提出的一个想法。模糊逻辑被修补的时间也一样长。自古以来我们就在寻找 P = NP 的解。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Alexey Leonov, first spacewalk (Americans like to call it EVA not spacewalk, so that Ed White can get the honour instead)

事实是,你周围的一切都乱套了。在 20 世纪 50 年代,我们可以用火箭把汽车送上太空,但这种亿万富翁挥舞老二的比赛在当时并不流行。

流行的是美国对苏联的老二挥舞。因此,1965 年 3 月和 6 月,苏联和美国分别进行了第一次太空行走。真正的人类。不是特斯拉跑车里的假人。

(至少我们知道,太空探索只是由男性亿万富翁或核储备超级大国的老二挥舞竞赛推动的)

从 20 世纪 50 年代到 20 世纪 80 年代,我们从 8 位计算发展到 64 位计算。然而,我们在 21 世纪初的 PC 市场上看到了一波 64 位营销浪潮,在 2010 年中期,移动设备也出现了完全相同的情况。核心战争在 8 核时代结束了。百万像素战争在 20 MP 时消失,比特战争将在 64mp 时消失,因为你只能如此努力地推动营销,直到你远离实际的实际考虑,任何事情都不再有意义。它只需要一个 128 位 16 核 CPU 翻牌或一个 4000 万像素的相机在市场上爆炸,为营销热闹停止。但是直到人群能被喂以更高的数字,你必须跟上在你眼前的人类集体的愚笨。

下一件大事总是在明天发生。也可能不是。炒作机器很容易让自己陷入其中。但是,伟大的技术营销机器将继续向你发射一排又一排炫目的首字母缩略词和重新散列的 30 年前的产品,而几乎不考虑你的认知能力。只要大众消费它,你就能在 2GB 芯片上买到 16 EB 的内存。

使用示例 Python 代码进行 A/B 测试背后的数学原理

原文:https://towardsdatascience.com/the-math-behind-a-b-testing-with-example-code-part-1-of-2-7be752e1d06f?source=collection_archive---------0-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Animation by Gal Shir

在参加 Google 在 Udacity 上的 A/B 测试课程时,我对课程中没有明确涵盖的一些数学步骤有一些疑问。这是可以理解的,因为本课程是一个压缩和简明的概述。为了解决我的问题,我求助于网络上的其他资源,并决定总结一下我在这篇文章中学到的东西。

A/B 测试大纲

  1. 准备实验。
  2. 运行测试并记录每组的成功率。
  3. 绘制两个样本之间差异的分布图。
  4. 计算统计功效。
  5. 评估样本大小如何影响 A/B 测试。

1.准备实验

我们将为一家假设的公司运行 A/B 测试,该公司试图增加注册高级帐户的用户数量。运行 A/B 测试的目的是评估网站的变化是否会导致特定指标的性能提高。您可能会决定测试非常简单的替代方案,例如更改网页上单个按钮的外观,或者测试不同的布局和标题。您还可以对多步骤流程运行 A/B 测试,这些流程可能有许多不同之处。这方面的例子包括注册新用户或在在线市场上处理销售所需的步骤。A/B 测试是一个庞大的课题,有许多关于建立实验的技术和规则。除了 Udacity 课程,下面还有一些其他有用的资源:

对于这篇文章,我将保持简单,这样我们就可以专注于数学。

基线转换率和提升

在运行测试之前,我们将知道我们想要测试的基线转换率期望提升量或签约量增加量。基线转换率是我们在现有设计下签约新用户的当前比率。在我们的例子中,我们希望通过测试来确认我们对注册流程所做的更改将会导致注册率至少增加 2%。我们目前为 100 个用户中的 10 个注册了高级账户。

# code examples presented in Python
bcr = 0.10  # baseline conversion rate
d_hat = 0.02  # difference between the groups

对照组(A)和试验组(B)

通常,参与 A/B 测试的用户总数只占用户总数的一小部分。用户被随机选择并被分配到控制组或测试组。你决定的样本大小将决定你需要等多久才能收集到足够的样本。例如,拥有大量受众的网站可能能够很快收集到足够的数据,而其他网站可能需要等待数周。有些事件即使在高流量的网站上也很少发生,因此确定必要的样本量将有助于您尽快评估您的实验并继续改进其他指标。

最初,我们将为每个组收集 1000 个用户,并为控制组提供当前的注册页面,为测试组提供新的注册页面。

# A is control; B is test
N_A = 1000
N_B = 1000

2.运行测试

因为这是一个假设的例子,我们将需要“假”数据来处理。我写了一个函数,可以为我们的模拟生成数据。这个脚本可以在我的 Github repo 这里找到。

ab_data = generate_data(N_A, N_B, bcr, d_hat)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

generate_data函数返回左边的表格。仅显示前五行。converted列分别用 1 或 0 表示用户是否注册了高级服务。A组将作为我们的对照组,而B组将作为我们的测试组。

让我们来看看在 Pandas 中使用数据透视表函数的结果汇总。

ab_summary = ab_data.pivot_table(values='converted', index='group', aggfunc=np.sum)# add additional columns to the pivot table
ab_summary['total'] = ab_data.pivot_table(values='converted', index='group', aggfunc=lambda x: len(x))
ab_summary['rate'] = ab_data.pivot_table(values='converted', index='group')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看起来两组之间转化率的差异是 0.028,大于我们最初想要的 0.02 的提升。这是一个好迹象,但这还不足以让我们自信地采用新设计。在这一点上,我们还没有衡量我们对这一结果的信心。这可以通过观察两组的分布来缓解。

3.比较两组

我们可以通过绘制对照组的分布图并计算从我们的测试组获得结果的概率来比较这两组。我们可以假设对照组的分布是二项式的,因为数据是一系列伯努利试验,其中每个试验只有两种可能的结果(类似于掷硬币)。

fig, ax = plt.subplots(figsize=(12,6))
x = np.linspace(A_converted-49, A_converted+50, 100)
y = scs.binom(A_total, A_cr).pmf(x)
ax.bar(x, y, alpha=0.5)
ax.axvline(x=B_cr * A_total, c='blue', alpha=0.75, linestyle='--')
plt.xlabel('converted')
plt.ylabel('probability')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对照组的分布以红色显示,测试组的结果以蓝色虚线表示。我们可以看到,从测试组得到结果的概率非常低。**然而,概率并不传达结果的置信水平。**它没有考虑我们测试组的样本量。直觉上,随着样本量的增加,我们会对结果更有信心。让我们继续将测试组的结果绘制成二项式分布,并将这些分布相互比较。

二项分布

fig, ax = plt.subplots(figsize=(12,6))
xA = np.linspace(A_converted-49, A_converted+50, 100)
yA = scs.binom(A_total, p_A).pmf(xA)
ax.bar(xA, yA, alpha=0.5)
xB = np.linspace(B_converted-49, B_converted+50, 100)
yB = scs.binom(B_total, p_B).pmf(xB)
ax.bar(xB, yB, alpha=0.5)
plt.xlabel('converted')
plt.ylabel('probability')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Binomial distributions for the control (red) and test (blue) groups

我们可以看到,测试组比控制组转化了更多的用户。我们还可以看到,测试组结果的峰值低于对照组。我们如何解释峰值概率的差异?我们应该把重点放在转化率上,这样我们就可以进行比较。为了进行计算,我们需要对数据进行标准化,并比较每组的成功概率 p

伯努利分布和中心极限定理

为此,首先考虑对照组的伯努利分布

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中 p 是对照组的转化概率。

根据伯努利分布的性质,均值和方差如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

根据中心极限定理,通过计算许多样本的平均值,我们可以近似得到群体的真实平均值 𝜇 ,对照组的数据就是从这个群体中获取的。样本平均值的分布, p ,将围绕真实平均值呈正态分布,其标准偏差等于平均值的标准误差。这方面的公式如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因此,我们可以将两组都表示为具有以下属性的正态分布:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测试组也可以这样做。因此,p_Ap_B有两个正态分布。

# standard error of the mean for both groups
SE_A = np.sqrt(p_A * (1-p_A)) / np.sqrt(A_total)
SE_B = np.sqrt(p_B * (1-p_B)) / np.sqrt(B_total)# plot the null and alternative hypothesis
fig, ax = plt.subplots(figsize=(12,6))x = np.linspace(0, .2, 1000)yA = scs.norm(p_A, SE_A).pdf(x)
ax.plot(xA, yA)
ax.axvline(x=p_A, c='red', alpha=0.5, linestyle='--')yB = scs.norm(p_B, SE_B).pdf(x)
ax.plot(xB, yB)
ax.axvline(x=p_B, c='blue', alpha=0.5, linestyle='--')plt.xlabel('Converted Proportion')
plt.ylabel('PDF')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Control (red) and test (blue) groups as normal distributions for the proportion of successes

虚线代表每组的平均转化率。红色虚线和蓝色虚线之间的距离等于对照组和测试组之间的平均差异。d_hat是两组随机变量之差的分布。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总和的方差

回想一下,零假设表明两组之间的概率差为零。因此,这个正态分布的平均值为零。正态分布需要的另一个性质是标准差或方差。(注:方差是标准差的平方。)差异的方差将取决于两组概率的方差。

方差的一个基本性质是:两个随机自变量之和的方差是方差之和。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这意味着零假设和替代假设将具有相同的方差,该方差将是对照组和测试组的方差之和。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标准偏差可计算如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果我们把这个方程用伯努利分布的标准差来表示, s :

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们得到了合并标准误差萨特思韦特近似。如果我们计算混合概率,并使用混合概率计算两组的标准差,我们得到:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这与 Udacity 课程中使用的等式相同。合并标准误差的两个方程将给出非常相似的结果。

这样,我们现在有足够的信息来构建零假设和备择假设的分布。

比较零假设和替代假设

让我们从定义[零假设和替代假设](http://the null hypothesis and the alternate hypothesis)开始。

  • 无效假设是指试验组的设计变更不会导致转换率发生变化。
  • 另一个假设是相反的观点,即测试组设计的改变会导致转换率的提高(或降低)

根据 Udacity 课程,零假设将是均值为零的正态分布,标准偏差等于合并标准误差。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The null hypothesis

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

替代假设与原假设具有相同的标准差,但平均值将位于转换率的差异处d_hat。这是有意义的,因为我们可以直接从数据中计算转化率的差异,但正态分布代表了我们的实验可能给我们的可能值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The alternative hypothesis

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既然我们理解了合并标准误差的来源,我们就可以直接为将来的实验绘制零假设和替代假设。我写了一个脚本来快速绘制无效假设和替代假设,abplot,可以在这里找到

# define the parameters for abplot()
# use the actual values from the experiment for bcr and d_hat
# p_A is the conversion rate of the control group
# p_B is the conversion rate of the test groupn = N_A + N_B
bcr = p_A  
d_hat = p_B - p_A
abplot(n, bcr, d_hat)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Null hypothesis (red) vs. alternative hypothesis (blue)

从视觉上看,零假设和替代假设的图与上面的其他图非常相似。幸运的是,两条曲线在形状上是相同的,所以我们可以比较两个分布的平均值之间的距离。我们可以看到,替代假设曲线表明,测试组的转化率高于对照组。该图也可用于直接确定统计功效。

4.统计功效和显著性水平

我认为,通过首先显示它们在无效假设和替代假设图中是如何表示的,来定义统计功效和显著性水平更容易。我们可以通过添加参数show_power=True返回统计能力的可视化。

abplot(N_A, N_B, bcr, d_hat, show_power=True)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Statistical power shown in green

绿色阴影区域代表统计功率,功率的计算值也显示在图上。上图中的灰色虚线代表零假设的置信区间(上图为 95%)。统计功效的计算方法是找出替代假设分布下和无效假设的置信区间之外的面积。

在运行我们的实验之后,我们得到了两组的最终转化率。如果我们计算转换率之间的差异,我们最终会得到一个结果,即差异或设计变更的影响。我们的任务是确定这个结果来自哪个人群,是零假设还是替代假设。

替代假设曲线下的面积等于 1。如果备选设计确实更好,则功效是我们接受备选假设并拒绝零假设的概率,等于绿色阴影面积**(真阳性)。替代曲线下的相反区域是我们接受零假设和拒绝替代假设的概率(假阴性)**。这在 A/B 测试或假设测试中被称为 beta ,如下所示。

abplot(N_A, N_B, bcr, d_hat, show_beta=True)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Beta shown in green

将替代曲线下的区域一分为二的灰色虚线也直接分割与显著性水平相关的区域,通常用希腊字母 alpha 表示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The green shaded area has an area equal to 0.025, which represents alpha.

如果零假设为真,并且在对照组和测试组之间确实没有差异,那么显著性水平是我们拒绝零假设并接受替代假设**(假阳性)**的概率。假阳性是指我们错误地认为新设计更好。这个值很低,因为我们想限制这个概率。

通常,问题会以期望的置信水平而不是显著性水平给出。A/B 测试的典型 95%置信水平对应于 0.05 的显著性水平。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Significance Level (alpha) and Confidence Level

当您评估 A/B 测试的结果和不同的结果概率时,参考混淆矩阵可能会有所帮助。

实验通常设置为 80%的最小期望功率。如果我们的新设计真的更好,我们希望我们的实验表明至少有 80%的可能性是这样。不幸的是,我们目前的实验只有 0.594 的功效。我们知道,如果我们增加每组的样本量,我们将减少无效假设和替代假设的混合方差。这将使我们的分布更窄,并可能增加统计能力。让我们看看样本大小将如何直接影响我们的结果。

5.样本量

如果我们用每组 2000 个样本而不是 1000 个样本再次运行我们的测试,我们会得到下面的结果。

abplot(2000, 2000, bcr, d_hat, show_power=True)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们的零假设和替代假设的曲线变得更窄,替代曲线下的更多区域位于灰色虚线的右侧。功效的结果大于 0.80,符合我们的统计功效基准。我们现在可以说我们的结果在统计学上是有意义的。

你可能会遇到的一个问题是确定实验所需的最小样本量。这是一个常见的面试问题,了解这一点很有用,因为它直接关系到你能多快完成实验,并向你的设计团队提供具有统计意义的结果。您可以使用网上提供的计算器,例如下面这些:

[## 样本量计算器(Evan 出色的 A/B 工具)

可视化交互式样本量计算器,非常适合 A/B 测试。

www.evanmiller.org](http://www.evanmiller.org/ab-testing/sample-size.html) [## A/B 测试样本大小计算器

使用这种方法,您不再需要使用样本量计算器来确保结果的有效性…

www.optimizely.com](https://www.optimizely.com/sample-size-calculator/?conversion=10&effect=20&significance=95)

您将需要基线转化率(bcr)和最小可检测效应,这是您或您的团队首先确定值得投资进行设计变更的对照组和测试组之间的最小差异。

我想写一个脚本来做同样的计算,但需要找到正在使用的方程。经过大量搜索,我找到并测试了这个来自斯坦福讲座的等式。(警告:链接打开 Powerpoint 下载。)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Equation for minimum sample size

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

许多人从表格中计算 Z,比如这里显示的和这里显示的。然而,我更像是一个视觉学习者,我喜欢参考 Z 分布的图,这些值就是从 Z 分布图中得出的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Plot for typical significance level of 0.05 or confidence level of 0.95 (z = 1.96)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Typical z-score for power level of 0.80 (z = 0.842

这些 z 图的代码可以在我的 Github repo 这里找到。

以下是针对最小样本量执行相同计算的 Python 代码:

我可以通过运行另一个 A/B 实验来证明这个方程返回了正确的答案,实验的样本大小是由这个方程得出的。

min_sample_size(bcr=0.10, mde=0.02)
**Out: 3842.026**abplot(3843, 3843, 0.10, 0.02, show_power=True)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

该样本大小的计算功效约为 0.80。因此,如果我们的设计变更在转化率方面有大约 2%的改进,我们将需要每组至少 3843 个样本,统计功效至少为 0.80。

这是一个非常长但基本的 A/B 测试演练。一旦你理解并熟悉了这个过程,你就有可能进行一个实验,并直接进入无效假设和替代假设的图表,以确定你的结果是否达到了足够的功效。通过计算实验前所需的最小样本量,您可以确定需要多长时间将结果反馈给您的团队以供最终决策。

如果你有什么问题,我可以试着在下面的评论里回答。如果你喜欢这篇文章,请👏。大声喊出来布莱恩·麦克加里编辑笔记。感谢您的阅读!

机器学习背后的数学

原文:https://towardsdatascience.com/the-math-behind-machine-learning-b6f5c94fd1c0?source=collection_archive---------15-----------------------

让我们看看机器学习中的几种技术以及在这个过程中使用的数学主题。

在线性回归中,我们试图为一组给定的数据点找到最佳拟合线或超平面。我们使用一组参数作为权重,通过输入变量的线性组合来模拟线性函数的输出。

通过最小化残差平方和来找到参数。我们通过将残差平方和的导数的向量设置为零向量来找到临界点。通过二阶导数检验,如果残差平方和在临界点的 Hessian 是正定的,那么残差平方和在那里有一个局部最小值。

在上面的过程中,我们使用了导数、二阶导数测试和 Hessian,这些都是来自多变量微积分的概念。我们也可以使用线性代数找到最小化问题的解决方案。

设 X 是矩阵,其中的行是我们的数据输入,每行从 1 开始,y 是我们数据输出的向量。我们需要一个向量β,使得 Xβ接近 y。换句话说,我们需要一个向量β,使得 Xβ和 y 之间的距离‖Xβ-y‖最小。使距离最小化的向量β是这样的:Xβ是 y 到 X 的列空间的投影。这是因为 y 到 X 的列空间的投影是 X 的列空间中最接近 y 的向量。然后我们使用欧几里德 N-空间可以被分成两个子空间的事实,X 的列空间和 X 的列空间的正交补, 以及欧几里得 n-空间中的任意向量可以分别唯一地写成 x 的列空间和 x 的列空间的正交补中的向量之和的事实,来推导 y-Xβ与 x 的列正交,由此可以得出矩阵方程 X^T Xβ=X^T y,如果 X^T X 是正定的,那么 X^T X 的特征值都是正的 所以 0 不是 X^T X 的特征值。由此可见,X^T X 是可逆的。然后,我们可以求解β的矩阵方程,结果与使用多元微积分得到的结果相同。

在我们刚刚讨论的解决方案中,使用了范数、投影、列空间、子空间、正交补、正交性、正定性、特征值和可逆性的概念。这些是来自线性代数的概念。我们还利用了这样的事实:欧几里德 N-空间可以分解成两个子空间,X 的列空间和 X 的列空间的正交补空间;欧几里德 N-空间中的任何向量可以分别唯一地写成 X 的列空间和 X 的列空间的正交补空间中的向量之和。

让我们转向分类问题。在分类问题中,我们希望确定一个数据点属于哪个类。用于分类问题的方法之一是线性判别分析。
在线性判别分析中,我们估计 Pr⁡(Y=k|X=x,给定输入变量 x 为 x,y 为类 k 的概率,这叫做后验概率函数。一旦我们有了固定 x 的所有这些概率,我们选择概率 Pr⁡(Y=k|X=x 最大的类 k。然后我们把 x 归为 k 类

使用贝叶斯规则,我们可以根据π_k=pr⁡(y=k(Y=k 的先验概率)和 f _ k(x = x 的概率,假定 y = k)重写后验概率函数

我们假设 X 给定 Y=k 的条件分布是多元高斯分布 N(μ_k,σ),其中μ_k 是类特定的均值向量,σ是 X 的协方差,所以 f_k (x)可以用μ_k 和σ来改写。

现在,我们得到π_k、μ_k 和σ的估计值,从而得到 p_k (x)的估计值。我们根据估计的 p_k (x)最大的类 k 对 x 进行分类。

在线性判别分析中,我们使用后验概率函数、先验概率、贝叶斯规则、多元高斯分布、特定类别的均值向量和协方差,这些都是概率论中的概念。

解决分类问题的另一种方法是逻辑回归。正如在线性判别分析中一样,我们想要估计 Pr⁡(Y=k|X=x)并选择该概率最大的类 k。我们直接估计概率,而不是像线性判别分析那样使用贝叶斯规则间接估计概率。

假设只有 0 和 1 两个类,让 p(x)=Pr⁡(Y=1|X=x).在逻辑回归中,我们假设对数优势是 x 的组成部分的线性函数。假设对数优势是 x 的组成部分的线性函数,参数为β0,β1,…,βp,我们可以求解 p(x)作为参数和 x 的组成部分的函数。如果我们有参数β0,β1,…,βp 的估计值,我们就可以得到 p(x)的估计值。

我们观测数据的概率是参数β0,β1,…,βp 的函数,称为似然函数。我们通过最大化似然函数来寻找参数的估计。最大化似然函数相当于最大化似然函数的对数。为了最大化对数似然函数,我们使用牛顿-拉夫森方法。

对数似然函数 L(β)是β=(β0,β1,…,βp)的实值函数。所以 l 是从 R^(p+1)到 r 的函数,而且,l 是两次连续可微的。所以我们可以应用多元牛顿-拉夫森方法。

在逻辑回归中,我们使用似然函数,一个来自概率论的概念,和多元牛顿-拉夫森方法,一个来自多元微积分的概念。

接下来,我们将研究一种既能解决回归问题又能解决分类问题的方法。在人工神经网络中,我们使用线性和非线性函数的组合来模拟我们的输出函数。

输出函数可以用神经网络图来表示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

包括常数 1 在内的输入单元将形成输入层。我们采用输入单元的线性组合,包括常数 1,然后对其应用激活函数 h 以获得新的单元。h 是可微的(可能是非线性的)函数。我们这样做,比如说,M 次;我们现在有 M 个隐藏单元,这些组成了一个隐藏层。看图,线性组合中的权重由连接两个单元的线段表示。我们可以继续这个过程,取前一层中单元的线性组合,并对每个线性组合应用激活函数,以创建新的隐藏单元,从而创建下一个隐藏层。在某一点上,我们有最后一层,称为输出层,我们为每个输出单元 Y_k 使用激活函数 g _ k。g _ k 是来自前一层的单元的所有线性组合的函数。

通常,激活函数 h 被选择为逻辑 sigmoid 函数或 tanh 函数。输出激活函数 g_k 将根据问题的类型而不同,无论是回归问题、二元分类问题还是多类分类问题。

到目前为止,我们已经构建了依赖于输入 x 的输出值 Y_k,它包含一系列未知参数。我们现在的目标是使用我们的训练数据找到未知参数的值,使误差最小化。对于二元分类,我们通过最大化与我们的观察数据的概率相关联的似然函数来找到参数的估计;这相当于最小化所谓的交叉熵误差函数。类似地,对于多类分类,我们通过最大化与我们的观察数据的概率相关联的似然函数来找到参数的估计;这相当于最小化所谓的多类交叉熵误差函数。对于回归,我们通过最小化平方和误差函数找到参数的估计。

为了最小化误差函数,我们使用梯度下降,这需要找到误差函数的梯度。为了找到误差函数的梯度,我们使用反向传播。

在人工神经网络中,概率论中似然函数的概念用于分类问题。来自多变量微积分的梯度下降用于最小化误差函数。在反向传播过程中,使用多变量链规则。

让我们看看支持向量机解决分类问题的方法。这个想法是,我们有一堆数据点,比如说两个类,我们希望用一个决策边界来分隔它们。例如,数据点可能很容易被这样的线分开:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果数据点可以很容易地用直线或超平面分离,我们找到离这些点尽可能远的分离超平面,这样就有很大的余量。这就需要最大化余量,最终成为一个凸优化问题。为了解决这个凸优化问题,我们使用拉格朗日乘子,一个来自多变量微积分的概念。一旦我们找到最大边缘超平面,我们可以根据点位于超平面的哪一侧来分类新点。这种分类点的方法被称为最大间隔分类器。

如果数据点不能被超平面分离,我们仍然可以尝试找到一个超平面来分离大部分的点,但可能有一些点位于超平面的边缘内或错误的一侧。情况可能是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就像在最大间隔分类器的情况下,我们希望我们的超平面尽可能远离超平面正确一侧的每个点。因此,边缘上或边缘外但在超平面正确一侧的点将尽可能远离超平面。边缘内部但在超平面正确一侧的点将尽可能远离超平面,并尽可能靠近边缘边界。对于那些位于超平面错误一侧的点,我们希望这些点尽可能靠近超平面。

正如在最大间隔分类器的情况下,我们想要最大化间隔,使得超平面的正确侧上的点离超平面尽可能远。

我们不仅希望最大限度地提高利润,还希望最大限度地减少对利润的侵犯。这个问题变成了一个凸优化问题,并使用拉格朗日乘子来解决。

一旦我们找到分离超平面,称为软边超平面,我们可以根据点位于超平面的哪一侧来分类新点。这种对点进行分类的方法称为软边界分类器。

如果数据点不是线性可分的,并且分离两个类的决策边界似乎是非线性的,我们可以使用所谓的支持向量机,或支持向量机分类器。想法是考虑更大的特征空间,该更大的空间中的数据点与原始数据点相关联,并且将支持向量分类器应用于更大的特征空间中的该组新的数据点。这将在扩大的特征空间中给我们一个线性判定边界,但在原始特征空间中给我们一个非线性判定边界。通过将任何新点发送到更大的空间并使用线性判定边界来对其进行分类。以下是需要支持向量机的情况:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在解决软间隔分类器的凸优化问题的过程中,出现点积;在支持向量机的方法中,我们用一种叫做核的东西来代替点积。核本质上是一个函数,可以表示为输入值图像在某种变换 h 下的内积。这种用核代替点积的方法称为核技巧。

内核 K 应该是有效的内核;也就是说,应该存在对应于 K 的特征空间映射 h。根据 Mercer 定理,K 是对称半正定的就足够了。

在支持向量机方法中,扩大的特征空间可以是非常高维的,甚至是无限维的。通过直接使用内核,我们不必处理特征映射 h 或扩大的特征空间。

在支持向量机的方法中,我们看到使用了点积和对称半正定的概念;这些概念来自线性代数。为了解决凸优化问题,使用拉格朗日乘子;这个概念来自多变量微积分。

在本文中,我们研究了机器学习技术背后的数学:线性回归、线性判别分析、逻辑回归、人工神经网络和支持向量机。

关于机器学习背后的数学的更多细节,请访问:机器学习的数学书籍

你的竞争性监视比赛背后的数学

原文:https://towardsdatascience.com/the-math-behind-your-competitive-overwatch-match-a5184fc5a50f?source=collection_archive---------4-----------------------

使用真实世界的数据来判断暴雪是如何将流行的 Elo 评分系统应用到《守望先锋》中的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Photo by Mateo Vrbs on Unsplash

任何一个玩过《守望先锋》竞技游戏模式的人都遇到过许多令人沮丧的事情:“职业”寡妇和神怪,数不清的半藏主,以及偶尔让你质疑暴雪是否在积极惩罚你在另一个生命中一定做过的可怕事情的配对。对于前两个问题,我无能为力——但如果你曾想知道,“这种疯狂的相亲真的有方法吗?”,那么这篇文章就送给你了。

“competitive”——或通常所说的“Comp”——似乎在使用流行的 Elo 评级系统的修改版,用于配对和排名目的。Elo 系统最广为人知的可能是它在职业象棋中的应用(它是由匈牙利裔美国物理学家 Arpad Elo 开发的),但它后来被应用于许多其他运动、竞技视频游戏(例如 PUBG),甚至可以用来确定动物社会群体中雄性的统治等级

在本文中,我将讨论 Elo 评级系统及其匹配背后的数学原理。在此基础上,我将使用来自数千个竞技守望游戏的数据来确定配对等式是否以及如何在游戏中被修改。

Elo 评级系统

在 Elo 系统中,竞争者被分配一个数字等级。当两个玩家进行比赛时,数值等级较高的玩家有望获胜。玩家的预期得分可以使用两个玩家的评分之间的差异来计算,对于我们的目的来说,这可以被认为是获胜的可能性。

一局游戏结束后,每位玩家的评分都会根据结果进行调整。胜利者将从失败者那里获得分数,平局时没有分数交换。

由于 Elo 系统下的评分调整是基于比赛的结果,所以球员在比赛中的实际表现在某种程度上是无关紧要的。考虑到两个玩家的相对排名,影响积分交换的唯一因素是开始条件和结果。因此,Elo 系统并不直接衡量玩家的技能,而是根据他们的胜、负、平以及对手的相对技能来推断玩家的技能。

如前所述,预期得分使用玩家的相对排名来量化玩家战胜对手的可能性。在 Elo 系统中,如果玩家 A 的排名为 R_a ,玩家 B 的排名为 R_b ,那么我们可以计算玩家 A 在与玩家 B 的比赛中的期望得分( E_a )如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Expected score for Player A when matched up against Player B in the Elo ranking system

绘制时看起来是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

When the ratings of the two players are equal, the expected score for Player A is 50%. When a player has a 400 point rating advantage over the other player, their expected score is 10 times larger than the other player’s.

正如我们将在本文后面看到的,绝大多数的竞争监视比赛都是由评分差小于 100 的队伍组成的。如果我们放大该范围的 Elo 预期得分曲线,我们会看到这里的曲线看起来呈线性:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

In the range where most Competitive Overwatch matches are played (+/-100 SR) the Expected Score curve is nearly linear.

结果是,曲线在该范围内近似为线性的,并且用简单的线性回归来拟合曲线的该部分给出了调整后的 R 平方值 0.999,其对于截距和斜率系数具有高度显著性。这使我们能够估计(非常接近)玩家 A 的预期分数(获胜的可能性)如何增加或减少,因为他们比对手多了一个额外的评分点——或者他们的对手比他们多了一个额外的评分点!根据拟合度:玩家 A 相对于对手的每一个评分点,其获胜的可能性增加 0.14%,而对手每一个评分点,玩家 A 获胜的可能性减少 0.14%。请记住,这只适用于+/- 100 个评级点的范围,这里的曲线基本上是线性的。

如果 Overwatch 使用与 Elo 系统完全相同的参数,拥有 50 分评分优势的团队比没有评分优势的团队获胜的可能性高 7%(从 50%到 57%)。相反,一个有 50 分劣势的团队获胜的可能性比没有差异的团队低 7%(从 50%到 43%)。因此,在 A 队比 B 队有 50 分的评分优势的比赛中,A 队实际上比 B 队赢的可能性高 14%(A 队 57%,B 队 43%)。

Elo 在看守中的预期得分

非常广泛地说,这就是 Overwatch 的竞技游戏模式的功能:

  • 玩家玩一轮定位比赛,之后他们被分配一个从 0 到 5000 的数字等级——这是玩家的 SR 或技能等级。一个拥有较高 SR 的玩家在与一个拥有较低SR的玩家对决时会赢
  • 两个合适的队组成后,排名赛开始。匹配系统将六个排名相似的玩家组成团队,并根据每个团队中玩家的平均 SR 来确定哪些团队应该配对。 大概是系统试图根据计算出的期望得分,使两队比赛尽可能的公平。
  • 游戏结束后,系统会根据玩家是赢是输分别调高或调低他们的 SR ,在平局的情况下没有变化。

因此,事情看起来非常类似于我们上面讨论的 Elo 系统。

挖掘游戏数据

为了确定 Overwatch 的竞争模式是使用标准的 Elo 公式计算预期得分还是一个修改版本,我将计算不同等级差异大小的实验预期得分。这就相当于问这样一个问题— *“当一个团队拥有 50 分的评分优势时,他们赢的几率有多大?25 分的评分优势呢?”*等等。然后,我将这些点拟合到下面的等式中,以确定**k’**的值(在标准 Elo 公式中为 400)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在意识到自己收集足够数量的游戏数据需要太长的时间(通常比赛持续 10-30 分钟)后,我偶然发现了 Myles O’Niell 的这个令人难以置信的数据集,其中包含 3000 多场比赛的数据。

记住 Elo 公式,数据集中感兴趣的列是:

  • my_team_sr : 团队的平均评分
  • 敌方团队 sr : 敌方团队的平均等级
  • team_sr_delta : 两队评分之差【敌方 _ 团队 _sr -我的 _ 团队 _sr】
  • 结果:比赛的结果

一些快速的数据探索

查看平均团队评分的分布(见下图),我们看到 my_team_srenemy_team_sr 的中值、IQR 和分布形状几乎相同。此外,他们的范围从 1900 到 3100,这给了我们一个典型的竞技看守玩家的良好代表。请注意,如果在极端较低或较高的排名中有不同的行为,我们将无法看到。因此,我们必须记住我们的发现所适用的玩家群体。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

This violin chart shows almost identical distributions for both teams across the recorded games (the width of the blob corresponds to the density of data points at that value). The median (dot) and IQR (dotted line) are also nearly identical.

下面,我们看到每场比赛中各队评分之间的差异呈正态分布。我们还看到,绝大多数比赛都发生在平均得分相差在 100 SR 以内的队伍之间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Distribution of rating difference between teams. Looks pretty normal.

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Summary statistics for team_sr_delta

这种分布是非常轻微的负偏差,正如负中位数和均值所证明的那样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Breakdown of match results

此外,游戏的结果似乎并不特别偏向于输赢。

确定不同 SR 增量下的预期得分

下一步是了解当两个团队之间的评分发生变化时,预期得分是如何变化的。回想一下,预期得分的公式是:

预期得分 =中奖概率+ 1/2(抽奖概率)

所以我们需要知道当对手的评分增加或减少(相对于他们的)时,团队获胜的可能性有多大,平局的可能性有多大。我选择通过模拟从数据集中随机选择游戏,并根据玩的、赢的和抽的游戏的数量来计算概率。

模拟

由于 team_sr_delta 的分布是正态的,这意味着我们将有一个非常大的游戏组,其中两个团队的收视率非常接近,而收视率相差较远的游戏则少得多。所以当我发现游戏的胜率在 0 到 25 之间时,我可以很有信心。然而,如果我看的是 SR deltas 在 75 到 100 之间的游戏,由于样本量较小和数据中的噪声,胜率更容易出现错误。

为了克服这一点,我基于 SR 增量将每个游戏分箱,并创建了一个模拟,该模拟将对每个箱中的游戏进行非常简单的过采样和欠采样。模拟从每个箱子中随机选择 100 个游戏——替换,因为有些箱子很小。然后,它会计算赢和平的游戏数,并计算预期分数。它这样做了 1000 次。你可以在下面找到模拟循环的 R 代码(如果你喜欢这类东西的话)。

simOutput <- data.frame( matrix( ncol = 5, nrow = 0))

         colnames(simOutput) <- c( "Bucket", "GamesWon",
                                   "GamesDraw", "GamesPlayed", "SimRun")

         *# because I'm too lazy to do the math required for output rows*
         row <- 1

         *# loop through iterations of simulation* 
         for(i in 1:1000)
         {

              *# loop through each bucket for this iteration*
              for(j in 1:8)
              {
                *# sample the games with replacement for bucket j*
                simData <- data %>% filter(sr_delta_bucket == j) %>% sample_n(100, replace = T) 

                *# determine how many games were won, drawn and played for that bucket*
                simOutput[row, "Bucket"] <- j
                simOutput[row, "GamesWon"] <- sum(simData$win_count)
                simOutput[row, "GamesDraw"] <- sum(simData$draw_count)
                simOutput[row, "GamesPlayed"] <- nrow(simData)
                simOutput[row, "SimRun"] <-i

                row <- row+1
              }

              *# for my own sanity*
              if(i %in% seq(0,1000,100)){print( i)}
         }

          *# Numerator for expected score*
          simOutput$WonHalfDraw <- simOutput$GamesWon + ( simOutput$GamesDraw / 2)

        * # Calculate expected score*
          simOutput$ELOScore <- round( simOutput$WonHalfDraw / simOutput$GamesPlayed , 4)

运行模拟后,我按 bin 汇总,这样我就可以很好地了解 bin 的预期得分分布。

*# now determine the probabilities of winning at each bucket*
       simResults <-   
          simOutput %>%
               group_by(Bucket) %>%
               summarise(
                    TotalGamesWon = sum(GamesWon),
                    AvgGamesWon = round( mean(GamesWon), 2),
                    SDGamesWon = round( sd(GamesWon), 2),
                    TotalGamesDraw = sum(GamesDraw),
                    AvgGamesDraw = round( mean(GamesDraw), 2),
                    SDGamesDraw = round( sd(GamesDraw), 2),
                    TotalGamesPlayed = sum(GamesPlayed),
                    WinProb = round( (TotalGamesWon / TotalGamesPlayed) * 100, 2),
                    DrawProb = round( (TotalGamesDraw / TotalGamesPlayed) * 100, 2),
                    TotalELOScore = WinProb + (DrawProb / 2),
                    ELOScoreSD = round( sd(ELOScore) * 100, 2)
                    )

现在他们已经被团队之间的 SR delta 分类了,我们可以看看基于 bin 的模拟的预期分数的分布(如下所示)。我们可以看到,在左上方敌队的评分劣势在-100 到-75 之间的地方,“我的队”比敌队的评分优势在 75 到 100 之间(右下方)的时候有更高的期望得分(获胜概率)。我在 0.5 处添加了一条虚线,以便更容易比较各个区间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Distribution of Expected Score by Bin from Super Magical Overwatch Simulator 1000

我们还看到每个箱中的分布近似正态,这意味着我们可以做回归和置信区间之类的事情,而不必太担心违反基本假设。我们现在准备将模拟数据与 Elo 预期得分公式进行比较!

拟合方程

使用模拟生成的数据,我们现在可以将以下等式拟合到我们的真实世界竞争监视数据中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标准 Elo 期望得分方程,陡度= 400

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我将用来确定陡度的方程

为了根据分箱的模拟数据进行实际拟合,我将分母中的 团队 SR Delta 设置为每个箱的中点(即,箱 1: -100 到-75 的中点为-87.5)。使用非线性最小二乘法,我使用以下代码拟合 R 中的方程()注意,k = 200 起始参数是任意的,我尝试了从 100 到 1000 的许多不同起始值,它们都给出了相同的结果!):

*# fit to Elo equation to determine 'steepness' parameter*
logFit <-nls( ELOScore ~   1 / (1 + 10^(Mid/k)), start = list(k = 200)  , data = simOutput)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们的值是 831.8 而不是 400 !但是我们对这一估计有多大把握呢?使用 R 函数 confint(),我们可以确定该系数的 95%置信区间,它分别给出了 803.8861.7 的下限和上限。因此,我们可以非常自信地说,监视是而不是使用传统 Elo 公式中使用的值 400,而是使用更接近 800 的值!

那么,这改变了什么呢?

前面我们看到,使用标准的 Elo 公式,比对手有 400 点评分优势的玩家获胜的可能性是对手的 10 倍(或者预期得分比对手大 10 倍)。这是在等式中明确将值 400 作为比例因子的结果。我们的实验数据显示,真实值可能更接近 800,这意味着你必须比你的对手有 800 的评分优势,才能比他们多 10 倍的胜算。这样的效果是一个更平,更平滑的曲线。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此外,回想一下,大多数比赛的团队之间的 SR 差异小于 100,在这个范围内,曲线可以非常接近线性拟合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

每超过对手一个评分点,玩家 A 获胜的可能性增加 0.069%,而对手每超过一个评分点,玩家 A 获胜的可能性减少 0.069%。不是那么巧合,这是使用标准 Elo 曲线(的变化率的一半,你觉得这是为什么?)。

最后,我创建了一个表格,在给定对方球队的相对 SR 的情况下,计算你的球队的预期得分,以及如果比赛在两个得分相等的球队之间进行,你的获胜概率的差异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

gg ez。

最终想法

我发现了这个问题,并打算继续撰写另一篇文章,研究 Overwatch 的赛后评级调整与标准 Elo 评级调整的对比。请随时留下任何意见或反馈,感谢您的阅读!

在 Medium 或 LinkedIn 上关注我,看看我未来的棋子!

参考文献

何塞·莱瓦https://quantdare.com/elo-system/关于 Elo 系统的精彩报道

维基百科上的词条 Elo 系统与逻辑功能https://en.wikipedia.org/wiki/Elo_rating_systemhttps://en.wikipedia.org/wiki/Logistic_function

守望论坛上守望撮合排名系统的荒唐深度演练

数学家与裁判争论指南

原文:https://towardsdatascience.com/the-mathematicians-guide-to-arguing-with-an-umpire-bbf1dd30812b?source=collection_archive---------8-----------------------

在一次击球中,数学上最重要的计数是什么?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是一种令人作呕的感觉。早上举重,团队练习,自己击球,然后当你步入禁区,跑垒员在二垒和三垒上,一人出局时,接球手后面的 35 岁盲人决定,一个几乎在另一个击球手禁区内,距离污垢 2 英寸的投球一定抓住了板的一部分。他发出的咕噜声让你应该从 1-1 数到 0-2,这种声音会带走你灵魂的一部分。

不管你是亲身经历过,还是曾经是那个对着电视声嘶力竭大喊“这个傻逼在看什么?!"每个人都知道一个球或一击可以完全改变击球的结果。对于有经验的棒球迷来说,“哦,这只是一次罢工”甚至没有触及表面。从 1 比 0 的比分变成 0 比 1 的比分正好让投手在击球时占了优势。从 2 比 1 变成 1 比 2 只是让你从舒适地寻找你喜欢的球场扩大到两倍。

但对你来说,一次推销的实际影响是什么?裁判的误判真的缩短了你的击球时间吗?接受一次推销让自己在盒子里感觉舒服是个聪明的主意吗?自动采用 3-0 的间距是一个聪明的想法吗?我已经收集了几十万个二级棒球和垒球比赛的球棒,以便更好地理解一个球棒成功或失败的计数。

预告片:在真正的 sabermetrics 时尚中,我们将专注于上垒,而不仅仅是安打。然而,我们不打算统计一些上垒的方式(被投球击中,捕手干扰),因为它们对分析什么影响击球没有帮助。我也不包括 sac 短打,因为它们通常由教练决定,而不是由击球手或投手决定。

求解答的问题:
1。每次计数的基本概率是多少?
2。什么因素对你能否上垒影响最大?
3。不同计数的段塞流百分比差异大吗?
4。最后击球数是多少重要吗?还是导致最终计数的计数顺序对最终结果产生了影响?

我分析的所有数据准备和代码可以在https://github.com/anchorP34/PlayByPlay-Reports找到

1.每次计数的基本概率是多少?

开始击球时,你可以有 12 种不同的计数。因为你可以在一场比赛中有多次失误,所以我们要看在一场比赛中经历过那次失误的人的上垒率。下面是一张热图,显示了击球手在击球时的平均上垒率(OBP ):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Matrix with ball count vertically and Strike count horizontally. There are three different sections to focus on: the dark blue, the light blue / white, and the orange and red.

正如大多数棒球迷所期待的那样,你上垒的最好机会是在 3 比 0 的时候,因为你最有可能保送,也最有可能三振出局。根据同样的逻辑,你最差的得分是 0-2,因为投手有更多的机会三振你,而且不用担心保送击球手。

对于大多数教练来说,2-0 和 3-1 的投球被认为是相同的击球心态,因为打者是在“打者计数”中。然而,这些数字可能会有所不同。在 3 比 1 的情况下,最糟糕的情况是 3 比 2,你仍然有大约 50%的机会上垒。在 2 比 0 的情况下,最糟糕的情况是 2 比 2,有 33%的机会上垒。2-0 的投球应该更加集中,因为在接下来的时间里,你被击中的可能性要大得多。

2。什么因素对你能否上垒影响最大?

在第一个问题的基础上,确定一个击球手投球的权重也可以从热图中看出,但计算是在分析的基础上进行的。因为有三个球或两个好球的计数不能被强调,因为任何一个方向的增加都将是保送或三振出局,我们可以专注于击球时的中间计数。我们正在计算下一次投球影响% ,方法是查看如果你在下一次投球中得到一个球,OBP 增加的量加上如果你在下一次投球中得到一个好球,OBP 减少的量。我们使用每一个的绝对值,因为一些计数会因为球是正的而打击是负的而被抵消。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Bar chart that shows the total change in OBP on the next pitch

从图表中,我们可以看到在计数早期的投球(0-0 和 0-1)对一个击球手没有很大的影响。如果你是那种喜欢在击球时投出第一球以获得对投手更好感觉的击球手,那么它几乎不会产生与在计数中稍后投出一球相同的影响。这确实违背了我正常的意识形态,因为我认为从 0-1 开始比从 1-0 开始要糟糕得多。

3。不同计数的段塞流百分比差异大吗?

当然,上垒率是一个击球手成功的很大一部分,但是我们也想看看来自不同计数的力量。一垒安打和一次保送是成功的,但是双打、三垒安打和全垒打更受欢迎,最终会带来更多的得分来帮助球队获胜。我想从两个角度来看这个问题:击球的百分比和每次击球成功的频率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总击球数栏涉及正常击球百分比计算(总击球数除以 at 击球数。比如全垒打= 4,三垒= 3,二垒= 2,保送和一垒= 1。其他都是 0。)

这些结果与基本百分比热图极其相似。接近 3–0 的计数具有较好的段塞百分比,而接近 0–2 的计数具有较差的段塞百分比。

我认为有趣的是,12 个计数中只有 8 个在. 500 的击球率附近徘徊。因此,除非你在数量上遥遥领先或落后,否则所有人的权力数字都差不多。在权力方面,2-1 计数与 0-1 计数没有太大区别。

为了观察这些幂数值的频率,我们可以看看这个柱状图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The frequency of successful results in each count

从左往右看,1Bs 和 BBs 是反比关系。你走的越右,你走的机会就越大,得到一个单人间的机会就越小。

同样令我惊讶的是,双打在 0 球和 1 球计数中比在 2 球和 3 球计数中更频繁。在 0 球和 1 球计数中,双打至少占所有成功结果的 10%,而在 2 球和 3 球计数中,只有 2-2 球计数至少占所有成功结果的 10%。这很令人惊讶,因为我总是认为 2-0 和 2-1 比 0-1 或 1-1 更有机会成为伟大的击球手。

4。最后击球数是多少重要吗?还是导致最终计数的计数顺序对最终结果产生了影响?

改变简单的统计分析如平均值的速度,让我们看看机器学习,看看我们是否可以预测一个 at 球棒是否会成功。看看 at 球棒经历的计数,at 球棒的投球数,最后一击和计数中的球数足以预测某人是否会上垒。

我尝试使用 3 种不同的方法来确定模型中使用的变量。
a)使用最终击球计数来预测最终结果
b)仅使用击球时经历的不同计数
c)使用最终结果中的两个列子集

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

The final model. Feature importance is the usage the variable was used in predicting the final output.

我决定使用准确性来确定我的算法的有效性,并使用 64%的基线分数,因为上垒的概率是 36%。如果你假设一切都是一个输出,你将有 64%的时间是正确的,因此确定是否真的有一些有效的机器学习。

当将只关注 at 球棒的最终击球次数的模型与 at 球棒的不同击球次数进行比较时,预测结果几乎没有差异。这两个模型在预测击球手是否会上垒方面的正确率为 68.8%,这意味着无论你是以 0-2 开始,以 3-2 结束,还是以 3-0 开始。以 3 比 2 结束比赛,3 比 2 的比分才是最重要的。这有助于向打者表达,你的击球手在每次投球后都会更新,你总是可以让击球手在更好的情况下上垒。

最终的模型(模型 c)最终比其他模型做得稍好,达到 69%的准确率。从最终模型的特征重要性来看,at 球棒最终计数中的球数对 at 球棒的结果影响最大,而 at 早期的计数对确定结果几乎没有影响。

那么,我应该如何与裁判争论谁破坏了我的击球?

  1. 如果是在击球初期,咬你的舌头。从数字来看,击球初期的计数不会对你是否能上垒有很大的影响。不值得为任何事情和裁判争论,让他心情不好。
  2. 当你数到 1-0、2-0 或 2-1 时,这些投球对你击球的结果有很大的影响。由于裁判更有可能在 2-0 的计数中判定任何接近的击球,我绝对会告诉裁判“伙计,这 2-0 的投球在我的击球中占了 36%的重量。不要让他自动出局来继续击球。”
  3. 不要因为“权力数字”而与裁判争论 3-1 和 2-0 的计数。在这种情况下,你更有可能获得保送,而不是额外的安打,所以你在 2-1 的计数中争论你的大时间 pop 真的可以离开窗户。

然而,在击球时知道才算数,最后一击和球才算数,而击球的总长度不足以决定你击球的成功结果。有更多的变数,将需要被包括在内,以确定一个在蝙蝠的输出,这应该使任何击球手有信心,他们有最终的权力来决定他们在蝙蝠的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值