Softmax 函数、作为概率的神经网络输出以及集成分类器
亮点:
在本文中,我们将了解:
- 从简单的逻辑回归出发,导出多项式(多类)分类问题的 softmax 函数
- 在深度神经网络的输出层使用 softmax 激活函数来表示类别标签上的分类分布,并获得每个输入元素属于一个标签的概率
- 使用 Keras functional API 构建具有 softmax 输出聚合的鲁棒集成神经网络分类器
链接到我的其他文章:
简介:
在许多情况下,当使用诸如规则深度前馈网络和卷积网络之类的神经网络模型用于某组类别标签上的分类任务时,人们怀疑是否有可能将输出,例如 y = [0.02,0,0.005,0.975】,解释为某个输入在类别中的概率等于输出中的相应分量值y***【ᵢ***直接跳到长答案:不会,除非你有一个 softmax 层作为你的输出层,用交叉熵损失函数训练网络。这一点很重要,因为在网上资源中,甚至在一些关于神经网络分类的教科书中,这一点有时会被忽略。我们将了解如何在多项式逻辑回归的上下文中导出 softmax 函数,以及如何将其应用于集成深度神经网络模型以实现稳健分类。
推导 Softmax 函数:
简而言之,分类分布是伯努利分布的多分类推广。伯努利分布是一种离散的概率分布,它模拟单个实验的结果,或者具有两种结果的随机变量的单次观察(例如,单次掷硬币的结果)。分类分布自然地将伯努利分布扩展到具有两个以上结果的实验。
现在,简单的逻辑回归分类(即仅针对两个类别或结果的逻辑回归)假设以输入 x ᵢ 为条件的输出 Yᵢ ( i 为数据样本指数)服从伯努利分布:
将伯努利结果的对数几率与线性预测值相关联的链接函数是 logit 函数:
如果我们对上述等式的两边取幂,并做一些重新排列,在右边(RHS ),我们得到熟悉的逻辑函数:
获取多项逻辑回归的广义逻辑或 softmax 函数的一种方法是,首先为每个类 K 提供一个与逻辑相关的线性预测值,再加上一些归一化因子,以确保所有类的概率总和等于 1。这个由 K 个 T21 方程组成的系统是一个对数线性概率模型系统:
上述方程组中的 ln( Z ) 项为归一化因子的(对数) Z 称为配分函数。当我们在处理多项式回归时,这个方程组给出了明确分布的概率:yᵢ|xᵢ~明确( p ᵢ )。
两边取幂并施加约束:
给
上式的 RHS 称为吉布斯测度,将 softmax 函数与统计力学联系起来。接下来,求解 Z 得到:
最终方程组变成了:
每个等式的 RHS 上的比率是 softmax 函数。一般来说,softmax 函数定义为:
对于j =1……K。我们可以看到 softmax 函数将一个任意实值的 K 维向量 z 归一化为一个分量总和为 1 的 K 维向量 σ ( z )(换句话说,一个概率向量), 此外,它还提供了每个 zⱼ 相对于 zⱼ 总量的加权平均值,如果 zⱼ 在比例上非常不同,它会夸大差异(返回接近 0 或 1 的值),但如果 zⱼ 相对而言比例相同,它会返回一个适中的值。* 分类器模型需要学习给出前一条件而不是后一条件的参数(即决定性与非决定性)。*
最后,正如 logit 函数是简单逻辑回归的连接函数,逻辑函数是 logit 函数的反函数一样,多项式逻辑函数是多项式逻辑回归的连接函数,softmax 可以视为多项式逻辑函数的反函数。典型地,在多项逻辑回归中,最大 a-后验(MAP)估计用于为每个类别 k 找到参数。**
交叉熵和集成神经网络分类器
现在我们已经看到了 softmax 函数的来源,是时候在我们的神经网络分类器模型中使用它们了。在配备 softmax 输出层的神经网络上最小化的损失函数是交叉熵损失:
Assuming p and q are discrete distributions
其中 y 是某些迭代 i 的真实标签,而 ŷ 是迭代 i 时的神经网络输出。这个损失函数实际上与用于简单和多项逻辑回归的损失函数相同。交叉熵函数的一般定义是:
p 和 q 之间的交叉熵被定义为分布 p,的信息熵之和,其中 p 是一些潜在的真实分布(在这种情况下将是真实类别标签的分类分布)和分布 q 的kull back-lei bler 散度其中T13 是我们试图逼近的 p 和 p 对该函数进行优化可以最小化 p 的信息熵(在 p 中给出更多确定的结果),同时最小化 p 和 q 之间的“距离”。
在 Bridle 的文章中给出了使用神经网络中的 softmax 作为输出层激活的理论处理。该文章的主旨是使用 softmax 输出层和神经网络隐藏层输出作为每个用交叉熵损失训练的、zⱼ,给出了类别标签上的后验分布(分类分布)。一般来说,深度神经网络可以大大优于简单和多项式逻辑回归,代价是不能提供特征/参数的统计显著性,这是推断或找出哪些特征影响分类结果的一个非常重要的方面。使用选择的鲁棒优化器来优化整个神经网络;RMSprop 通常是一个好的开始。
因此,现在我们将使用 Keras functional API 构建一个深度前馈神经网络分类器,并对葡萄酒进行分类。我们将使用几个神经网络的集成模型来给我们一个鲁棒的分类(在实践中这是你应该做的,由于随机初始化和随机梯度训练导致的单个神经网络预测的方差必须被平均以获得好的结果)。集成模型的输出应该给出某个测试示例将属于每个类别的概率向量,即类别标签上的分类分布。
聚集每个单独神经网络模型的结果的一种方法是在集合输出处使用 softmax 来给出最终概率。为了自动确定最终 softmax 平均的最佳权重,我们将在另一层上“粘合”集合中每个单独神经网络的输出。下面是该架构的示意图。
Everyone loves block diagrams.
*每个学习模型都可以从最终的 softmax 聚合输出向后区分。我们可以使用Keras concatenate-merge layer**将每个子网合并在一起。*连接层连接来自每个子网络的输出张量,并允许优化器对合并的模型进行优化。为了简化我们的训练,每个学习模型都将在同一个数据集上进行训练。可以使用自举子集,但是这使得训练变得更加复杂,因为我们将不得不在它自己的输入和目标对上单独训练每个子网络,同时冻结其余学习模型上的训练更新。
从训练结果可以看出,高档葡萄酒不是我们的集成分类器的对手。同样,特征选择对我们的模型来说并不是非常重要,因为它使用所有特征很好地学习数据集。在 200 个历元之后,训练和验证损失变小,分别达到 10^-5 和 10^-3 的量级,这表明我们的集成神经网络模型在拟合数据和预测测试集方面做得很好。正确类的输出概率接近 100%,其他类的输出概率为 0%。
结论:
在本文中,我们推导了多项式逻辑回归的 softmax 激活,并看到了如何将其应用于神经网络分类器。重要的是要记住,在解释神经网络输出是概率时要小心。然后,我们使用 Keras functional API 构建了一个集成神经网络分类器。无论如何,运行代码有乐趣,一如既往,请不要犹豫问我任何事情。
深度学习的稀疏未来
这可能是人工智能研究的下一次飞跃吗?
一种新的深度学习算法有可能成为游戏规则的改变者。
2018 年 6 月,一组研究人员(Mocanu 等人)发表了“受网络科学启发的具有自适应稀疏连接的人工神经网络的可扩展训练”他们表明,他们训练神经网络的新方法与最先进的方法相比具有竞争力,而且需要的计算资源要少得多;也就是说,理论上。这应该允许未来的项目将项目扩大到前所未有的规模。
Think big.
到目前为止,这篇论文似乎在机器学习社区中没有得到多少关注,可能是因为它发表在自然科学杂志《自然通讯》上。机器学习社区倾向于关注一些特定的期刊。Nature Communications 在自然科学领域发表了许多关于机器学习应用的有趣论文,但我担心许多 ML 研究人员忽略了这篇重要的论文,因为它不是一篇发现重要的新颖深度学习算法的典型期刊。
《华尔街日报》的名字是我能想到的这篇论文受到最少关注的唯一原因。纵观他们的结果,似乎该研究为深度神经网络模型的学习能力的二次增长打开了大门。
这有什么大不了的?
完全连接的层
要理解这篇论文,首先必须理解与现代深度神经网络相关的可扩展性问题。
深度神经网络使用全连接层(fcl)。这些使用密集矩阵将输入向量转换到输出空间。FCL 通常用这样的图表来表示:
Fully-connected layer diagram, taken from Jessica Yung’s blog. Each input node connects with each output node.
这已被证明是一种非常有效的方法。问题是每个 FCL 中的连接数与输入中的节点数和输出中的节点数成二次方增长。
具有 16 个输入和 32 个输出的 FCL 具有 16×32 = 512 个连接;具有 32 个输入和 64 个输出的 FCL 具有 32×64 = 2048 个连接。这为 FCL 可以拥有的输入和输出数量设定了一个实际上限。
当我们处理非常高维的数据时,这是一个问题;简单地用 FCLs 将数据插入神经网络在计算上是困难的。
Datasets in the biology domain, including genetics research, are an important example of high-dimensional data.
图像是非常高维数据的一个例子;例如,256 x 256 像素的 RBG 图像包含 380,208 个值。如果我们希望在这里应用一个 FCL,我们将会在一个图层中拥有数千万甚至上亿个参数。
卷积层提供了一种绕过二次 FCL 问题的方法,并导致 2010 年图像处理模型的突破。基本上,我们可以使用卷积来充分降低输入数据的维度,以便在产生一些有用的输出之前将它们传输到 fcl。
在卷积的情况下,我们利用了相邻像素共享重要信息的事实。图像数据中的像素具有固有的结构,赋予整个图像以意义。卷积使用我们对这种结构的先验知识在图像处理问题中产生极好的结果,同时限制训练这些模型的计算成本。
Example of convolution layers feeding image data into a fully-connected layer. — Source: https://www.mathworks.com/videos/introduction-to-deep-learning-what-are-convolutional-neural-networks–1489512765771.html
但是如果我们的数据不是以这种方式构建的呢?例如,如果我们正在用数万或数十万个 DNA 标记作为输入特征对遗传数据进行建模,会怎么样?这里没有可利用的内在结构,在这种情况下卷积层无法拯救我们。
稀疏连接的层
一层中的每个节点都必须与下一层中的每个节点相连吗?答案是“不”
我们可以很容易地想象一个不完全连接每个节点的层。在研究中,这种层通常被称为稀疏连接层(SCL)。
Diagram comparing FCL to SCL. Taken from Amir Alavi’s blog.
这很容易想象。事实上,自然界中的许多网络表现得更像这样。例如,回到人工神经网络(大脑)的最初灵感,神经元(类似于节点)只与少数其他神经元相连。
SCL 已经在各种项目和出版物中得到应用和研究。在对神经网络修剪的研究中,这是一个深入探讨的课题。
我们应该使用哪些连接?
在某些情况下,研究人员使用在数据源中发现的观察网络(如蛋白质相互作用网络)来构建稀疏连接的层架构。但是如果我们没有任何这样的先验知识呢?
找到学习连接节点的方法仍然是一个突出的问题。现在看来这个问题已经解决了。
了解稀疏连接的层拓扑
寻找连接节点的智能方式是自适应稀疏连接论文的主题。该算法被称为稀疏进化训练(SET)过程,实际上非常简单。
The SET algorithm, taken from the original publication.
基本上,我们在我们的网络中随机初始化 SCL,并使用反向传播和其他标准问题深度学习优化技术开始训练。在每个时期结束时,我们移除具有最小权重的连接(“最弱”连接),并用随机初始化的新连接替换它们。冲洗并重复。
SET 变得异常健壮和稳定。令人鼓舞的是,作者能够用包含更少参数的 SET 模型显示出与 FCL 模型非常相似的结果(有时超过了它们的性能)。
SET-MLP is competitive with a fully-connected multilayer perceptron model, while using quadratically fewer parameters (taken from the original publication).
这些结果给我留下了深刻的印象,但显然更大的 ML 社区并没有变得非常兴奋。
ML researchers reading SET paper.
在学习的连接中编码特定于域的信息
SET 网络不仅学习被监督的目标;它们还在每层中形成的连接中编码输入特征重要性。
这方面的一个简单例子是从 MNIST 上训练的一组模型中观察输入连接。
Input connections from SET-trained SCL on MNIST. Digits are centered and scaled to be consistently located throughout the dataset; it stands to reason that a well-learned connection map will place more connections on these center pixels (taken from the original publication).
当我们观察 MNIST 问题中输入连接分布的演变时,我们可以看到该模型通过它保持的连接隐式地了解输入数据中预测信息的分布。在我们还不知道这种分布的领域中,这些信息可以帮助我们“发现”非结构化输入数据中有趣的特征和关系。
我要我的电视机
I was told there would be scalability.
我读了这篇论文,非常兴奋。它有望为以前难以解决的 ML 问题提供一条新的途径。问题是,我们还没准备好。研究人员自己可能说得最好:
目前,所有最先进的深度学习实现都基于图形处理单元(GPU)上非常优化的密集矩阵乘法,而稀疏矩阵乘法在性能上极其有限。
事实上,研究人员利用这些优化的结构来进行他们的概念验证实验。他们只是使用 FCL 和遮罩层来模拟他们的算法,让读者对通过 SET 学习的稀疏连接层的美好未来充满希望。
如果这些软件工程的挑战被解决了,SET 可能被证明是更大的人工神经网络的基础,也许是十亿节点规模的,在超级计算机上运行。
我不是计算机科学家,但我想开始行动。这就是我决定在 PyTorch 中实现 SET 的原因。我构建算法是为了使用稀疏数据结构,但它不是最优的。老实说,相当慢。但是我想把这个东西放到野外,这样人们就可以开始用它做实验,开始研究它。也许很快我们就会有一个更快的实现。
现在,任何阅读这篇文章的人都可以通过使用我的自定义 PyTorch 层来体验 SET。我把这个项目叫做“ Synapses ”,因为这是一个很酷、很合适的名字,幸运的是 PyPi 库没有采用这个名字。要使用它,只需安装 pip:
pip 安装 synapses
❤ pypi
唯一的依赖就是火炬!
它很慢,但至少它是真正稀疏的 T4。这里不涉及密集层和掩盖诡计。
看一看一些示例代码,并尝试使用它一点!我已经找到了一种通过改变进化策略可以显著加快优化速度的方法:我的 SET 风格不是在每个时期结束时进化连接,而是在每次向前传递数据时以非常小的概率进化连接。这似乎会导致更快的收敛,尽管我需要做更多的实验来支持这个观点。
这项研究的结论是,该算法是稳健和简单的,留下了很大的改进空间,在未来的工作。我希望 Synapses 将有助于这一点!
自动驾驶汽车的春天。
三家很酷的公司和他们加速自动驾驶汽车革命的不同方法。
It’s spring for self -driving cars.
时间在流逝,汽车仍在碰撞。
无人驾驶汽车将最终使世界摆脱每年因车祸造成的超过 130 万人死亡的。
对于我们何时才能看到完全自动驾驶汽车的大规模部署,有各种各样的观点。
预测范围从 2020 年到 30 年。这一过程极其复杂,将在开始时部署在预先确定的区域。
有很多公司致力于自动驾驶汽车。在本文中,我将展示三家公司以三种截然不同的方式应对挑战的样本。
三家公司三种方法。
Mobileye
[## Mobileye |自动驾驶和 ADAS(高级驾驶辅助系统)
Mobileye 是先进驾驶辅助系统(ADAS)和……
www.mobileye.com](https://www.mobileye.com/)
众包制图和驾驶策略。
英特尔公司 Mobileye 是 ADAS 和自动驾驶汽车行业的先驱公司之一。
Mobileye 以其先进的驾驶辅助系统(ADAS)系统而闻名,正在努力寻求全自动驾驶汽车。
EyeQ 芯片系列是 Mobileye 开发的一系列专用于 ADAS 和最终自动驾驶的 SoC。该系列中的每一个芯片都是一个惊人的工程辉煌壮举,推动了最先进技术的极限。EyeQ4 和 EyeQ5 采用了针对传感器融合和深度学习进行优化的专有架构,以处理来自多个摄像头以及雷达和激光雷达传感器的传感器数据。
自动驾驶的三大支柱 Mobileye 方式如下:
- 传感:传感器融合,融合来自摄像机、雷达和激光雷达的传感器数据,用于目标检测和路径规划。
- **地图:**在所有条件下,用于精确车辆定位的高清地图。与 GPS 相比,提供了更高的精确度,适用于 GPS 信号不可用的情况。
- **驾驶策略:**驾驶策略是通过使用强化学习从感知状态(对我们周围世界的描述)到驾驶命令的映射,驾驶策略将提供分析多变量情况和与人类驾驶员协商所需的类似人类的直觉和行为。
全球有超过 5000 万辆汽车配备了 Mobileye EyeQ 技术,可以感知周围环境,防止无数事故发生。传感器数据的持续流可用于不断更新和扩展其周围的高清地图,同时提供强化学习算法,从而创建特定地理的驾驶策略。
干邑
通往自动驾驶的快车道为自动驾驶汽车行业提供了驾驶验证平台。
www.cognata.com](http://www.cognata.com/)
模拟城市进行高速验证
Cognata 加快自动驾驶汽车发展的方法是为自动驾驶汽车的验证提供一个平台。
Cognata 估计,一辆自动驾驶汽车需要行驶 110 亿英里才能完全训练好——如果没有模拟,这是不可能的。
Cognata 使用三个步骤模拟整个城市。
- 模拟城市的固定资产,包括建筑物、道路、车道标线、交通标志,甚至树木和灌木丛。
- 模拟其他车辆和行人的真实交通模型的动态层。添加了当地历史天气条件和照明来对系统进行压力测试。
- 结合固定层和动态层来模拟传感器与车辆周围环境的交互,以从每个驾驶员接收最全面的自动驾驶模拟反馈回路。
虽然 Waymo 也在使用模拟器来训练和测试他们的自动驾驶汽车,但 Cognata 正在大规模地这样做。此外,Cognata 正在使用计算机视觉和 GANs 等深度学习算法来重建真实事物的现实表示,为大约 160 个传感器提供必要的交互。这为任何给定的自动驾驶汽车公司提供了一个平台,以有效地验证他们的系统。
科涅塔在 10 月于 GTC 举行的 NVIDIA 盗梦空间奖中获得第一名。
Nexar
Nexar 是一款免费的 AI 云连接 dashcam。它能立即探测到道路上的危险,并提供救生警告…
www.getnexar.com](https://www.getnexar.com/)
计算机视觉和事故预防 V2V。
Nexar 正在采取一种完全不同的方法。他们不再关注未来,而是接受当下的挑战。改善道路安全,关注人类驾驶员。
通过将无处不在的智能手机用作智能联网仪表盘摄像头,Nexar 利用智能手机的传感器和摄像头来提高道路使用安全性
Nexar 利用先进的计算机视觉和传感器融合算法与驾驶员的智能手机来了解汽车的周围环境,并预测和防止碰撞。
所有这些手机都变成了 AI dash-cam connect,形成了世界上第一个车对车(V2V)网络。
然后对这些数据进行危险驾驶模式分析,并向所有驾驶员提供前方危险的实时警告。
此外,还为汽车、保险和拼车行业提供互联车队安全解决方案以及一系列数据产品和服务。
Nexar 的哲学是,为什么要等 5 年、10 年或 30 年,让机器人来拯救我们。人类司机不擅长驾驶,但通过正确的技术和众包的力量,我们可以共同努力改善现有的系统。
自动驾驶汽车行业也将受益于 Nexar 快速增长的数据集。谷歌的 Waymo 和其他反病毒公司正在少数特定地理位置进行训练和收集数据。Nexar 正在迅速扩展到全球范围。
Nexar 的联合创始人兼首席技术官 Bruno Fernandez-Ruiz 在一篇精心撰写的媒体文章中,解释了持续学习和端到端学习的优点。
边缘设备和非常大的真实世界驾驶数据集有望实现自动驾驶
blog.getnexar.com](https://blog.getnexar.com/the-case-for-continuously-learning-from-the-edge-7e5f980288f6)
“我们认为,端到端学习需要数量呈指数增长的极限情况数据,你无法在云中构建所有模型。Nexar 的人工智能大脑变得越来越智能,越来越有弹性,因为我们的用户每周驾驶数百万英里,每天都面临新的未知场景的挑战。”
Nexar 还通过发布数据集和挑战赛为自动驾驶汽车研究社区做出了贡献。
请在评论中写下你认为正在加速转向自动驾驶汽车的其他公司。
人工智能的现状
- 我在 Google Next 18 学到的东西
人工智能被预测为第三个计算时代,它正悄悄进入我们越来越多的日常生活。现在它也变得基于云,这意味着即使是最复杂的技术也可以为每个人所用。所以是时候开始了。
Can an AI algorithm draw artistic portraits? Today they can.
作者蒂姆·弗兰克·安德森, 首席数字官查理·探戈
几周前,我在伦敦参加了 Google Next 一个有 16000 人参加的会议,涵盖了大多数即将影响我们世界的新技术领域。
在这里,我与来自柏林的 Dixit Algorizmi 画廊的老板就艺术的未来进行了一次非常鼓舞人心的对话,而两个人工智能控制的机器人手臂分别为我画了他们自己不同的肖像。这让我想到,我们在基于机器的智能发展方面已经走了多远。
人工智能(AI)是一个涵盖一系列不同计算技术的术语,从机器学习、深度学习、神经网络到强化学习,所有这些都是在计算机中模拟智能行为。
人工智能研究领域可以追溯到 50 年代。甚至在大约 30 年前我学习成为一名工程师时,我就被教导如何制作自然语言处理算法和编写神经网络代码。
但是从那以后发生了很多事情。看起来我们正处于人工智能的临界点——如果我们还没有越过它的话。
当它开始工作时,我们不再称它为人工智能。许多日常事务已经受到某种人工智能的影响。
每次你打开你的新 iPhone,FaceID 使用人工智能扫描你的脸并识别你,以便解锁你的手机。
每天离开地面的每架飞机都将部分由自动驾驶系统驾驶。
我们用地图甚至 TomTom 导航系统导航的日子已经一去不复返了。现在,一切都在我们的智能手机上,智能地改变我们的路线,让我们在最短的时间内到达目的地。
试着回想一下你的邮箱被垃圾邮件塞满的时候?我向你保证,垃圾邮件仍在发送。但谷歌或微软的智能算法设法删除了 99%的内容,所以这对我们来说不再是个大问题。
想看一部关于网飞的新连续剧吗?嗯,由于模式识别和协同过滤技术,网飞的推荐算法不仅知道你最有可能喜欢哪个系列,还知道哪个独特的展示图像会让你停留最长时间。
如果你碰巧使用谷歌照片,你知道你现在可以用你自己的母语在你的 20,000 多张照片中搜索海龟或绿色汽车,甚至朋友的名字。该应用程序会自动向您显示所需的结果,而无需您为每张照片添加标签——这一切都由基于人工智能的图像识别来处理。
如此缓慢但稳步地,人工智能正在融入我们的日常生活,让我们的生活更智能、更简单、更有效,而我们却不会察觉。因为当它起作用的时候,我们只是称之为导航、搜索或推荐,而没有考虑到其背后的技术。
需要大数据 上述所有例子都严重依赖于对庞大数据集的访问。因为这就是你训练算法的方式。这往往有利于拥有最多客户的公司。
因此,难怪谷歌被认为是世界上领先的人工智能公司。谷歌有 7 个应用程序,每个都有超过 10 亿的月活跃用户(搜索、Gmail、Chrome、Android、地图、YouTube、谷歌 Play 商店),很快还会有更多的应用程序(Google Drive 和 Google Assistant)。
庞大的数据集是让机器学习发挥作用所需的原材料。谷歌有很多。
以他们的自动驾驶汽车项目 Waymo 为例。自 2009 年以来,他们已经在实体道路上自驾超过 1600 万公里。但与模拟驾驶的 110 亿公里相比,这就相形见绌了。所有这些数据结合起来,使他们现在获准在亚利桑那州和加利福尼亚州推出商业无人驾驶汽车服务。这将在 2018 年底实现。
小公司如何与之竞争?幸运的是,谷歌对此有一个答案。谷歌已经拥有ka ggle——世界上最大的数据科学家和机器学习者社区,以及超过 11000 个公开可用数据集的数据库。现在,他们推出了一个名为谷歌云公共数据集项目的开放数据市场。该计划是让每个人都可以使用大数据集,以及必要的工具集,以便以基于云的分散方式开始与人工智能合作。
有什么新消息?这就是我们将要向前迈出一大步的原因之一。对于大多数公司来说,基于庞大数据集的商业人工智能过于复杂和昂贵,无法在内部运行。
因此,这些服务和机会成为基于云的“随用随付”解决方案至关重要。这正是谷歌推出的云人工智能平台。背后的愿景是使人工智能的使用民主化,并使其易于使用,即使是小公司或个人也可以轻松入门。您会发现一个预先训练好的模型列表,所有的工具和 API 都准备好开始使用了。
我们即将见证一次巨大飞跃的另一个突破性原因是为人工智能专门设计的硬件的使用。谷歌现在已经推出了为人工智能任务设计和优化的第三代计算机芯片。它们被称为 TPU(张量处理单元),它们将显著加快大多数人工智能工作的速度。它们现在也可以通过相同的云解决方案提供给每个人使用。
这不是出于利他的原因。当然,这背后是有商业模式的。它是基于服务的——您可以免费获得第一次修复,之后,您可以按使用量付费。但这仍然是一种比在现场建立自己的数据中心和人工智能设施更民主化的模式。
基于集中和边缘,同时 谷歌不是唯一一家开发人工智能专用硬件的公司。苹果最新一代的智能手机使用人工智能进行人脸检测和人像摄影,拥有 A12 芯片,内置的神经引擎每秒可以处理 5 万亿次运算!
世界领先的半导体公司 ARM 推出了 project Trillium ,开启了超高效机器学习的新时代,大部分计算将在设备中就地完成,因此您不必向云发送大量实时数据,只需消化解释即可。
这意味着我们看到了基于巨大数据中心和非常先进的工具的更加集中的基于云的人工智能服务平台和生态系统的双向发展。并且同时向边缘移动,这允许本地和实时数据处理。如果我们想在商业环境中释放人工智能的全部潜力,这两项发展都是必要的。
目的是什么?如果你对技术感兴趣,这一切可能会很有趣,但这就是技术。那么,背后的目的是什么呢?公司希望通过使用人工智能获得什么样的商业价值?
在伦敦举行的 Google Next 大会上,来自空客、ING、Metro AG、汇丰银行和 E.ON 等大公司的首席执行官纷纷登台,解释人工智能如何帮助他们实现预测性维护、欺诈预防、犯罪调查、销售预测和更好的客户服务等目标。
在微软最近发布的报告中:“欧洲的人工智能”,广泛的商业目的被分为五类:
- 预测
- 自动化
- 产生洞察力
- 个性化
- 开处方
预测(92%)和自动化(88%)是丹麦最常见的两种方法。
该报告还显示,丹麦公司(25 家受访公司)是欧洲最先进的公司之一,96%的公司表示他们处于人工智能的“试点”阶段或更高阶段。
因此,如果你还没有尝试如何通过使用不同的人工智能技术来获得商业利益,现在可能是时候开始了。
硬币的另一面 有很多问题需要担心。
这是一个仍未成熟监管的领域。数据收集和数据处理存在风险,更不用说信息过载和错误信号的风险。由算法做出的决策远没有人类做出的决策透明,当一家公司需要解释他们基于算法指导采取的行动时,这也带来了巨大的挑战。此外,人工智能和自动化的推广将对就业市场产生巨大影响。
我们真的希望大型国际公司托管我们的数据并运行我们的情报吗?
最后,我甚至还没有提到一个事实,即中国和亚洲其他地区的人工智能发展正以闪电般的速度发生,几乎不为人知。中国是一个拥有 8 亿互联网用户、严密监控、没有数据监管和单点决策的国家,在他们的“中国制造 2025”计划中表示,他们的目标是到 2030 年成为人工智能的世界领导者。他们正在进行中:2017 年,全球人工智能初创企业总股权融资的 48%来自中国。
换句话说,就在我们说话的时候,一场全球性的战争正在发生。它将影响我们所有人,并在未来 5-10 年内改变国家和行业之间的力量平衡。
因此,我强烈建议关注这一领域,开始收集相关的 GDPR 合规客户数据,并开始尝试不同的人工智能技术,无论你从事什么行业。
数据科学和机器学习的现状,第 1 部分:教育、职称和技能
去年年底, Kaggle 对 16,000 多名数据科学家进行了一项大规模调查,深入调查了他们的教育水平、本科专业、职称、工资等问题。
该调查提出了近 300 个问题,并提供了关于当今工作数据科学家的角色和背景类型的大量见解,尽管数据集包含大量空值。
在挖掘数据的过程中,我将精力集中在与刚刚开始或期待开始数据科学和机器学习职业生涯的人相关的见解上。
在基于这些数据的两篇文章的第一篇中,让我们深入了解初学者可以从这项调查中获得的见解,特别是关于教育水平、职称和收入。
让我们从做一些基本的探索性数据分析开始。
我们将通过分析受访者被问到的各种问题来探究这些数据。下图显示了加载科学工具(如 numpy、pandas、matplotlib 和 seaborn)以及加载数据集的初始阶段。
让我们看看回答调查的人的年龄分布。
我们看到受访者的平均年龄为 32 岁,大多数受访者的年龄在 25-35 岁之间。
性别认同、地区和就业状况
绘制参与调查的人的性别计数图向我们表明,调查是由男性主导的,男性的回答是女性的三倍多。这反映了该领域的总体趋势。
很明显,大多数回答者来自美国和印度。
由此可见,大部分受访者都是全职工作。
那些没有被雇用的人被问及他们是否在任何学位提供机构注册。下图显示了他们的反应。大多数回答这个问题的人都被某个机构录取了。
职称、学历、专业和教育的实用性
大多数受访者目前的职位是数据科学家,其次是软件 开发人员/软件工程师。
这表明大多数受访者拥有硕士学位、和至少学士学位。很大一部分受访者自诩拥有博士学位,但很少有人没有或很少受过正规培训。
显然,在这些领域工作的大多数人都主修数学、统计学或计算机科学(T21)。
大多数被调查的人说大学教育很有帮助;他们中的大多数人都有学士和硕士学位,这并不奇怪。
虽然受访者认为他们的教育水平有助于反映他们的技能,但绝大多数人指出,实际工作经验、他们的投资组合以及在线课程和认证在展示他们的技术实力方面更加重要。
调查结果总结
受访者的平均年龄:32 岁
平均年龄:25-35 岁
性别分布:75%为男性,25%为女性
地点:美国(4197)、印度(2704)、其他(1023)
就业状况:全职(70%)
教育水平:硕士或学士学位
最受欢迎的本科专业:数学、统计学或计算机科学
你怎样才能最好地展示你的技能:实际工作经验、作品集、在线课程和认证
在这篇文章的下一部分,我们将深入以下内容——敬请期待!
- 你最初是如何开始你的机器学习/数据科学培训的?
- 你会推荐一个新的数据科学家先学什么编程语言?
- 在接下来的一年里,你最想学习的工具或技术是什么?
- 在接下来的一年里,你最期待学习哪种 ML/DS 方法?
- 你写代码分析数据有多久了?
- 我应该去哪里找工作?
- 美国数据科学家的平均工资
学习 Python 的数据科学,NumPy,Pandas,Matplotlib,Seaborn,Scikit-learn,Dask,LightGBM,XGBoost,CatBoost 等等…
www.udemy.com](https://www.udemy.com/course/data-science-bootcamp-in-python/?referralCode=9F6DFBC3F92C44E8C7F4)
老年人护理产品的现状以及人工智能如何彻底改变老龄化
最酷的老年护理工具以及人工智能如何彻底改变老龄人口的生活
离开父母生活会很艰难,当他们变老而你又无法照顾他们的时候会更加艰难。感谢这个世纪给我们带来的永无止境的变化,变老不再是过去的样子。
从全球来看,预计到 2050 年,60 岁或以上的人口将翻一番,从 2015 年的 10 亿增加到 2050 年的 21 亿。到 2100 年,预计将增加到 31 亿,接近 2017 年的 3 倍。看到全球老龄化人口的增长前景,辅助生活行业正在快速吸引创新,使护理人员的健康监测变得轻而易举,这就不足为奇了。随着世界各国在未来几十年应对老年人口激增,这些创新正变得越来越重要。他们可能会面临财政和政治压力,以改革医疗保健监控、养老金和为日益增长的老年人口提供社会保护的公共体系。
与任何市场一样,越来越多的产品很难跟踪,为了让混乱的老年人监控市场易于理解,我们提出了一系列有趣的解决方案,在各自的类别中脱颖而出!
无线家庭监控
Gartner 的一份研究报告称,四年后,一个典型的家庭可能会包含多达 500 台智能设备。但是我们为什么在这里谈论他们呢?这些技术有可能让老年人的生活变得更加轻松,尤其是那些行动不便的老年人。
无线传感器网络(WSN)正日益成为辅助生活技术领域的一个热门话题。简而言之,这些产品使用电池供电的无线传感器(而不是实际的可穿戴设备)来测量环境参数,如温度、湿度和光强以及微观事件,从而可以推断日常活动,如移动、坐着、睡觉、使用电器和上厕所。离散的无线传感器被放置在房子的周围来监控活动。护理人员只需登录该产品的门户网站(或查看短信、电子邮件或迷你应用程序),就能知道他们所爱的人在做什么。这些产品中的大多数具有个人紧急响应系统(PERS ),该系统在检测到与个人的普通活动模式的显著偏离和/或突然跌倒时,发出自动警报,该警报可以转发给授权人员。
例如,TruSense 使用一个智能家庭连接设备网络来帮助老年人。它集成了像 Echo Dot 这样的技术,包括一个运动传感器、接触传感器、智能插座和集线器,它们一起工作,提供实时数据。
飞利浦 Hue 智能照明系统可以自动调暗和照亮房屋,帮助老年人入睡和轻轻地醒来。个人可以通过智能手机应用程序进行进一步调整。
缺点是什么?
- 当老年人不在家时不能用来监视他们。
- 值得思考的是,传感器是否能捕捉到每一个不寻常的活动,以及重大偏差实际上意味着什么
- 这样的产品可以同时监控多个人吗?如果你要照顾年迈的父母,这些传感器会监控他们的活动吗?
这一领域的一些著名品牌有 Lively、Canary Care、TruSense、Alarm.com、GrandCare Systems、 Sen.se Mother 和 Motion Cookies 、三星的 Smarthings 运动传感器和prevention ce的 Bodyguardian Heart。它们的价格在 150-250 美元之间,每月订阅费为 20-30 美元,在美国和欧洲的特定地区提供。
对聊养老和 AI 感兴趣?和我一起进行 30 分钟的免费咨询(5 美元的报名费将在通话后退还)。通过日历 安排与我的时间
带个人应急响应系统的可穿戴设备(PERS)
高级可穿戴设备可以让穿戴者和护理者的生活更加轻松,这已经不是什么新闻了。然而,值得注意的是,这些先进的医疗保健技术模型如今不仅仅是跟踪脚步——它们可以监控日常活动,发送警报,甚至防止跌倒。智能可穿戴技术有多种形式:吊坠、手表和鞋底。
与市场上的许多高级护理产品相反, CarePredict Tempo 监测佩戴者,而不是周围的环境。作为腕带佩戴,它可以监控运动、睡眠、位置、个人护理和日常活动。在了解了高级佩戴者的日常生活模式后,Tempo 可以在任何偏离正常模式的时候提醒家人。它无需电线即可充电,并配有一个呼叫按钮,可作为个人紧急响应系统。(PERS)
新的苹果手表应用程序旨在保护老年家庭成员的安全。这款应用程序简称为“Alert”,类似于一个紧急按钮,允许老年人或其他需要帮助的人通过触摸按钮联系护理人员寻求帮助。就当是那些“我摔倒了,爬不起来了!”过去电视购物中的设备。由于 watchOS 2 操作系统的变化,该应用程序还可以关注生理信号,并建议老年人在问题实际成为问题之前请求帮助。对于那些患有限制运动或言语的疾病的人来说,这款应用程序尤其方便。
GreatCall 的圆滑活泼,兼做手表和吊坠,大概是市面上最好看的高级可穿戴设备了。这款设备类似于 Apple Watch,防水且易于使用,长效电池可连续使用长达 6 个月。这款手机也有一个 PERS 按钮,可以将用户直接连接到代理,代理可以根据情况采取适当的行动——无论是联系紧急医疗队还是给家人打电话。
GPS SmartSole 是总部位于加利福尼亚州的 GTX 公司销售的一款产品,是一款可修剪的鞋垫,它结合了 GPS、蜂窝、蓝牙和 Wi-Fi 技术来捕捉数据,记录穿着者的位置,并将数据无线传输到云端,护理人员可以通过门户网站或应用程序访问这些数据。相关的应用程序还允许位置共享,让你随时随地关注你爱的人。
可穿戴设备的缺点:
- 极易受到外部损坏和盗窃
- 不支持摄像头监控;需要一个额外的设置
- 要求用户戴上设备并保持开机状态
其他产品包括飞利浦医疗保健的 GoSafe、 MobileHelp 、 Alert1 、 Connect America 、 Life Alert 、 Freeus 和prevenice的 Holter 和 BodyGuardian Verite 是高级智能可穿戴领域其他值得一试的标志性产品。其中大多数一次性费用为 150-200 美元,每月订阅费用为 30-50 美元。
药物管理系统
你上次忘记吃药是什么时候?虽然这看起来没什么大不了的,但随着年龄的增长,这种灾难会变得越来越严重。根据《风险管理和医疗保健政策》2014 年的一份报告,医疗保健系统每年因药物不合规而损失 1000 亿至 3000 亿美元。不遵从的原因很常见——忘记按时补充药物或忘记按时服药,或者因为否认疾病或避免副作用而拒绝遵从。
就像所有这些创新还不够一样,我们现在有了支持传感器的包装,可以跟踪容器中剩余的药丸数量,并在需要服用更多或重新订购处方时通过智能手机应用程序发送警报!
MedMinder 药丸分配器通过一系列可选的视觉和/或听觉警报提醒用户服药。首先,隔间会闪烁,然后药丸分配器会发出哔哔声,然后用户会收到电话提醒。如果用户仍未服药,那么将通过电话、电子邮件和/或短信通知所有护理人员。同样的技术可以用于防止脱水:传感器可以跟踪容器中剩余的液体量,并在该再喝一杯的时候提醒老年人。
单个药丸也可以嵌入可摄取的传感器。一旦药丸到达胃部,它就会向外部设备发送信号,如佩戴在身体上的贴片,以确保正确的剂量和用法。贴片记录数据,并将其传递给患者和医疗保健专业人员。患者还可以通过智能手机应用程序访问这些信息,这样他们就可以了解自己的情况,并努力改善自己的习惯。
提醒 Rosie 是另一款使用声控技术的产品。使用 Rosie,您每天可以录制多达 25 个提醒,并通过简单的语音命令查看当天的提醒,以便您保持控制。
Tricella 在药物跟踪领域也做了一些出色的工作,并将其产品运往美国、加拿大、英国、意大利、西班牙、法国、香港和日本。 CareZone 是一款你设置的免费应用程序,当该吃药的时候,它会让手机发出嗡嗡声。你们可以分享药物和其他重要信息。最酷的功能:拍摄一张药瓶的照片,上传,它会被转录并添加到药物清单中。虽然该细分市场中的一些产品以每月 50-60 美元的订阅价格出售,但其他产品的一次性费用约为 80 美元。
对聊养老和 AI 感兴趣?参加我的 30 分钟免费咨询(5 美元的注册费将在电话后退还)。通过日历 安排与我的时间
人工智能老年护理:老年护理的下一步
世界瞬息万变。人工智能技术不仅占据了空间和生产,还占据了我们的人类互动。最后,它开始为人类的日常必需品服务,特别是我们的老年人。
医院的 AI 可以帮助临床医生识别医疗风险;预测何时提供有针对性的拯救生命的干预措施;对罕见病患者形成治疗方案;并提供精准医疗。
例如,让老年人了解他们附近的社会活动可能会鼓励他们走出家门,与他人互动,减少社会孤立。分享带有健康促进信息的故事可以娱乐和潜意识地提供健康生活的教育。AI 建议选择更健康的食物,并鼓励他们积极运动,这有助于养成更健康的习惯。人工智能还可以从社交媒体网站上更新老年人关于他们孩子的信息,让他们更多地参与到家庭中来。
未来医疗保健领域的人工智能可能会围绕社交机器人、聊天机器人和语音助手的结合展开。
辅助社交机器人,一种特殊类型的辅助机器人,设计用于与人类进行社交互动,可以在老年人的健康和心理健康方面发挥重要作用。这种机器人被开发为老年人与数字技术的接口,并分别通过提供陪伴来帮助提高老年人的生活质量。索尼的艾博、ISRI 和 AIST 的 Paro、飞利浦的 iCat 和卡耐基梅隆大学的 nurse bot Pearl 已经在以实际的老年人为对象进行测试。
聊天机器人也越来越受欢迎,但它们相对较新,大部分仍在开发中。聊天机器人提供经医疗专业人员授权的信息,如果问题严重,还可以预约,或者通过对健康相关问题给出具体答案来缓解压力。
大量研究表明,老年人开始与人工智能聊天机器人建立某种形式的关系。社交机器人也可以调整他们的参与度,开始推动自我关心的行为。
越来越多需要定期保健的人正在购买语音辅助和识别设备。语音支持技术的数量正在不断增加,越来越多经验丰富的患者更倾向于使用这些工具。市场上有一个应用程序,可以帮助患者通过不同的服务预订他们往返医疗机构的旅程。在搜索医疗信息时,语音搜索对许多老年人非常有益。
人工智能在健康方面的力量似乎在于应用的结合,在未来我们可以看到所有这些应用的融合。临床应用将继续投入,并将变得越来越强大,以维持人们的生命。基于同理心的人工智能应用程序支持护理的软性方面,可以帮助我们让人们完全不需要临床治疗。人工智能在连续护理领域的商业案例可能确实非常强大,对健康结果的影响可能确实具有变革性。
对聊养老和 AI 感兴趣?和我一起进行 30 分钟的免费咨询(5 美元的报名费将在通话后退还)。通过日历 安排与我的时间
享受信息?尽可能多的点击下面的按钮!
无人驾驶汽车的现状🚶🚘
汽车中的人工智能
随着自动驾驶技术的快速发展,为什么我们今天没有使用自动驾驶汽车?
Photo by Rowan Heuvel on Unsplash
如今,开车本身似乎是微不足道的。硬件、软件和算法可以说已经足够复杂,可以让汽车在街道上自主导航。为了证明这一点,请参考下面展示 Waymo 当前自动驾驶汽车能力的视频。
Video published by Waymo here: https://www.youtube.com/watch?v=aaOB-ErYq6Y#action=share
大众与苹果合作开发无人驾驶巴士,并展示他们的无人驾驶汽车 SEDRIC 。 Waymo 在内华达州凤凰城的封闭测试版中测试他们的自动驾驶车队。特斯拉号称所有车型都有自动驾驶功能。 Drive.ai 在德克萨斯州的弗里斯科宣布了他们第一辆公开发售的自动驾驶巴士。很难找到一家汽车制造商不展示自动驾驶汽车的工作。
自动驾驶汽车有机会降低全球事故率,拯救数百万人的生命。它们有可能把司机从乏味的驾驶任务中解放出来。它们将改善行人和骑自行车者的安全。
如果汽车可以做到这一点,并提供这么多好处,为什么我们现在不在自动驾驶汽车上阅读这篇文章呢?
Photo by Matthew Szlichta on Unsplash
大规模生产自动驾驶汽车(SDC)面临着明显的挑战。解决这些挑战对世界各地的汽车制造商来说非常重要。这篇文章探讨并解释了使 SDC 为每个人所用的六个基础设施挑战。
根据标准化协会 SAE International 的定义,开发 SDCs 分为六类。0 级定义为完全没有自主权,而 5 级为乘客提供绝对自主权。下图解释了每个自动化级别的功能。今天,大多数现代汽车提供 2 级和 3 级之间的功能。
Source: https://goo.gl/RWvo2N
要达到 5 级自主并在驱动器上享受个人自由,需要克服以下障碍。
我们开门见山吧。🚗 🚙 🚘 🚖 🚍
1.数据存储
无人驾驶汽车会产生大量数据。据英特尔称,自动驾驶汽车将在一天内创建 4TB 的原始数据。让 2500 辆汽车上路,你每天很快就会产生 1pb 的数据。还有,你有没有试过在数十亿字节的数据中搜索?一点都不好玩。收集的数据规模庞大,需要精心设计的数据存储架构。
Source: https://intel.ly/2fueVli
一些数据位也需要存储在车辆中。定义存储哪些数据是一部分。视频是产生的绝大部分数据的来源。压缩或压缩相机图像并非对所有使用情况都可行。
一辆面向大众市场的汽车的运营利润率大约为 2 万美元的汽车的 5%。这为每辆车带来了大约 300 美元的利润。说服产品所有者为每辆车花 100 美元购买一个大容量的硬盘来存储数据是很难的。
2.数据传输
一旦生成了万亿字节的数据,就需要从汽车中提取出来。大多数汽车还没有享受永久的 5G 互联网连接,因此通过空中传输所有数据具有挑战性。
如果你有一个 50 兆比特/秒的互联网连接,理论上你可以在 24 小时内上传大约 4TB 的数据。如果你有很多车,你需要线性增加带宽。如果生成的数据量增加,互联网连接的带宽也需要增加。SDC 可以轻松测试世界许多地方现有互联网基础设施的物理极限。
3.传感器费用
What a Waymo car “sees”. Source: https://bit.ly/2rsK25r
SDC 通常通过相机图像和雷达技术激光雷达感知其环境。虽然相机很便宜,但激光雷达非常昂贵。一个来自威力登的新激光雷达传感器的价格大约为75,000美元,这已经超过了我们愿意为整辆汽车支付的价格。汽车制造商可以考虑以低于生产成本的价格出售 SDC。然后他们可以通过车载娱乐等数字服务把钱拿回来,但这是一个冒险的赌注。Waymo 声称已经在内部开发了自己的激光雷达传感器,并随后将其成本降低了 90%。这可能是在大规模生产的车辆中使用激光雷达的一种方式。
有人试图仅基于相机图像来驾驶自动驾驶汽车,就像这篇论文中介绍的那样。特斯拉主要依靠相机图像来驾驶汽车,以避免激光雷达的高成本。但只要激光雷达对于大多数环境感知功能来说是必要的,它将仍然是汽车制造商开发第 5 级自动驾驶汽车的昂贵“拐杖”。
“在我看来,(激光雷达)是一根拐杖,它将把企业推向它们将很难摆脱的局部最大化。也许我错了,我会看起来像个傻瓜。但我很确定我不是。”— 特斯拉首席执行官埃隆·马斯克
4.训练数据采集
据目前估计,SDCs 必须行驶约 1 亿英里才能收集到足够的数据来安全自主导航。Waymo 于 2018 年 2 月完成了第 500 万英里的驾驶。尽管速度稳步增加,但鉴于目前的速度,Waymo 将需要很长时间才能行驶完剩余的里程。公司也每天驾驶数百万虚拟英里数。但是在现实世界中收集结果是非常耗时的。
Source: https://waymo.com/ontheroad/
注意 Waymo 获取数据的节奏。虽然该公司花了 6 年时间驾驶第一个一百万英里,但它在 3 个月内驾驶了最近的一百万英里。令人印象深刻,但前面的路还很长。
5.拐角情况数据的采集
在特斯拉(Tesla)和优步(Tesla)的自动驾驶汽车发生悲剧性事故后,对拐角案例训练数据的需求变得越来越重要。拐角情况是很少发生的情况,例如行人意外踩在街道上或在街道中间放置混凝土块。有在高速公路上驾驶的数据固然很好,但更多的价值在于极限情况下的训练数据。Waymo 显然是通过随机跳到自动驾驶汽车前面并检查它是否停下来来测试它的自动驾驶汽车。目前的研究领域包括从模拟环境中创建极限情况数据或通过文本到视频转换系统创建人工数据。
6.验证深度神经网络
理解为什么或为什么没有 SDC 识别另一辆汽车是至关重要的,以说服监管机构这些汽车对于公共使用来说是足够安全的。SDC 依赖于深度学习算法,这些算法因没有解释它们为什么以这种或那种方式做出决定而臭名昭著。
在一个著名的项目中,研究人员训练了一个神经网络来区分狼和狗。这个模型达到了惊人的精确度。然而,研究人员最终发现,神经网络学会了检测图像上的雪,因为大多数狼的训练图像都在背景中包含雪。这不是网络应该得出的结论。
https://arxiv.org/pdf/1602.04938.pdf
在监管机构允许汽车在公共道路上自动驾驶之前,他们需要验证车辆是安全的。
这份清单涵盖了为大众生产无人驾驶汽车的基础设施问题。这个列表可能不全面,但它提供了一个概述。你已经看到了无人驾驶汽车给每个人带来的问题。有什么解决方案建议?
如您所见,在验证算法和扩展 SDCs 的数据训练和存储能力方面,仍有许多工作要做。如果你认为变通的 SDCs 很重要也很有趣,可以随意查看美国旧金山湾区的电子研究实验室,慕尼黑的自动智能驾驶有限公司,或者柏林的 Carmeq 的招聘信息。
如果你喜欢这篇文章,请不要忘记展示你的💛穿过👏 👏 👏并在 Medium 或 LinkedIn 上关注我。你也可能喜欢 这些 帖子。如果你认为有什么需要补充的,请评论。干杯!☮️
… &谎言的统计
现在,彻头彻尾的谎言和假新闻比以往任何时候都有增加的趋势吗?感觉的确如此。我想知道我们是否可以通过获取数据和使用统计数据来发现、证明或否定这些假设?
直到最近,我还一直认为,通过科学、技术和人类与生俱来的好奇心,对历史和当前事件的任何误解正在被揭示和纠正——尽管是缓慢的、渐进的,但却是持续的。
现在,由于任何白痴都可以在全球范围内以越来越大的频率和流行度抛出自己的议程(或点击他人的议程),似乎对真实事实的争夺无助地淹没在误解和错误信息的浪潮中。
我对真相的责任归属感到矛盾。历史被民主化地掌握在许多人的手中,不管有没有维基百科,这意味着我们这些业余爱好者已经把所有的新闻都变成了一场持续不断的“我的事实对你的虚构”的皇家战争。唉,过去已经今非昔比了…但是奥威尔很久以前就知道了。
我希望对“事实”消费的松懈、夸张的报道、点击诱饵新闻以及意识形态意图的简单渎职有自我纠正的疗法……而不是无知就是力量。
一个糟糕的火车测试分裂的故事
将数据集拆分为训练测试集有时可能比预期的更复杂
大约一年前,我们在一个模型中加入了一种新的功能,用于向用户推荐内容。我说的是内容项的缩略图:
到目前为止,我们一直使用项目的标题和元数据功能。与缩略图相比,标题更容易使用——机器学习方式。
我们的模型已经成熟,是时候给聚会添加缩略图了。这个决定是我们在列车测试分割程序中引入可怕偏见的第一步。让我来展开这个故事…
设置场景
根据我们的经验,很难将多种类型的功能整合到一个统一的模型中。所以我们决定一步一步来,将缩略图添加到只使用一个功能的模型中——标题。
在使用这两个特性时,有一件事需要考虑,那就是数据泄漏。当只处理标题时,您可以天真地将数据集随机分成训练测试——在移除具有相同标题的项目之后。但是,当您同时处理标题和缩略图时,您不能应用随机拆分。这是因为许多项目共享相同的缩略图或标题。库存照片是跨不同项目共享缩略图的一个很好的例子。因此,记忆它在训练集中遇到的标题/缩略图的模型可能在测试集中具有良好的性能,而在泛化方面做得不好。
解决办法?我们应该分割数据集,使每个缩略图要么出现在训练中,要么出现在测试中,但不能同时出现在两者中。标题也是如此。
第一次尝试
嗯,听起来很简单。让我们从最简单的实现开始。我们将数据集中的所有行标记为“train”。然后,我们将迭代地将行转换成“test ”,直到我们得到期望的分割,比如说 80%-20%。转换是如何完成的?在循环的每一步,我们将选择一个随机的“train”行,并标记它进行转换。在转换之前,我们将检查具有相同标题/缩略图的所有行,并对它们进行标记。我们将继续这样做,直到没有更多的行,我们可以标记。最后,我们将标记的组转换为“测试”。
然后事情升级了
乍一看,这个天真的解决方案似乎没什么问题。每个缩略图/标题出现在训练或测试中。那么问题是什么呢?
首先我会给你看问题的症状。为了能够比较只有标题的模型和使用缩略图的模型,我们对只有标题的模型也使用了新的分割。它应该不会对它的性能产生影响,对吗?但是后来我们得到了以下结果:
在最上面一行,我们看到了我们已经知道的:只有标题的模型在训练集上具有更高的准确性,并且准确性不受分割比率的显著影响。
问题出现在最下面一行,在这里我们应用了新的分割方法。我们期望看到类似的结果,但是只有标题的模型在测试中更好。什么?….不应该是那样的。此外,性能受比率的影响很大。有些可疑…
那么问题潜伏在哪里呢?
你可以把我们的数据集想象成一个二分图,一边是缩略图,另一边是标题。如果存在具有缩略图和标题的项目,则缩略图和标题之间存在边缘。
我们在新的分割中有效地做的是确保每个连接的组件完整地驻留在训练集或测试集中。
事实证明,分裂是有偏差的。它倾向于为测试集选择大的组件。假设测试集应该包含 15%的行。你以为它含有 15%的成分,但我们得到的是 4%。
第二次尝试
我们所做的有什么问题?当您随机对一行进行采样时,从特定组件获得一行的概率与组件的大小成比例。因此,测试集以少量大组件结束。这可能违反直觉,但这里有一个代码片段,您可以尝试亲自体验一下:
import numpy as np
import matplotlib.pyplot as plt def train_test_split(component_sizes, test_size):
train = component_sizes
test = []
while sum(test) < test_size:
convert = np.random.choice(range(len(train)),
p=train.astype('float') / sum(train))
test.append(train[convert])
train = np.delete(train, convert)
return train, test component_sizes = np.array(range(1, 10000))
test_size = int(sum(component_sizes) * 0.5)train, test = train_test_split(component_sizes, test_size)
plt.hist([train, test], label=['train', 'test'], bins=30)
plt.title('Distribution of sizes of components', fontsize=20)
plt.xlabel('component size', fontsize=16)
plt.legend(fontsize=14)
训练集和测试集之间的组件大小分布是不同的。
现在,我们通过二分图更好地形式化了我们正在做的事情,我们可以通过随机抽样连接的组件来实现拆分,而不是随机抽样行。这样,每个组件都有相同的概率被选入测试集。
关键外卖
将数据集分成训练测试的方式对于项目的研究阶段至关重要。在研究过程中,您花费了大量的时间来观察测试集的性能。构建测试集以代表推理时发生的事情并不总是简单明了的。
以向用户推荐一个项目为例:您可以推荐一个全新的项目,也可以推荐一个过去已经向其他用户展示过的项目。两者都很重要。
为了了解模型在研究阶段的离线情况,您必须构建一个测试集,其中包含全新的项目和出现在训练集中的项目。合适的比例是多少?很难说…我想这可以成为改天另一篇文章的主题🙂
成功的数据科学求职
本文的重点是从头到尾向您展示成功的数据科学求职是什么样的。系好安全带,朋友们。我要把你从被解雇的第一天带到我接受工作机会的那一天。说真的,那是紧张的两个月。
我拥有统计学硕士学位,自 2010 年以来一直从事高级分析工作。如果您是该领域的新手,您的体验可能会有所不同,但希望您能够利用大量的此类内容。
我们将讲述我如何利用 LinkedIn,跟踪所有的申请,在搜索时继续提高你的技能,当你收到邀请时该做什么,以及如何谈判。
第一天被解雇
Vistaprint 决定裁员 2000 万美元,我是其中一员。我意识到目前市场很热,所以我从第一天起就很乐观。我收到了遣散费,这是一个让我认真思考下一步该怎么走的机会。
我第一次染了亮粉色的头发后 4 天就被解雇了,这太糟糕了。
4 days after I was laid-off, sporting my pink hair. That’s my little man, Harry. He was almost 3 months when I was laid-off.
实际上,我带着我的粉红色头发去参加了一次工作面试,他们很喜欢。然而,我决定在接下来的搜索中让我的头发恢复自然的颜色。
我做的第一件事:
招聘人员经常在 LinkedIn 上找我。我总是回复。
虽然如果你刚刚进入这个领域,你可能不会在你的 LinkedIn 邮件中有招聘人员过去的信息,但我提到这一点,以便你可以在你的剩余职业生涯中开始这样做。
现在我正在寻找,我的第一个行动是浏览这个列表,给每个人发信息说:
“你好(招聘人员),我正在寻找一个新的机会。如果有你想填补的合适的职位,我愿意和你聊聊。”
有很多人回复说他们有一个角色,但是和他们谈过之后,现在这个角色似乎不太适合我。
除了联系那些联系过我的招聘人员,我还在谷歌上搜索(和 LinkedIn 搜索)来寻找分析领域的招聘人员。我也向他们伸出手,让他们知道我正在寻找。你永远不知道谁会知道一些还没有出现在求职公告板上,但很快就会出现的事情。
第一次见到职业蔻驰
作为裁员的一部分,Vistaprint 给我安排了一个职业教练。她教给我的信息非常有价值,我将在我的职业生涯中使用她的建议。我见过转型解决方案的琼·布莱克。在我们第一次见面时,我带着我的简历,我们讨论了我对下一个角色的期望。
因为我的简历和 LinkedIn 在过去取得了成功,她没有改变我简历上的太多内容,但我们确实把我的技能和经验放到了最上面,把我的学历放在了最下面。
他们还将其格式化以适合一页。它开始变长了,但是我相信一页简历。
This is my resume. While it may not be the most beautiful resume ever, it got the job done and I’m happy with it.
我还确保在我的申请中附上一封求职信。这给了我一个机会,可以明确地说我的资格与他们的工作描述非常匹配。这比必须通读我的简历寻找流行语要清楚得多。
我保存了一份我申请的所有公司的电子表格。在这个电子表格中,我会输入一些信息,比如公司名称、完成申请的日期、是否有回音、最后更新时间、是否发了感谢信、招聘经理的姓名等等。
这有助于我记录飞行中所有不同的事情,以及我是否能做些什么来保持这个过程。
每个应用程序:
对于我申请的每一份工作,我都会在 LinkedIn 上进行小小的搜索。我会看看我的关系网中是否有人目前在这家公司工作。如果是这样,他们可能想知道我在申请,因为很多公司都提供推荐奖金。我会给那个人发信息,说些类似这样的话:
嘿米歇尔,
我在申请 __________ 的数据科学家职位。你愿意推荐我吗?
如果我的网络中没有为该公司工作的人,我就会试着找到该职位的招聘经理。很可能是“数据科学和分析总监(或副总裁)”之类的头衔,或者其他类似的称呼,你要找的是决策者。
这需要 LinkedIn Premium,因为我要发送一封电子邮件。我给招聘经理/决策者的信息应该是这样的:
嗨肖恩,
我对远程数据科学职位很感兴趣,我希望我能把我的简历交到合适的人手里。我有统计学硕士学位,加上 7 年的实际建模经验。我擅长 SQL,用 R 建模,对 Python 也有一些了解。
我很高兴有机会与合适的人谈论空缺职位,并分享我如何通过使用统计方法为公司提供见解和附加值。
谢谢克里斯汀
大多数人都做出了回应,当我告诉琼(职业教练)我在 LinkedIn 上的成功时,她很惊讶。
我开始申请工作,并开始拥有“手机屏幕”
手机屏幕基本上都一样。有些人比其他人更激烈,时间更长,但他们都在半小时左右,他们通常是和人力资源部门的人在一起。因为是人力资源部门,你不想太深入地了解技术方面的东西,你只是希望能够通过这个阶段,然后写一封短信感谢他们的时间,并尝试在你能够与招聘经理交谈时坚定立场:)
介绍一下你自己:
人们只想听到你能说出你是谁,你在做什么。我的是某种变体:
我是一名数据科学家,拥有 7 年使用统计方法和分析解决各行业业务问题的经验。我擅长 SQL,R 建模,目前正在学习 Python。
你想做什么?
我会确保我想做的事情与职位描述直接相关。说到底,这是“的一些变种,我希望不断学习新的工具、技术和技巧。我想致力于增加商业价值的有趣问题"。然后我会谈论工作描述中的一个项目听起来有多有趣。
你希望的薪水是多少?
如果你能避免这个问题,你会被问到,但是试着转向不同的方向。你可以回答“我过去一直得到公平的报酬,我相信为[插入公司名称]工作也会得到公平的报酬。你知道这个职位的工资范围吗?
他们会知道这个职位的范围,但他们可能会告诉你他们不知道。大多数情况下,我会最终让步,给他们我的薪水,这并不意味着当你收到一份工作邀请时,你就不能讨价还价了。
与此同时,我还在学习,我可以在采访中这样说:
如果我要告诉每个人我非常喜欢学习技术,那么我最好是“言行一致”。虽然我在不断学习,因为这是我的天性。确保如果你说你在学习新的东西,你真的在学习它。我选的课程是:
免责声明:这是一个附属链接,意思是说,如果你最终报名参加这个课程,我将免费为你赚取佣金。
本课程将介绍基本的列表,数组,元组,定义函数…但是它也介绍了如何访问和解析 web 数据。我一直想知道如何访问 Twitter 数据以供未来分析,所以这非常酷。专业化(这是 Coursera 上一系列课程的名称)也给出了如何构建数据库的简要概述。这对我来说是一个额外的收获,因为如果我想操作一个模型,我会想知道如何从 Python 写一个数据库表。总的来说,我发现这门课很好地利用了我的时间,而且我学完这门课后能够聪明地与事物交流,这是我在学这门课之前无法做到的。
亲自面试:
一篇关于当面采访的深度文章来了。一旦它建立起来,我会把它链接到这里!数据科学面试肯定有一个非常标准的流程。
或者你可以随时加入我的邮件列表,确保你不会错过它!这里
你被告知你将会收到一份工作邀请:
太好了!你会得到一份工作。在这一点上,你想打电话给你会考虑录用的所有其他公司,并说“我被告知我正在等待一份录用通知,你能做些什么来加快你的过程吗?”
我向两家公司提到了这一点。其中一个确实加快了他们的进程,并导致了额外的报价。
谈判:
电话响了,你接了。就这样,你得到了第一份工作。是时候谈判了。只有相对较小比例的人谈判过他们的薪水,当我们谈到女性时,这个比例就更小了。
女士们!谈判!我在这里支持你,你能行的。
过渡解决方案的琼曾在这方面指导过我。她说“不要试图为他们解决问题”。
当他们打电话给你时,让他们知道他们打电话给你你有多兴奋,你有兴趣听听他们的提议。
一旦你听说了薪水、休假时间,以及他们会把福利信息发给你,你就可以这样说:
非常感谢你的邀请,我真的很感激。你知道,我希望你能在薪水上做得更多。
然后等待回应,再次保持乐观。他们很可能会说,他们需要将这些信息反馈给招聘经理。
谢谢你。我会花些时间看看福利待遇。我想在 ____ 再次发言。我很有信心我们可以结束这一切。
然后你就可以离开谈话,确定下一次和他们谈话的具体时间,让他们知道你很高兴收到他们的来信,所有这些都是积极的!
我成功地谈妥了我的提议,一周后开始工作。我对我现在的位置和我正在做的工作非常满意。我花了很多时间去申请,也花了很多时间去和那些不是“最佳人选”的公司交流,但这是值得的。
总结一下我的求职。我了解到,有针对性的求职信和直接在公司网站上申请会大大提高你的申请回复率。我了解到,你可以有效地利用 LinkedIn 找到一个职位的决策者,如果你非常适合,他们会帮助你推进这个过程。我也对自己表达技能的能力有了极大的信心,这来自于实践。
我祝你在狩猎中取得巨大成功,我希望这篇文章中有一些你能够使用的技巧:)
如果你想把我的文章直接发到你的邮箱,你可以注册:这里
Z 分数惊人的长寿
Europe in 1730
1730 年 6 月 6 日星期二的深夜,亚伯拉罕·德莫佛跌跌撞撞地从考文特花园的一家咖啡馆里走了出来,由于喝了太多的杜松子酒,又上了几个小时的课,还在赌博,他还有点晕头转向。
他可能会停下来,凝视着星星,思考这个世界会如何记住他。作为一个以教数学为生的贫穷法国移民,他不会想到他的理论会在近 300 年后对人工智能产生影响。
亚伯拉罕·德莫佛以他的著作《》奠定了概率论的基础(1718 年第一版)。
具体来说,在他的书的后期版本中,德·莫维尔记录了第一个已知的关于二项分布近似的陈述,现在通常称为 正态分布 。此外,他还证明了中心极限定理的一个特例。这些原理的发现对于统计分析的重要性,就像有花边的皮球的发现对于足球的重要性一样。
正态分布可以通过均值(μ)和标准差(σ)来描述。在正态分布中,我们可以观察到大约 68%的观察值在平均值的一个标准偏差内,大约 99%的观察值在平均值的三个标准偏差内。标准差(σ)是对平均值支出的度量。
通过高斯函数描述的完善的正态分布为数值观测值创建了一般的测量可比性规则,并返回其概率。
Gaussian Function source:http://www.drcruzan.com/Images/ProbStat/Distributions/GaussianFunctionWithExplanation.png
这种标准化正是 z-score 变得非常方便的地方。
z-score function
标准化以便更好地比较
比方说,德莫维尔先生想比较他的学生在代数方面是否和他们在几何方面一样好。显然,他会绘制两个数据系列的分布图。
代数的平均分是 50,我们计算出标准差是 10。我们可以将 z 得分计算为(得分均值)/标准差= (X-50)/10
几何的平均分是 70,我们计算出标准差是 10。我们可以将 z 得分计算为(得分均值)/标准差= (X-70)/10
如果 know de Moivre 最喜欢的学生在两次考试中都得了 60 分,那么她在代数考试中就会比平均水平高出 1 个标准差。
然而,对于几何测试,她将比平均值低 1 个标准差。
或者换句话说,在代数方面,84%的其他学生(低于平均值 50 %+半标准差 34%)会更差;在几何方面,84%会更好。
现在我们有两个均值不同的数据序列。有没有可能通过这两次考试的表现来预测学生未来的总体表现?当然是了。
在许多统计应用中,通常将观察值标准化为标准正态分布;均值(μ) =0,标准差(σ) = 1 的正态分布。
我们简单地计算所有观察值的 z 分数,瞧,我们有了标准尺度上的所有观察值。
标准分数对于评估学生的表现有几个好处。如果你简单地计算样本的平均等级,你肯定会得到学生所处位置的意见,但是接近平均值的等级差异与其说是能力差异,不如说是分布的极端差异。或者换句话说,在 100 名学生的小组中,排名第一和第五的人之间的差异通常大于排名第五十一和第五十五的人之间的差异。
离群点检测
在将这些衡量标准转换成z*-分数后,你再将它们相加,你就有了每个员工的公平评分。评级假设所有三项指标同等重要。*
我们可以看到,学生 3 的表现比其他两个学生差得多。因此,学生 3 可以被看作是一个需要特殊支持的局外人。用于异常值检测的常用阈值通常是 z 分数 3 或-3,即偏离平均值超过 3 个标准偏差。如果你需要决定支持谁,显然是学生 3。但是离群点检测不仅对数据探索有用。对于金融服务中的欺诈检测,异常值检测是机器学习的一种常用应用,可改善借贷操作。
特征缩放
事实上,机器学习中的大多数聚类算法工作得更好,甚至需要使用 z 得分或最小-最大归一化来进行数据归一化。在 ML 中,这个步骤也称为特征缩放。例如,利用观测值之间的欧几里德距离度量,利用 k-最近邻来应用特征缩放。
甚至像谷歌 Tensorflow 这样的尖端 ML 库也严重依赖于一项近 300 年前的技术。然而,亚伯拉罕·德莫佛从未看到他的研究如何对这个世界产生影响。尽管他是尊贵的皇家学会的会员,他死时还是一个穷人。
来源:
杜松子酒热是 18 世纪上半叶的一个时期,当时杜松子酒的消费量在很大程度上迅速增加
en.wikipedia.org](https://en.wikipedia.org/wiki/Gin_Craze) [## 标准分数-维基百科
在统计学中,标准分数是标准偏差的有符号数,通过它,观察值或…
en.wikipedia.org](https://en.wikipedia.org/wiki/Standard_score)
本文由 tenqyu 为您带来,这是一家利用大数据、机器学习和大量创意让城市生活变得更加有趣、健康、包容和繁荣的初创公司。*
1001 个黑盒的故事
或者为什么我认为亚马逊“种族主义”人工智能的故事实际上留下了乐观的空间
如果你能上网,并且对人工智能感兴趣,你会偶然发现亚马逊最近的一个故事,它试图建立一个机器学习算法(或花哨的术语“人工智能”)来使的招聘过程自动化,结果发现它会惩罚包含“女性”一词的简历(例如,所有女子大学的候选人)。
正如任何季节性的“AI 变坏”新闻故事一样,首先必须打破一些神话。通常的反对意见通常有以下几种形式:“如果女子学院的毕业生真的不够格,为什么惩罚她们就应该算作歧视呢?”
记住上下文在这里是至关重要的。通过使用自己的招聘记录作为训练数据,亚马逊没有建立一个人工智能来学习如何聘用成功的候选人;根据定义,它所能做的就是建立一个人工智能,模仿它当前的招聘实践。这看似琐碎,但这一点被很多人忽略了。这就是语境的作用:我们有任何理由相信亚马逊的招聘行为没有偏见吗?
很久以前就已经确定,作为人类,我们的决策充满了各种各样的偏见。具体来说,在科技行业的招聘中,最常见的一种被称为“确认偏差”。在早期,我们建立了一些成功的原型,我们倾向于寻找其他符合这些原型的人。当每一次“招聘”都是一项昂贵的投资时,科技公司倾向于“利用”他们对成功候选人的现有理解,而不是“探索”(给其他人机会,他们看起来不像典型的成功候选人,以证明他们的技能)。
好的,我们已经确定了 ML 是一个黑箱,它会使我们自己的偏见永久化。这能带来什么好处呢?
Picture from Pexels
我的观点是,现实世界中的人类决策过程可能比单个黑盒更糟糕。我们称之为**“亚马逊的招聘流程”**的实体由如此多的移动部分组成:它是一个由招聘人员、招聘经理和面试官组成的层级——每个人都有自己可能的偏见和怪癖——他们不一定遵循一个规定的议程。形象地说,是一千个黑箱。
这种结构意味着试图梳理出实际歧视的证据可能具有挑战性;亚马逊做出的每一个招聘决定都是可以否认的,因为它被归因于一个“有问题的”盒子(你读过多少次“这只是 X,Y,Z;这不代表我们公司的政策吗”?).
这就是为什么戴上一副合适的眼镜,ML 的进入可以被视为塞翁失马,焉知非福。当人类决策变得“算法化”时,它就变成了从输入(个人)到结果(决策)的明确映射。是的,这种映射对我们人类来说似乎极其复杂——就我们所知,是一个“黑盒”——但至少它是的一个这样的盒子。
通过对其历史招聘决策训练 ML 算法,亚马逊捕捉到了其决策过程的系统方面,即超越单一决策的方面。亚马逊实际上将其 1000 个黑匣子减少到只有一个。现在,仔细检查这个盒子(例如,通过检查通过将个人“喂入”黑盒获得的输入输出对,并观察预测的结果)可以为关于原始的、复杂的实体(即亚马逊的招聘实践)的假设提供更有力的基础。在这种情况下,它确实揭示了(或实现了推测)它的某些方面构成了明显的歧视候选人。
这是而不是说我们应该在敏感领域不经意地调用机器学习。亚马逊的故事是众多证明这显然是一个坏主意的例子之一,而且有越来越多的研究人员(我非常高兴成为其中的一员)正在仔细研究这些问题。这是试图说,尽管有太多的负面结果,关于 ML 可能促成的所有“坏事”,我们应该记住有一个潜在的积极前景:如果使用得当,算法化可以作为一种工具,更好地理解和改进我们自己的实践。
Python 中缺失值的故事
想象一下,买一个装有 60 个巧克力样品的巧克力盒,里面有 15 种不同的独特形状的巧克力。不幸的是,打开巧克力盒子,你会发现两块空巧克力。你能准确地找到处理丢失的巧克力块的方法吗?我们应该假装丢失的巧克力并没有丢失。?应该把巧克力盒子还给卖家吗?是否应该去买另外两块巧克力来填补缺失的部分。或者,人们可以根据以前盒子中巧克力的排列和形状的经验来预测丢失的巧克力的形状,然后购买这种预测形状的巧克力。
为了正确处理丢失的数据,数据科学家需要回答上面和其他一些令人头疼的问题。因此,这篇文章旨在阐明在我们的数据探索之旅中处理缺失值的几种方法。
现实世界中的数据很少是干净的和同质的。数据可能在数据提取或收集过程中丢失。缺少的值需要被处理,因为它们降低了我们的任何性能指标的质量。它还会导致错误的预测或分类,并且还会对所使用的任何给定模型造成高偏差。
根据数据源的不同,丢失的数据会有不同的标识。熊猫总是把缺失的值识别为 NaN。但是,除非数据经过一定程度的预处理,否则分析师会遇到 NaN 这样的缺失值。缺失值可以显示为问号(?)或零(0)或负一(-1)或空白。因此,在编写任何机器学习算法之前,数据科学家总是首先执行探索性数据分析(EDA)是非常重要的。EDA 只是理解和了解我们的数据行为的试金石。
探索性的数据分析永远不可能是故事的全部,但其他任何东西都不能作为基石。约翰·图基
例如,如果我们有一个数据集,该数据集应该用来根据多年的经验预测平均工资,而在我们的经验年数列中,不加选择地发现值为-1,那么我们可以将该值标记为缺失值。否则,可能我们有一个身高/体重/年龄的连续变量特征(观察变量或独立变量),我们的 EDA 显示我们某个观察值为 0 或-1 或小于 1 的值;那么人们可以断定这样的值是丢失的值。缺失值也可能为空。当被调查者或用于获取此类数据的仪器没有对此类特征进行测量时,通常会出现这种情况。
Source: DataCamp Supervised Learning Course
我们如何处理丢失的值
有几种处理缺失值的方法,每种方法都有自己的优点和 CONS。然而,应该做什么的选择在很大程度上取决于我们的数据和缺失值的性质。下面是我们处理缺失值的几个选项的概要。
- 删除缺少的值
- 用测试统计填充缺失值
- 用机器学习算法预测缺失值
下面是一些用 EDA 检测缺失值的命令列表。
data_name.info()
这将告诉我们存在的非空观察的总数,包括条目的总数。一旦条目的数量不等于非空观察值的数量,我们就可以开始怀疑丢失的值。
data_name.describe()
这将显示所有观察到的要素和标签的汇总统计数据。这里最需要注意的是最小值。一旦我们在年龄/身高/体重这样的观察中看到-1/0,那么我们就能够检测出缺失的值。
data_name.head(x)
这将输出我们数据的前 x 行。看到这个会让你对 NaN/-1/0/blank/?除其他外。
data_name.isnull().sum()
这将告诉我们在 or 数据中 NaN 的总数。
如果缺少的值没有被标识为 NaN,那么我们必须首先用 NaN 转换或替换这样的非 NaN 条目。
data_name[‘column_name’].replace(0, np.nan, inplace= True)
这将在我们的 data_name 的名为 column_name 的列中用 NaN 替换零值。
1)删除空值或缺失值
这是处理缺失值的最快和最容易的步骤。不过一般不建议。这种方法降低了我们模型的质量,因为它减少了样本量,因为它通过删除任何变量缺失的所有其他观察值来工作。该过程可以通过以下方式完成:
data_name.dropna()
代码片段显示了丢失值的危险。
将观察到,仅通过丢弃 NaN 值,891 个条目中的将减少到 183 个。!!!只有在缺失值很少的情况下(比如我们数据的 0.01–0.5%),才建议使用丢弃法。百分比只是一个经验法则。
2)填充缺失值
这是处理缺失值的最常见方法。在此过程中,缺失值将被测试统计数据(如缺失值所属的特定特征的平均值、中值或众数)替换。还可以指定向前填充或向后填充,以向后传播下一个值或向前传播前一个值。
用测试统计填充缺失值
#Age is a column name for our train datamean_value=train['Age'].mean()
train['Age']=train['Age'].fillna(mean_value)#this will replace all NaN values with the mean of the non null values#For Medianmeadian_value=train['Age'].median()
train['Age']=train['Age'].fillna(median_value)
用测试统计填充缺失值的另一种方法是使用 sklearn.preprocessing 中的估算方法。
In [1]: from sklearn.preprocessing import Imputer
In [2]: imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
In [3]: imp.fit(train)
In [4]: train= imp.transform(train)
#This will look for all columns where we have NaN value and replace the NaN value with specified test statistic.#for mode we specify strategy='most_frequent'
对于回填或前填,分别传播下一个或前一个值:
#for back fill train.fillna(method='bfill')
#for forward-filltrain.fillna(method=''ffill)#one can also specify an axis to propagate (1 is for rows and 0 is for columns)train.fillna(method='bfill', axis=1)
请注意,如果上一个或下一个值不可用,或者如果它也是一个 NaN 值,则即使在回填或前填后,NaN 仍然存在。
此外,使用平均值的缺点是平均值会受到数据中异常值的很大影响。因此,如果异常值出现在我们的数据中,那么中位数将是最好的现成工具。
在管道中输入测试统计数据
数据管道允许通过一系列步骤将数据从一种表示转换为另一种表示。管道允许对我们的数据应用和链接转换的中间步骤。例如,可以填充缺失值,将输出传递给交叉验证和网格搜索,然后通过一系列链接在一起的步骤来拟合模型,其中一个步骤的输出是另一个步骤的输入。
你可以在这里了解更多关于管道的信息。
这是一个管道示例,它用每一列中最常见的值来估算数据,然后拟合到逻辑回归中。
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
logreg = LogisticRegression()
steps = [('imputation', imp),('logistic_regression', logreg)]
pipeline = Pipeline(steps)
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.3, random_state=42)
pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)
pipeline.score(X_test, y_test)
3)处理缺失数据的预测模型
这是迄今为止处理缺失数据的最好和最有效的方法之一。根据缺失数据的类别,可以使用回归模型或分类来预测缺失数据。其工作原理是将缺失的要素转换为标签本身,现在使用没有缺失值的列来预测有缺失值的列
过程是这样的:
将缺少值的变量称为 y。
将数据分成有缺失值和无缺失值的集合,将缺失集合命名为 X_text,将无缺失值的集合命名为 X_train,将 y(有缺失值的变量或特征)从第二个集合中去掉,命名为 y_train。
使用其中一种分类方法预测 y_pred。
添加到 X_test 作为你的 y_test 列。然后将集合组合在一起。
对于机器学习的初学者或新手来说,这种方法似乎更困难。这种方法的唯一缺点是,如果缺失数据的属性与数据集中的其他属性之间没有相关性,那么模型在预测缺失值时会有偏差。
用断言结束
除了如上所述使用 isnull()检查缺失值之外,还可以使用 assert 以编程方式检查是否存在缺失或意外的“0”值。这让人确信代码运行正常。
可以在 assert 上执行以下和其他一些布尔运算。如果 Assert 语句为真,assert 将返回 nothing,如果语句为假,将返回 AssertionError。
#fill null values with 0df=train.fillna(value=0)#assert that there are no missing valuesassert pd.notnull(df).all().all()#or for a particular column in dfassert df.column_name.notall().all()#assert all values are greater than 0assert (df >=0).all().all()#assert no entry in a column is equal to 0assert (df['column_name']!=0).all().all()
总之,处理缺失值的方法在很大程度上取决于此类数据的性质。因此,您处理的不同类型的数据越多,您对不同数据类的不同解决方案的体验就越好。
感谢您的阅读,请留下您的评论,不要忘记分享。
页(page 的缩写)请关注我的下一篇文章,讨论处理分类变量的各种选择
- 所有图片均来自网络*
数据科学的十大谬误
Photo by Gert Boers on Unsplash
数据科学专业的学生和新员工对世界的看法更加理想化,而他们在处理行业中的真实数据科学问题时经常会面临一些问题,在这两者之间存在一个隐藏的鸿沟。所有这些新的大学数据分析课程(几乎都是新开设的课程)都旨在教授学生编码、统计、数据争论等基础知识。然而,在行业内的实际数据科学工作中,人们期望你克服的那种挑战却很少出现。
分析课程提供数据(通常还有工具)并要求您生成预期结果,而行业角色可能既没有提供数据,也没有提供适当的工具,甚至连预期结果的构成都不知道。此外,行业文章通常有更严格的截止日期,没有支持,请求分析的人对统计的理解也有限。
在获取执行一些有用的分析工作所需的技能的背景下,大学课程有意降低了许多障碍,以便让您专注于核心的数据科学部分,这是理所当然的。课程材料不断向前推进,介绍统计分布、假设检验、分类器和各种工具,如 R、SPSS、Python 和 RapidMiner。最后,在掌握了基础知识之后,您会得到一个干净的数据集,并被要求比较随机森林和其他类型的分类器的性能。
不要误解我的意思,这种类型的学习是你以后职业生涯中可能从事的工作类型的基础,但它几乎和任何种类的书本学习一样有用。这些理想化的项目与更现实的工作实践之间有一个漫长、痛苦且永无止境的重新组合。这些是新手数据科学家在他们的新角色中第一次遇到的一系列谬误,通常伴随着哭泣和咬牙切齿。
- 数据存在。
不可避免的是,对特定分析工作的请求会预先假定构成该工作基础的数据的可用性。这可能看起来是最基本的假设,但如果被要求分析某个数据集,却发现它不存在、不可访问、缺少通用标识符或在太高的级别上汇总/总结,这种情况并不罕见。在任何任务开始时要问的第一个问题是,在你去追逐兔子洞,或者更不明智地,同意完成分析的具体期限之前,底层数据是否存在。在最糟糕的情况下,你可能会孤立无援,没有数据,但却有一种迫切的期望去完成你无法完成的分析。在这种情况下,你很容易对潜在数据的瑞士奶酪进行分析,这将不可避免地导致错误的结论,并显示出官员的极端无礼。如果数据完全缺失,早点喊,经常喊。如果有一些不完整的数据要处理,也大声说出来,但不要把它作为一个通用的借口来关闭工具,直到完美的数据集被数据工程的侏儒们神奇地整理出来。
2。数据是可访问的。
太好了,你得到了一个确认,你所依赖的数据集实际上存在于某个地方,而且传闻中基本上是完整的。现在,下一个障碍是这些数据是否能在合理的时间内提供给你。其中往往包括公司内部不同部门之间相互竞争的优先事项,或者外部顾问、长期离职的员工或第三方公司囤积的数据,这些公司希望通过出售访问权来快速获利。提供对孤立信息的免费和方便的访问可能不符合名义上的数据所有者的最佳利益,无论是因为法律、合同或财务限制,还是仅仅为了保持他们目前的角色。即使在个别公司内部,你也会发现,对于看似完全合理的数据要求,你会被毫不客气地拒之门外。哪里有钱可赚,特别是如果在数据管道的任何一点都有外部参与者,您会发现单行 SQL 查询被呈现为一些具有同样庞大账单的庞大项目。因此,任何精明的数据科学家的目标都是成为你自己的数据管道的每一个阶段的共同管理者,以便每个数据片段的所有权至少在某种程度上服从任何数据请求。
3。数据是一致的。
出于显而易见的原因,最好是找到一个结构良好、自洽且定义明确的一致数据集。发现一个数据文件突然从 19 列切换到 20 列,然后又切换回来,或者同一数据的不同版本之间的列排序发生变化,这是多么令人高兴啊!与所有不受欢迎的意外一样,这种最后的小故障往往会在最后一刻出现——当您调用 R Studio 中的 read.csv() 函数来正确查看数据时。即使数据看起来一致,当你看到像不可靠的 UTF-8 字符这样的事情,或者在一个文件中改变日期格式,从 YYYYMMDD 到 MM-DD-YY 或一些类似的废话时,还是会有一场名副其实的咒骂、辱骂和揪头发的狂欢。要记住的基本原则是,特别是依赖于遗留系统的数据管道,除非数据馈送是由数据科学家或数据工程师设计的,否则它很容易返回各种 cruft 来响应不同的操作条件。
4。数据是相关的。
如果一切顺利,初露头角的数据科学家可能会发现他们期待已久的数据集既不是最新的,也不是分析所需的粒度级别。谷歌分析,可以说是最广泛使用的网络相关用户行为的来源,有一些令人烦恼的问题,使其无法进行详细的分析。首先,很难唯一地识别网络用户,其次,令人不安的问题是 GA 显示的是总页面浏览量的“估计”,而不是实际的统计数据。因此,由于不相关的数据,听起来合理的请求变得不可能。例如,如果您被要求预测登录到网站 X 的客户的保留率,那么 GA 数据馈送本身几乎没有用处。
5。数据直观易懂。
有太多次,我等着收到一个数据集,一旦交付和检查,最终看起来就像一些古代亚述泥板一样难以辨认。特定于域的代码、截断的文本字段、缺少查找表以及缺少或命名不当的标题字段都会导致数据难以理解。严格按照垃圾输入/垃圾输出策略工作意味着,在最好的情况下,任何无法解释的数据在输出中都会被忽略,在最坏的情况下,当您在寻找类似于 HEADER_1 的字段背后的含义时,会导致一系列额外的问题。除非作为任何分析的一部分,对所提供的数据有一个很好的文档描述,否则你不会知道你是在测量苹果还是橘子。
6。数据可以被处理。
太好了,您现在有一个 600MB 的 CSV 文件,您需要使用 Excel VLOOKUP 函数与另一个 600MB 的 CSV 文件冲突…在一台过时且配置不足的笔记本电脑上。可能让新手数据科学家,尤其是那些进入更成熟的大型企业的数据科学家感到惊讶的是,数据科学工具通常与 IT 领域的其他软件应用程序没有什么不同。开源工具不受欢迎,没有安装权限,或者任何工具都必须符合一些没有人见过的虚假的神奇的 IT 安全认证。我见过 IT 人员要求对某些成熟的软件包进行详细的安全审计。我见过功能完善、市场领先的软件应用被行业 IT 老板拒绝,因为供应商“太便宜”或“不是 XYZ 的指定供应商”。
除了围绕处理大型数据集的简单技术问题之外,还可能存在一个阴谋 IT 规则和法规,这使得不可能获得足够的处理工具来处理手头的任务。我听说过有人被迫使用 Excel 执行 V-lookup,作为连接两个数据集的一种方式,因为没有人会为他们提供任何更好的机制。这种短期 IT 限制的下一个结果是,处理一个文件可能需要几个小时,如果进行一些编码和并行处理,几分钟就可以自动完成。
7 .。分析可以很容易地重新执行。
你还记得三个月前你帮我做的分析吗?这是更新后的营销关系数据,你能帮我快速重新运行一遍吗,谢谢!!!对…人们,从哪里开始!!!这就好比有人递给你一张拼图,并要求你在超快的时间内重新制作,而事实是,就在你弄乱它并把它放回盒子之前,它是完整的。或者要求住在破旧的房子里,因为在过去的某个时候它是可以居住的。除非您明确地设置一个可重复执行的分析,并保持数据源是最新的,否则更新并重新导入所有内容以获得更新的分析很可能会是一个很大的麻烦。这还没有考虑您使用的数据是否是静态的,或者您需要做什么来解释任何数据库模式变化或对任何其他输入的更改。
因此,如果你被要求执行一项听起来像是主要的分析工作,设计 bugger 以便它可以很容易地重新运行,理想情况下只需点击一个按钮,只需你自己付出最少的努力。
8。我们要去的地方不需要加密。
啊,是的,经典。您已经完成了分析,编写了一份不错的报告和一些关于该问题的幻灯片,现在您需要将数据发送给某人进行审查。我只是将数据和所有客户的详细信息以纯文本形式粘贴到一封电子邮件中,会有什么问题呢?嗯,首先,自动完成给联系人名单中错误的人的电子邮件,并把你的皇冠上的宝石送到天知道的地方,并不太困难。或者,就像我以前的一位同事,他错误地将一家公司的详细财务分析发送给了竞争对手。
Need to use company-wide standard data encryption huh?
信息安全领域的优秀人员要求您发送的任何数据都要加密,这是有原因的。安全剧场是首要的,屁股遮盖可能是第二位的,但是除了安全的外表之外,还有很多合理的理由。
在将任何东西发送给任何人之前,你要做的第一件事就是就适当的加密级别以及原始数据和最终分析的访问权限达成一致。理想情况下,只在安全的系统上工作,不太可能被遗忘在出租车上或被爱管闲事的室友访问。如果需要的话,你必须为加密标准而战…不要妥协。很可能你自己的个人安全标准会比 It 政策更懂技术,更安全,所以坚持使用它们!
如果你不允许安装一些 GPG 客户端(因为这将违反安全政策),加密必须使用加密文件格式,如密码保护的 Excel 或加密的 zip。你说什么?加密的 zip 文件被电子邮件服务器拦截,客户端没有 SFTP 或文件共享服务器?强悍。永远不要为了“仅此一次”而走捷径,从而损害您的数据安全标准。在一天结束的时候,你将被留下来提着水桶,而那个对你大喊分析的人将在你寻找另一份工作的时候快乐地离开。
9。分析结果易于分享和理解。
让我们面对现实吧——你的大多数听众对于如何评价任何基本的详细分析没有丝毫的线索。他们会支吾搪塞,假装理解,因为无知的表现会被视为软弱。他们会要求你用更多的特性来增加你的分析,声称分析需要“在使用之前被数学证明”,并且使用各种各样的干扰和托词来隐藏他们的困惑。有些人只是寻找某些 p 值,有些人依靠“直觉”,但你会看到你的详细分析被怀疑、质疑和忽视。或者换句话说……任何足够先进的分析都将与魔术无法区分。因此,你的主要工作是将那些不太倾向于数字的人的结果翻译成他们容易理解的语言,不管你是否回答了已经提出的问题。
10。你要找的答案首先就在那里。
有点像寻找复活节彩蛋,有一种隐含的理解,即任何数据科学项目的预期目标实际上都是可以实现的,只要花一点时间在一些工具的帮助下进行搜索。然而,与同名的复活节兔子不同,没有人会故意在你的数据中加入有助于证明某些事情的真知灼见。想知道为什么这个月你的网站点击率下降了吗?想搞清楚哪些客户更喜欢产品 X 而不是产品 Y?这些问题预先装载了一个预期的结果,通常不利于适当的科学调查。
实验的第三个幽灵:多重比较
利齐·艾德利,汤姆·奥利弗和科林·麦克法兰
👻这篇文章是探索实验从业者中导致追逐统计幽灵的常见误解系列文章的一部分。
当进行一项实验时,我们通常希望尽可能多的学习,所以看许多不同的东西来获得最大的洞察力是很有诱惑力的。不幸的是,这是有代价的——你做的比较越多,发现假阳性的几率就越高。
在 Skyscanner,我们使用实验记分卡,该记分卡显示每个实验的一组默认业务水平指标的结果。我们发现使用记分卡有很多好处,例如:
- 确保不遗漏任何重要影响
- 作为一个组织,认同我们的优化目标,并关注重要的指标
- 大规模交付值得信赖的结果和标准化分析
然而,在没有意识到多重比较问题的情况下使用这种记分卡可能会让我们陷入追逐统计幽灵的危险之中。
我们永远无法完全确定一个结果,因为在任何实验中都有随机和噪音的因素——总有一些机会,一个结果会显得有意义,即使现实是不存在真正的影响。这种情况发生的频率称为“假阳性率”。
在 Skyscanner,我们在实验中使用相当符合行业标准的 95%置信水平,因此我们预计单一指标的误报率为 5%。然而,一旦您查看一个以上的指标,您就增加了看到假阳性的机会。简单来说,你做的每一次比较都有可能出现假阳性,所以更多的比较意味着更多的假阳性。
左边的图表显示,对于没有实际影响的实验(如 AA 测试),尽管如此,看起来对至少一个指标有显著影响的概率,作为记分卡中有多少指标的函数。在 Skyscanner,我们的实验记分卡中有 14 个指标,因此我们在任何一个实验中出现一个或多个假阳性的可能性略高于 50%。
如果您的实验正在测试多种不同的处理方法(也称为多变量或 ABn 测试),或者如果您查看细分为多个部分的单个指标的结果,您也会受到这种夸大的假阳性率的影响。例如,如果你要观察一项实验如何改变 20 个不同国家中每一个国家的一个指标,你会发现至少有一个国家在 60%的时间里受到显著影响,即使你的实验没有任何实际效果。如果你没有意识到可能性的变化,并且没有对幽灵进行补偿,这可能是相当危险的。
多重比较校正
幸运的是,有许多统计方法可以用来缓解多重测试问题,避免追逐统计幽灵。这些通常涉及到调整显著性阈值,以便将一个效应归类为显著性所需的 p 值取决于您的测试正在进行的比较次数(还记得本系列的第一个幽灵讨论了如何解释 p 值)。
最常用的方法之一是 Bonferroni 校正,这是一种简单的显著性阈值,α,乘以被测试的假设数 n,即
α → α / n。
例如,如果您希望在运行 AB 测试并查看 5 个不同的指标时保持 95%的置信水平,您可以将 p 值阈值从α=0.05 调整到
α → α / 5 = 0.05/5 = 0.01 .
当用 5 种不同的处理方法运行多元测试并且只查看一个指标时,您可以使用类似的方法,因为两种情况都涉及 5 个比较。
Bonferroni 校正控制家族误差率(FWER ),即一个或多个指标在实际上没有真正影响时显得重要的概率。在上面查看一个 AB 测试的 5 个指标的例子中,5%的 FWER 意味着,在没有实际变化的情况下,您将看到 5 个指标中的一个(或多个)在最多 5%的时间里是重要的。如果没有 Bonferroni 校正,这个数字将接近 25%。
Bonferroni 通常被认为是一种保守的修正,因为它确保 FWER 最多为α,但是,如果测试统计数据之间存在任何相关性或依赖性,那么应用 Bonferroni 可能会过于严格,导致实际 FWER 远小于预期值。虽然低于预期的错误率听起来像是一件好事,但缺点是这意味着实验的功效被降低了超过必要的程度,并且没有达到假阳性和假 T4 阴性之间的预期平衡。
我们如何在 Skyscanner 解决这个问题
应用更正
在 Skyscanner,我们记分卡中的许多指标应该是高度相关的。例如,预订的旅行者的比例将与离开航空公司的旅行者的比例相关联,这本身将与进行搜索的旅行者的比例相关联。为此,我们主要使用一种不同的、不太严格的校正方法,称为 Benjamini-Hochberg 法,而不是上面讨论的 Bonferroni 校正法。
Benjamini-Hochberg 与 Bonferroni 的不同之处在于,它限制了错误发现率(FDR ),而不是 FWER。如果我们把每一个被认为具有统计学意义的测量看作一个发现,那么 FDR 就是这些发现中错误的那一部分(只是噪声,而不是真正的影响)。FWER 和 FDR 之间的细微差别在于,FWER 控制有一个或多个错误发现的实验的比例,而 FDR 控制所有错误发现的比例。
Benjamini-Hochberg 在 Skyscanner 为我们工作,作为一种限制大量假阳性的方法,而不会像 Bonferroni 校正那样遭受巨大的功率降低。然而,“最佳”解决方案是相当主观的,并且将取决于假阳性(不够严格的校正)和假阴性(由于功率损失)的相对成本。
因此,如果您像我们一样,希望测量对许多不同指标的影响,那么 p 值校正可能是一种有用的方法,可以避免虚高的假阳性率,同时仍然可以从各种指标中学习。
预先注册感兴趣的主要指标
我们认为,一项实验应该基于一个明确且可测试的假设,应该主要针对一个特定的指标,并且应该通过在开始实验之前做出决定来“预先注册”。
因此,我们要求实验者预先说明他们感兴趣的主要度量——这个度量将被区别对待,其重要性不取决于上面提到的 Benjamini-Hochberg 校正。但是,如果实验是多变量(ABn)测试,那么我们会使用校正来调整感兴趣指标的 p 值阈值。在这种情况下,Bonferroni 比 Benjamini Hochberg 具有优势,因为它允许简单的功率分析。
知道非主要指标是否受到影响仍然很重要,但我们认为这更多的是对非预期后果的一种支持,或者是对启发未来迭代和新假设的学习的一种支持。如果您确实看到意外指标的影响,那么…
用更新的假设重新运行实验
我们鼓励实验者根据他们预先注册的感兴趣的指标来总结和评估实验——如果实验显示某个指标发生了重大变化,而该指标并未构成原始假设的一部分,那么最安全的做法是调用 ghost 并重新运行,这一次将意外的变化作为目标指标。如果您发现某个特定的用户子集或部分用户受到显著影响,这一点同样适用。在你确信这些影响确实存在之前,不要试图去推理你会如何造成这些影响。
👻更:追统计鬼。
Take a look at our Product and Engineering jobs.
自然语言处理的三个层次
作者:迦娜·利彭科娃
在过去的几年里,技术世界已经见证了自然语言处理(NLP)应用在各个领域的激增,包括广告技术、出版、客户服务和市场情报。根据 Gartner 的炒作周期,NLP 在 2018 年已经达到了膨胀预期的顶峰。许多企业将其视为从 80%的非结构化形式的业务相关数据中创造价值的“首选”解决方案。简而言之,NLP 被广泛采用,并取得了巨大的成功。
在这篇文章中,我分享了一些将 NLP 顺利集成到您的技术堆栈中的实用建议。这个建议总结了我在 NLP 的旅程中积累的经验——通过学术界、许多行业项目和我自己的公司,该公司为国际市场情报开发 NLP 驱动的应用程序。这篇文章没有提供技术细节,但重点放在组织因素,包括招聘,沟通和期望管理。
在开始学习 NLP 之前,您应该思考两个问题:
1.独特的 NLP 组件对我们公司的核心业务是否至关重要?
举例:假设你是一家托管公司。您希望通过使用 NLP 分析收到的客户请求来优化您的客户服务。最有可能的是,这种增强不会成为你的关键路径活动的一部分。相比之下,定向广告业务应该努力确保自己不会落后于 NLP——这可能会大大削弱其竞争地位。
2.我们内部有能力开发与知识产权相关的自然语言处理技术吗?
例如:你雇佣了一名计算语言学博士,并成功地将他与设计新解决方案的自由结合起来。她可能会被激励去丰富你公司的知识产权组合。然而,如果你雇佣的是中级数据科学家,他们没有明确的语言重点,需要在数据科学和工程任务之间分配时间,就不要指望有独特的知识产权贡献。最有可能的是,由于缺乏时间和对底层细节的掌握,他们将依靠现成的算法。
提示 1 :如果你的答案是“是”和“不是”,你就有麻烦了!你最好确定与你的核心竞争力相匹配的技术优势。
提示 2:如果你的答案是“是”和“是”——停止阅读,开始工作。您的 NLP 路线图应该已经由您的专家定义,以实现特定于业务的目标。
如果你还在那里,不要担心——剩下的很快就会到位。您可以在三个级别“进行 NLP”:
- 黑带水平,深入数学和语言的微妙之处
- 培训&调优级别,主要是插入现有的 NLP/ML 库
- 黑盒级,靠“买”第三方 NLP
黑带级别
来细说一下:第一个,基础层面就是我们的“黑带”。这个层次接近于计算语言学,NLP 的学术对应物。这里的人们经常分成两个阵营——数学家和语言学家。这两个阵营可能会友好相处,但心态和做事方式仍会不同。
数学界的人并不害怕矩阵计算之类的东西,他们会致力于最新的优化和评估方法的细节。冒着遗漏语言细节的风险,他们通常会带头提高算法的召回率。语言学家要么是在高度复杂的生成语法或基于限制的语法形式主义中长大的,要么是在认知语法等替代框架中长大的。这些给了想象更多的空间,但也允许形式上的模糊。他们将倾向于编写句法和语义规则,并编译词典,通常需要自己的沙箱,并负责精确的部分。取决于你如何处理两个阵营之间的沟通和整合,他们的合作要么阻碍生产力,要么开启令人兴奋的机会。
总的来说,如果你能在学术完美主义中注入一剂实用主义,你就能创造出独特的竞争优势。如果你能在你的团队中有效地结合数学家和语言学家——那就更好了!但是要意识到,你必须以诚实的眼光去推销它们——然后,坚持到底。对你的团队来说,做艰苦的基础工作而看不到它对业务的影响将会是令人沮丧和没有动力的经历。
培训和调整级别
第二个层次涉及使用现有算法训练和调整模型。在实践中,大部分时间将用于数据准备、训练数据创建和特征工程。核心任务——培训和调优——不需要太多努力。在这一级别,您的员工将是推动 nltk、scikit-learn、spacy 和 tensorflow 等开源包边界的数据科学家,用于 NLP 和/或机器学习。他们将发明新的、并不总是在学术上合理的方法来扩展训练数据、工程特性,并将他们的直觉应用于表面调整。目标是训练充分理解的算法,如 NER、分类和情感分析,为您公司的特定数据定制。
这里好的一面是有很多优秀的开源包。它们中的大多数仍然会给你留下足够的灵活性来优化它们以适合你的特定用例。风险在人力资源一方——许多道路通向数据科学。数据科学家通常是自学的,并且具有相当跨学科的背景。因此,他们并不总是具有一级科学家天生的学术严谨性。随着最后期限或预算的收紧,您的团队可能会在培训和评估方法上放松,从而积累了大量的技术债务。
黑盒水平
第三层是一个“黑盒”,你可以在那里购买 NLP。您的开发人员将主要使用付费的 API,这些 API 提供现成的标准算法输出,如 Rosette、Semantria 和 Bitext(参见本帖对现有 API 的广泛回顾)。理想情况下,您的数据科学家将与业务分析师或主题专家一起工作。例如,如果你在做竞争情报,你的商业分析师将会设计一个包含你的竞争对手,他们的技术和产品的模型。
在黑盒级别,确保您只从黑带购买 NLP!有了这个保证,外包 NLP 的一个明显的优势就是你避免了稀释你的技术焦点的风险。风险在于缺乏灵活性——随着时间的推移,您的需求会越来越具体。您的集成策略越好,您的 API 停止满足您的需求的风险就越高。投资于手工质量保证以确保 API 输出交付高质量也是明智的。
最后的想法
那么,你从哪里开始呢?当然,这取决于——一些实用的建议:
- 和你的技术人员谈谈你的商业目标。让他们研究和制作原型,从第 2 级或第 3 级开始。
- 确保你的团队不会过早地陷入 1 级的低级细节。这可能会导致时间和预算上的重大失误,因为需要大量的知识和培训。
- 不要犹豫——你总是可以考虑在 2 和 3 之间的过渡(顺便说一下,这在任何方向都有效)。这种转换可以有效地与通常不可避免的系统重构相结合。
- 如果你设法用 NLP 建立一个令人信服的商业案例——欢迎加入俱乐部,你可以用它来吸引一流的专家,并通过在第 1 级工作来增加你的独特性!
关于作者:迦娜·利彭科娃拥有计算语言学博士学位,是国际市场情报技术解决方案提供商【Anacode】的首席执行官。点击 了解更多我们的解决方案 。
原载于 2018 年 11 月 15 日anacode . de。
单词嵌入的一般概念
Photo by Dmitry Ratushny on Unsplash
Word2Vec、GloVe 和 FastText 的主要概念概述
单词嵌入——或分布式表示——的概念是近年来自然语言处理( NLP )中最引人注目的发展。与所有快节奏的领域一样,人们很容易迷失方向,感觉被最新的突破和发展抛在后面。
最好的解药是意识到更普遍的趋势和单词嵌入概念背后的主要思想。为了做到这一点,我在这篇文章中为你提供了一个简要的概述,并在底部提供了其他材料的链接。这篇文章关注三种“经典”风格的单词嵌入: Word2Vec 、 GloVe 和 FastText 。他们举例说明了看待单词嵌入的三种不同方式。
这一切是如何开始的— Word2Vec (2013)
单词嵌入的雪崩始于 2013 年,当时托马斯·米科洛夫周围的谷歌研究人员发表了 这篇论文 。他们提出了一种方法,即众所周知的 Word2Vec。它使用小型神经网络来计算基于单词上下文的单词嵌入。有两种方法可以实现这种方法。
首先是连续袋字 或 CBOW 。在这种方法中,网络试图根据上下文预测哪个单词最有可能出现。同样可能出现的单词可以被解释为具有共享维度。如果我们可以将一个句子中的"*猫"*替换为"狗",这种方法预测两者的概率相似。所以我们推断这几个词的意思至少在一个层面上是相似的。
第二种方法是跳格。这个想法非常相似,但是网络的工作方式正好相反。也就是说,它使用目标单词来预测其上下文。更多细节请看本文末尾的链接。
当 2013 年 Word2Vec 问世时,结果是前所未有的,但也很难从理论角度解释。它工作了,但是有一些困惑为什么。
斯坦福大学的竞争方法——GloVe(2014 年)
一年后,斯坦福的研究人员发布了手套。你可以在这里找到原文 。为了理解这个变体试图做什么,我们需要简单地讨论一下 Word2Vec 的一个不太明显的方面。
Word2Vec 通过将目标单词与其上下文相关联来学习嵌入。但是,它忽略了某些上下文单词是否比其他单词出现得更频繁。对于 Word2Vec ,一个词的频繁同现创造了更多的训练实例,但是它没有携带额外的信息。
相比之下, GloVe 强调共现的频率是至关重要的信息,不应作为额外的训练示例而被“浪费”。相反,GloVe 构建单词嵌入的方式是,单词向量的组合与这些单词在语料库中共现的概率直接相关。
同样,查看底部的链接了解更多详情。对于这篇文章来说,理解 GloVe 不是 Word2Vec 意义上的训练有素的模型就足够了。相反,它的嵌入可以被解释为反映共现的低维度训练语料库的总结。
轮到脸书了——快速文本(2016)
2016 年,人工神经网络已经获得了相当大的吸引力,Word2Vec 已经证明了它在 NLP 的许多领域中的实用性。然而,还有一个问题没有解决:对未知单词的泛化。脸书于 2016 年发布的开发产品 FastText 承诺要克服这一障碍。
这个想法非常类似于 Word2Vec,但是有一个主要的变化。与其使用单词来构建单词嵌入, FastText 更深入一层。这个更深的层次由部分单词和字符组成。从某种意义上说,一个词成为它的上下文。因此,基石是文字,而不是语言。
FastText 输出的单词嵌入看起来与 Word2Vec 提供的非常相似。但是,它们不是直接计算的。相反,它们是低层嵌入的组合。
这种方法有两个主要优点。首先,泛化是可能的只要新单词与已知单词具有相同的特征。第二,需要较少的训练数据,因为可以从每段文本中提取更多的信息。这就是为什么预训练的快速文本模型比其他任何嵌入算法都适用于更多的语言。
Photo by Eugenio Mazzone on Unsplash
主要的收获
我选择这三种算法是因为它们代表了关于如何计算单词嵌入的三种一般思想:
- Word2Vec 将文本作为神经网络的训练数据。最终的嵌入捕获单词是否出现在相似的上下文中。
- GloVe 关注整个语料库中的同现词。它的嵌入与两个词一起出现的概率有关。
- FastText 对 Word2Vec 进行了改进,也考虑了单词部分。这种技巧能够在较小的数据集上训练嵌入,并推广到未知单词。
如果对你有帮助或者你想补充什么,请在评论中或者在推特上告诉我。我也很乐意在 LinkedIn 上联系。感谢阅读!
附加材料
Word2Vec
如果你想深入了解,这里有两篇马尼什·查布拉尼的精彩博文:
[## Word2Vec(跳格模型):第 1 部分——直觉。
这里的大部分内容来自克里斯的博客。我对它进行了压缩,并做了一些小的改动。
towardsdatascience.com](/word2vec-skip-gram-model-part-1-intuition-78614e4d6e0b)
如果你正在寻找 Word2Vec 如何进入机器学习的其他领域的例子,看看 Ramzi Karam 的这篇博文:
我们如何使用神经网络将数十亿条数据流转化为更好的推荐。
towardsdatascience.com](/using-word2vec-for-music-recommendations-bb9649ac2484)
手套
Brendan Whitaker 写了一个关于手套的五集系列,我强烈推荐。这是第一部分,但很容易找到其他四个部分:
从共现矩阵无监督学习单词嵌入的介绍。
towardsdatascience.com](/emnlp-what-is-glove-part-i-3b6ce6a7f970)
快速文本
Nishan Subedi 在此更详细地描述了 FastText:
在这里我们将看到一个性能最好的嵌入库是如何实现的。
towardsdatascience.com](/fasttext-under-the-hood-11efc57b2b3)
履行
There are different ways to implement word embeddings. 黃功詳 Steeve Huang describes ways to do this with the Gensim package:
[## 使用 Gensim 嵌入 Word2Vec 和 FastText 单词
在自然语言处理(NLP)中,我们经常将单词映射成包含数值的向量,以便机器能够识别
towardsdatascience.com](/word-embedding-with-word2vec-and-fasttext-a209c1d3e12c)
另一种方法是在 tensorflow 中重建结构。aneesh joshi 在这里描述了细节:
[## 通过在 tensorflow 中实现来学习 Word2Vec
通过 tensorflow 中的编码理解 word2vec
towardsdatascience.com](/learn-word2vec-by-implementing-it-in-tensorflow-45641adaf2ac)
三种类型的 A/B 测试
如果你从事数据方面的工作,你可能会知道数据科学这个术语很有争议。这意味着什么,谁可以自称为数据科学家,在无数的文章和博客帖子中被讨论、争论和深思。这篇文章不是那次对话的一部分——但它是关于数据世界中一个类似的模糊且被误解的概念:A/B 测试。
在技术领域,术语 A/B 测试用于指任何数量的实验,其中随机分配用于梳理治疗(通常是网站的一些变化)和结果(通常是企业有兴趣改变的指标)之间的因果关系。
但是我在这篇文章中试图说明的情况是,网络企业实际上(至少)有三种不同类型的实验,将它们都归入一个保护伞下会导致设计不良的实验和被误解的结果。
A/B 测试
最简单的实验通常集中在 UI 变化上。一个产品团队会测试两个或两个以上的网页变体或产品特性,它们除了一个组件(比如一篇文章的标题或一个按钮的颜色)之外都是相同的。著名的谷歌测试了一个按钮的 41 种不同蓝色,看哪种按钮的点击率最高。虽然 A/B 指的是正在测试的两种变体,但当然可以有许多变体,就像谷歌的实验一样。
在这种类型的测试中,通常只有一个,或者两个产品团队关心的度量标准,无论哪个变体对那个度量标准有最好的价值,都会被挑选出来。换句话说,假设总是:这个 UI 更改将增加/减少度量 x。在对此进行评估之后,获胜的更改将被永久化,团队将继续进行下一个测试。
My Take
由这些测试中的一个确定的任何给定变化的益处将是微小的。想想百分之几。要让这些对你的业务产生实质性影响,你需要具备两个条件:
- 快速运行和分析它们的基础架构—最好是自动运行
- 足够大的用户群,即使在很短的时间内,您的测试也能得到适当的支持
结果是,除了最大的公司:谷歌、脸书、网飞等,我认为这种测试在任何地方都不会非常有效。他们既有成熟的基础设施来快速运行这些测试,又有庞大的用户群来识别具有统计学意义的微小治疗效果。如果你在这些公司中的一家,这种类型的快速测试是非常有价值的,因为小的变化可以很快累积起来,但否则你的努力最好花在其他地方。
如果你处于运行这些类型的测试的位置,你真的要注意细节。用于多重比较的适当的功率水平和 p 值校正对于确保这些测试的结果能够带来实质性的整体改善至关重要。
产品推出
第二种常见的情况是,当推出一个公司已经承诺推出的完整产品时,随机实验可能会有所帮助。想想类似于脸书的新闻订阅发布或者 Linkedin 的网站重新设计。当这么大的东西已经建成的时候,无论度量标准是什么,发布是非常非常不可能被永久回滚的。
相反,这种情况下的随机实验是为了可见性,并提供可能有助于未来决策的信息。
这里的可见性通常意味着 bug——您是否以某种方式破坏了此次发布的基本功能?另一方面,未来的决定可以通过随机展示来了解,因为你将知道你的发布的真实影响。如果你的重新设计或新特性产生了积极的影响,类似的努力也许值得一试。如果你的结果是中性或负面的,这将有助于评估是否真的值得继续从事这样的项目。
我的取
像这样的阶段性展示不是假设驱动的。你不是在试图为某个特定的想法寻找证据——你只是在监视一个新产品,寻找鼓励或危险信号。
这些类型的实验不应该是分析性的,我也不会像 A/B 测试那样为统计细节伤脑筋。担心统计功效或 p 值修正并不特别相关,可能时间可以更好地用于其他地方——你实际上只是在寻找一次发射是否为净正的方向性证据。
我想补充一点,这些推出的结果受到两个巨大的不确定性来源的影响,有时会使它们难以解释。
一个是,当您构建一个全新的特性并通过这种类型的测试进行推广时,在处理组中收集数据的代码通常也是新的。然而,来自对照组的数据通常已经存在一段时间了。这意味着这两个群体之间的巨大差异有时不是由用户行为驱动的,而是由数据收集方式的差异驱动的。因此,在分析数据和解释结果时都需要小心。我对两位数的百分比变化表示怀疑,并调查数据记录逻辑作为最可能的原因。
第二点不确定性是,即使你对你的数据完全有信心,像这样的大变化与你的产品的预发布版本相比有太多不同,以至于确定为什么指标以某种方式改变是具有挑战性的。减轻这种情况的最好方法是提前解决问题,收集大量的用户行为数据,这样你就不会盲目地试图解释大幅下降。
科学实验
最后,我们来到了我认为的真正的科学实验。这些是社会科学和经济学中最接近随机对照试验的模拟:你有一个关于世界(或在这种情况下你的产品)运行方式的不明显的假设,你设计一个实验,用数据从经验上检验它。
一些示例假设:
- 订阅量随着追加销售消息的数量呈对数增长
- 鼓励用户在你的网站上添加好友会增加每日活跃用户
- 推荐类似的产品增加了收入,而不是大麻化
My Take
在我看来,这些类型的问题是最重要的,因为它们不只是为一次性决策提供信息(我应该将这个按钮设置为蓝色还是红色?),而是提供一般性的知识,告诉你如何思考和构建你的产品。这些是成功产品赖以建立的洞察力类型。
或许这并不奇怪,我认为数据科学家有独一无二的条件来回答这类问题。虽然 A/B 测试可以自动化,并且部署可以由没有太多技术知识的人监控,但科学实验需要业务、产品和统计技能的结合,而这些通常只有数据科学家才具备。
对于这样的实验,假设的陈述和实验设计是重点。思考诸如结果的可归纳性、异质治疗效果、结果指标和控制变量的选择等问题是至关重要的。考虑这些因素并进行适当的设计会对实验结果的质量和有用性产生严重的影响。
虽然仪表板和图表可能是沟通前两种测试的最佳方式,但科学发现需要被记录下来。数字本身并不能传达结果——当然,你需要数字,还需要背景、实施细节,或许最重要的是,需要一段叙述,让你的发现符合对你的产品、用户和业务的更广泛理解。尽管这些发现是可信和有用的,但它们永远不会是最终的:随着你的研究范围的扩大,你的整个组织应该继续学习和更新他们的想法。
三次测试,一个目标
我已经概述了我所认为的软件公司实验的主要类别:A/B 测试、首次展示和科学实验。我主张将这些技术中的每一种都标记和设想为不同的技术。
我认为这样做将改善我们对每种类型测试的流程和期望,并最终为我们的组织带来更好的决策——这毕竟是数据科学的意义所在。
我是一名数据科学家和研究人员,在科技行业工作,并在媒体上撰写相关文章。也可以在Twitter和Linkedin上关注我。
在治理中使用人工智能的时候到了
在过去的几天里,一些毁灭性的事件让印度人民感到震惊和动摇。8 月 19 日,一辆名为 Utkal Express 的客运列车的 13 节车厢出轨,造成 24 人死亡,近 200 人受伤。9 月 29 日,孟买埃尔芬斯通路附近的人行天桥上发生踩踏事件,23 人死亡。虽然我谈论印度是因为它离我的家乡更近,但全球各地都有很多例子,让我们措手不及的事件,让我们在事后感到震惊。就这样,人们过着平凡的生活,死亡或痛苦,生命被残酷地缩短。
一旦我克服了面对这种看似毫无意义的悲剧时的悲痛和无助感,我开始思考这种事件是否一定需要总是让我们措手不及?我们能不能不主动预测它们,从而能够预防它们?我脑海中的答案是一个压倒性的响亮的是的!
几乎可笑的是,一方面,世界正在讨论和辩论人工智能驱动的机器接管人类的危险,但我们却无法利用机器的这种力量,真正改变公共生活。不要误会我的意思——在科学的前沿有许多极其奇妙的工作正在发生,这些工作将机器学习与其他学科结合在一起,以改变我们理解疾病、人类遗传学甚至太空探索等事物的方式。然而,我指的不是 R&D,而是此时此地应用于治理的人工智能。
作为一名从业者,我为世界各地的公司提供关于如何利用人工智能来更好地管理他们的运营、更有效地检测欺诈、更有效地预测机会领域以及主动识别需要干预的方面的建议,我对治理实体为什么不以类似的方式处理他们的“治理业务”感到非常困惑——试图更好、更快、更便宜、更准确地做事。这可能会在很多领域改变游戏规则。让我来谈谈我最关心的几个问题:
1。公共基础设施的预测性维护:一个非常简单的想法——主动监控物理设备、机器和基础设施的运行状况,并将其与使用指标、图像等其他数据点相结合。,以预测何时需要进行何种维护。这不是一个新概念,拥有大量资产的私人公司已经这样做了几十年。
就拿我前面说的出轨来说吧。印度铁路运营规模庞大,拥有约 75,000 英里的轨道网络、250,000 辆货车、70,000 多辆客车、11,000 多台机车、遍布全国的 7,200 个车站。这是一个极其庞大的资产基础,几乎不可能通过传统的预防方法来维持,越来越多的可避免事件一再证明了这一点。但是,如果可以存储和处理关于这些资产的所有信息,以便从维护的角度关注需要关注的领域,并确定需要更换的轨道和设备,情况会怎样?数据是存在的——这不是火箭科学——它所需要的只是当前基础设施的清单、某些东西何时被采购或最后一次维修的时间指标,以及它的使用情况(例如,每公里跑道的吨数)。即使驻留在不同的地方,这些数据中的大部分都是随时可用的,如果不在,可以分阶段构建。关键是,开始可以是立即的。
这同样适用于大多数公共基础设施——道路、桥梁、供水系统、下水道、政府。医院,政府。办学校等。
2。灾难应对:听到自然灾害后出现的人们无法追踪、被困、无法走出噩梦的故事令人心碎。想象一下那个人,在灾难中幸存下来,然后慢慢消失,等待有人来救他们。
现代技术,尤其是与人工智能相结合,可以为灾害管理做出重大贡献。在无人机、传感器和地理空间测绘等可以收集宝贵的实时数据的技术的进一步帮助下,机器学习算法可以帮助优化有限的救援资源的部署。灾后侦察、受灾地区的识别和优先排序、个人的实时跟踪等。都有可能。
有许多大大小小的公司正在开发这一领域的尖端解决方案(例如,看看 AIDR 和 1Concern)。与预测性维护一样,可以立即开始。世界上许多政府和组织已经开始朝着这个方向前进。
3。农业:精准农业被誉为绿色革命后农业领域的下一个重要里程碑。随着世界人口的不断增长和工业化导致的耕地面积的不断减少,增加耕地每英亩产量的迫切需要在今天比以往任何时候都更加重要。虽然西方国家已经朝着这个方向努力了一段时间,但发展中国家仍有许多工作要做。
简而言之——精准农业涉及使用所有可用的数据,如天气、土壤条件、地下水、历史作物等。,并使用它来提供有关种植什么、何时种植、何时施肥、灌溉和收获以及何时翻耕作物的运营预测。目标是最大限度地提高农场生产率和产量。
尽管本质上与精准农业无关,但人工智能的另一个对农业有重大影响的进步是机器人和自动驾驶汽车的出现。例如,在印度,Mahindra & Mahindra 目前正致力于制造自动驾驶拖拉机,这可能会对农业生产产生巨大影响。
4。犯罪预防:在这方面可以做的事情绝对多得令人难以置信。如果今天的公司可以预测个人行为的几乎所有方面,包括他们可能会在什么方面花费,他们可能会去哪里旅行,他们可能会在什么时候离开服务提供商,他们可能会与谁联系等等。—还可以挖掘其他行为指标,尤其是那些与潜在的不良行为相关的指标,这难道不是很难测量的吗?这是一个滑坡,因为有许多关于个人隐私权的问题,其中一些是绝对公平的。
然而,好消息是,即使我们解开了围绕数据隐私和相关领域的合法性,很多事情都是可能的。犯罪模式检测有助于在很大程度上准确识别易受攻击的区域。2010 年在洛杉矶进行的一项预测何时何地可能发生入室盗窃的试点项目显示了相当大的影响,盗窃案减少了 33%。同样,英国达勒姆警察局最近开始试验一种人工智能系统,通过给嫌疑人分配风险分数,帮助他们评估对嫌疑人采取的行动。
5。交通管制:这几乎是显而易见的。交通流量方面有大量可用数据,这些数据可用于更高效的交通管理系统,并创建面向未来的基础设施。例如,英国的米尔顿·凯恩斯(Milton Keynes)最近宣布开发并采用“智能交通灯”——这种信号不是基于规则的,而是根据通过传感器和摄像头监控的实际交通流量进行动态调整。
我坚信,政府和公共部门实体积极拥抱人工智能技术新前沿的时候到了。人工智能在治理中的应用案例比比皆是。初等教育管理,通过教育系统对每个儿童进行临时监测,主动确定何时需要干预,以使他们在教育生态系统中保持良好的状态。预防性保健。金融欺诈防范,如逃税、洗钱等。社会福利资金的最佳使用和监督。
除了在操作各种公共服务方面的好处之外,人工智能还可以在政策制定本身中发挥关键作用。政府需要投资建立一个围绕在治理中利用数据科学的目标明确的短期、中期和长期目标的计划。还需要明确定义的指标来衡量这些目标的进展,并在需要时进行过程修正。当然,这需要资金,但正如私营部门所证明的那样,对数据基础设施和科学的投资可以带来非常丰厚的收益,尤其是当目标是改善公众生活时。
极限
水是一种非常奇怪的物质。这是少数几种冷冻时密度会降低的液体之一。这就是冰山漂浮而不是下沉的原因。它们比水轻得多,甚至它们的一小部分都露出水面。
但是冰山 90%的体积隐藏在下面。
不过,在比特币这样的公共区块链,你无处可藏。泰瑟的秘密开始浮出水面。正如系绳报告指出的,48.8%的比特币价格上涨发生在 93 个系绳授权的 2 小时窗口内。它声称,如果没有代表 Tether 的任何干预,比特币的价格只会上涨 6.5%。
这有点难以消化,所以这里有一个稍微简单一点的图表:
这里有一个与 74 个随机选择的时间的比较:
有几件事要弄清楚。在此期间,Tether 获得了 25 亿多美元。摩根大通估计,到 2017 年 10 月,整个加密市场的资金流入只有 60 亿美元。到目前为止,这个数字可能在 80-120 亿美元以上。不管是什么,在这些赠款的时间框架内,Tether 的 25 亿美元以上的流入是相当可观的。
反对者很快指出,显然,随着这么多资金在短期内涌入市场,波动性将大幅上升。他们还指出,人们可以在股市中选择 93 个理想点,并得出类似的结论。俗话说,寻找你就会找到,如此等等…
这个故事的霍德勒版本是 BitFinex 或 Tether 没有任何问题。当比特币价格下跌时,大型机构投资者只是下单 1 亿美元。
首先,事情不是这样的。我们正在处理一个公共区块链。跟踪交易…
但不管怎样,即使这就是全部。BitFinex 知道何时授予系链令牌。考虑到由此产生的波动性,这是套利的绝佳机会。
BitFinex 的有趣之处在于,首席财务官吉安卡洛·德瓦西尼(Giancarlo Devasini)将该公司创办为一个套利庞氏骗局:
嗨,伙计们,
我主要是在评估利息。为了我的新生意,将来我可能需要大量的硬币。现在,考虑到比特币世界最近的历史和这个论坛上持续的反商业钓鱼和攻击,我甚至不会考虑提供一个持续的存款计划,你们都知道为什么。然而,我做了一个民意调查,如果有足够的兴趣继续存款计划,我可能会考虑它。
所以我在考虑下面的计划:当我需要更多的硬币来完成一个订单时,我会问所有以前在我这里“注册”的人借我一些 btc。7 天后,我会全部归还,本金+ 2%的利息。对于你被联系,你将不得不在这里或下午张贴说,你可能会借给我比特币,和大约。你愿意借给我多少。
现在你可能会问:
你能做什么来获得这么多利润?
姑且说我做“套利”:我低买高卖。那些理解它的人已经在做了,或者没有时间去做,可能会对我的提议感兴趣。那些不明白的请忘记它,继续前进,我不希望任何人投资于他们不明白的东西。
-吉安卡洛·德瓦西尼(来源)
如果他知道将授予限制代币(他确实这么做了),并且如果他在他的交易所交易(他确实这么做了),这种类型的知识被称为“内幕交易”。具体来说,它叫做小费。这是违法的。
小费到底是什么?好吧,在六个小时的 74 笔系绳授权窗口内,“出现”了 17427 美元的比特币总价值。这相当于比特币总价格涨幅的 88%。而且它只占比特币交易时间的 0.6%。
当与相同范围内随机选择的时间列表比较时,我看到价格增加了 3193 美元。
现在你可能会想,嘿,等一下,3193 美元+17427 美元——这比比特币的峰值价格还高。你是对的。关键是:价格没有粘性。它在窗外下降又上升。
所有人都认为 BitFinex / Tether 试图推高市场。考虑到这一切之前都发生在 Mt. Gox,并且考虑到 Giancarlo Devasini 自己也承认这么做,这是一个很容易做出的假设。或许,这是他的最终目标——可以说是一个旁门左道。但是,短期来看,他对获取你的资金流入感兴趣。
看,在系绳授予后的 6 小时窗口中,波动性是随机选择时间的两倍多。价格高点平均高出近 5 倍。但是,真正奇怪的事情是——在六个小时的窗口内——限制授权实际上对定价产生了净负面影响。
这有几个原因:第一,大部分赠款都是在股价在几个小时内下跌 20%或更多的时候出现的。在每一种情况下,限制拨款都能够阻止抛售,但不会失去一点地盘。第二,巨大的高点之后是大规模的抛售——这意味着,他正在推动市场,出售比特币来赚快钱。
当限制拨款创造了套利的完美机会,当你作为一个自称的套利大师开始进入密码世界,当你在自己的交易所交易,而那个交易所允许非法清洗交易,当你在比特币对话上公开承认做了这一切,真的有什么需要证明的吗?
BitFinex 和 Tether 在 3 月份失去银行能力时撞上了冰山。但是在表面之下还有更多。如果你感兴趣,我写了一部 BitCon 简史——详细描述了许多与加密货币相关的欺诈案件。
我使用的代码和复制说明在 GitHub 上有。
BTC:19 qk 13 cpnwnuzvclghxjqrwzgtawv 7 swwr
前 25 个最酷的数据科学术语
Source: Library of Congress
机器学习。
神经网络。
分层聚类。
有人知道这些术语的真正含义吗?当然,少数书呆子知道。像大概 5 万排名的 Kaggle 成员。
但是这些深奥的术语仅仅触及了世界上的数据科学家们想出的描述、促进并最终混淆他们日常工作的表面。
我们认为有必要对数据科学中一些最好的、但不太为人所知的术语进行分类,并根据它们听起来有多酷进行排序。
1。 超平面
2。 超参数
3。 渐变下降
4。 混乱矩阵
5。 Softmax
6。 蒙特卡洛模拟
7。 多臂土匪
9。 朴素贝叶斯
10。 最大汇集
11。 交叉熵损失
12。 质心
13。 轴突
14。 层次聚类
15。 警帽
16。 树形图
17。 纪元
18。 K 折交叉验证
19。 内核绝招
20。 隐藏图层
21。 整流功能
22。 人工神经元
24。 自举
25。 拉索
想要更多吗?我们不能说所有这些术语听起来都很酷,但是 KDNuggets 已经收集了一个相当确定的 277 个数据科学术语的词汇表,并附有参考资料和偶尔出现的图片。
我们试图在演绎 Twitter feed 中发布一个酷炫术语的运行列表。
关于方法论的一点注记
我们的排名是基于一个非常不科学的过程,包括观点、争论和幻想。然而,可以肯定地说,这些术语中有许多正迅速流行起来。
我们用下面的 gtrendsR 包绘制了谷歌搜索趋势的前五名。
最初发表于【www.deducive.com】*。*
五大最佳聊天机器人和自然语言处理工具,为您的企业构建人工智能
credit: pexels.com
人工智能社区仍然非常年轻,但已经有大量优秀的机器人平台。似乎每天都有新的人工智能功能由人工智能开发者或机器人平台本身推出。
对于许多企业主来说,选择哪个平台最适合他们的业务可能是一件非常困难的事情。
我创建了一个列表,列出了过去几个月我一直在使用的我个人最喜欢的 5 大聊天机器人和自然语言处理(NLP)工具。
每个平台都有其独特的功能,每个平台都有特定的定位,所以本文不对平台本身进行判断。
这只是我个人的观点,哪个平台最适合不同类型的企业(小,中,大)和不同的编码技能(新手,基础知识,高级知识)。
credit: manychat.com
ManyChat
几个月前,ManyChat 似乎将成为 2016 年初推出的十几个机器人平台之间的人工智能竞赛的赢家。许多聊天用户友好的工具加上为用户设计的伟大的用户界面 UX 确实吸引了许多机器人企业家。
ManyChat 对于没有任何编码技能的人来说是一个很好的平台。It 主要市场是没有编码技能或编码技能有限的数字营销专家。
然而,如果你的企业想要灵活的人工智能应用,这不是一条路要走。
优点:用户友好,免费计划,伟大的营销工具
缺点:缺乏定制编码的灵活性,缺乏社区资源
网址: ManyChat
评分:⭐⭐⭐
credit: chatfuel.com
聊天燃料
我第一次对人工智能应用感兴趣是通过观看Andre DemeterUdemy chat fuel class。我记得那时候 [Chatfuel 社区](http://Chatfuel Community)在 2017 年 8 月还没有创建。安德鲁的 Chatfuel 类是当时最有价值的人工智能类,可以用来学习用 Chatfuel 开始编写机器人代码。
Chatfuel 现在是聊天机器人平台的头号领导者,他们理应获得这一荣誉,因为他们工作非常努力,他们有出色的版主回答所有 Chatfuel 社区脸书小组的问题。
然而, Chatfuel 最大的优势是它在用户友好的解决方案和高级定制编码之间的平衡,而高级定制编码是最缺乏的。
如果你正在犹豫是使用 ManyChat 还是 Chatfuel,问自己以下问题:
未来我的商业 Ai 解决方案需要定制吗?如果答案是肯定的,使用聊天燃料,如果答案是否定的,选择多人聊天。
优点:用户友好,自定义编码的灵活性,来自社区的支持,对第三方插件开放,不需要编码经验
缺点:与对话渠道的整合有限,缺乏营销工具
网址:聊天燃料
评分:⭐⭐⭐⭐
可交谈的
credit: conversable.com
凭借百威啤酒、漫威、必胜客和 TGI 星期五等客户,Conversable 肯定是人工智能领域的领跑者。如 Conversable 网站所述:
“Conversable 是企业级软件即服务(SaaS)平台,用于跨多个平台设计、构建和分发人工智能增强的消息和语音体验,包括 Facebook Messenger、Twitter、SMS、Amazon Echo、Google Home 和许多其他平台。‘’
这无疑是对这种对话即服务(CaaS)能够提供的内容的令人印象深刻的描述。然而,如果你是一家中小型公司的老板,这并不适合你,因为这家位于德克萨斯州奥斯汀的初创公司主要为财富 500 强公司发展。
不过,如果你在其中一家公司工作,知道已经有一家初创公司在企业市场取得了巨大成功是件好事。
优点:整合对话渠道,大公司的最佳平台
缺点:对用户不友好,没有适合中小型企业的解决方案
网址:可交谈的
评分:⭐⭐⭐⭐
Dialogflow(谷歌助手)
credit: dialogflow.com
没有人会对我和 Dialogflow 的个人爱情故事感到惊讶。也就是说,我将在我的 opiniondialog flow中向你解释为什么它现在是世界上所有类型企业的头号人工智能和自然语言处理平台。
通过将语音和文本人工智能应用集成到谷歌助手、亚马逊 Alexa 和微软 Cortana,你可以为你的客户构建几乎任何类型的人工智能应用,这些应用将能够与他们的手机或谷歌 Home 或亚马逊 Alexa 物联网(IoT)生态系统进行交互。
Dialogflow 不仅集成了所有这些支持语音识别的出色平台,还集成了 Facebook Messenger、Twitter、Slack、Telegram、Twilio(文本消息)和 Skype 等文本功能。
这意味着 Dialogflow 对您的业务需求非常灵活,因此您的人工智能代理将能够随着您的业务需求以及未来几年将推出的人工智能应用升级而发展。
优点:最先进的 NLP,与对话渠道的整合,免费计划,可输出代理
缺点:可用语言的数量
网址:对话流
评分:⭐⭐⭐⭐⭐
GupShup
老实说,我没有花太多时间探索 GupShup ,但它似乎真的很有前途,它有类似的集成,这意味着它的生态系统将能够随着人工智能和机器学习的升级而发展。
GupShup 还有一个令人印象深刻的 SMS、语音、文本、NLP APIs 库
优点:与对话渠道的集成,免费计划,API 库
缺点:用户不友好,仪表板用户界面/UX 设计
网址: GupShup
评分:⭐⭐⭐⭐
正如我在本文开始时提到的,所有这些人工智能开发平台都有它们的利基、优点和缺点。
我希望这篇文章能帮助您选择合适的平台,满足您的业务需求。如果你仍然不确定你想选择哪一个,你可以随时来和我谈论脸书,我会回答你的问题。
相关文章:发现为什么语音 Ai 在 2018 年称霸
如果你喜欢这篇文章,请给几个掌声,媒体作者“喜欢”的主要来源被称为掌声,你可以给 1,2,3 到 50 个掌声!👏👏👏👏👏在介质上。
Jupyter 笔记本的 5 大神奇命令
Photo by Jez Timms on Unsplash
Jupyter 笔记本是一种基于网络的交互式工具,机器学习和数据科学社区经常使用。它们用于快速测试,作为报告工具,甚至作为在线课程中高度复杂的学习材料。我最喜欢它们的一个特性叫做魔法命令。这些快捷方式极大地扩展了笔记本电脑的功能。这里列出了成为一名更好的数据向导你应该首先学会的五个咒语。我包含了代码片段来说明它们的用法,但是这里也有一个完整的笔记本。
%time、%timeit 和%%time
你想知道你的代码需要运行多长时间吗?不出所料,你需要使用的魔法命令是时间及其变体。我大量使用细胞魔法版( %%time )。这是对代码进行基准测试并向其他人指出他们需要多少时间来重新运行您的结果的一种快速方法。
%matplotlib
如果你以前上过在线课程,你可能会认出这个神奇的命令和 inline 参数的组合。使用此命令可确保 Jupyter 笔记本显示您的绘图。这可能是每一个基于笔记本的报告最关键的魔法命令。
%load_ext 自动重装
这个神奇的命令允许你加载最重要的扩展:自动加载。如果没有它,你每次修改你引用的代码时都必须重新加载内核。代码片段为您提供了一个如何使用它的简单示例:
%系统
如果您想使用 shell,这个神奇的命令会帮您实现。这是非常好的快速检查当前目录和类似的事情。它看起来不怎么样,但却是你腰带里的好工具。
%谁
这个神奇的命令做了一件非常好的事情:向您显示您的环境中的变量列表。您还可以添加一个参数来定义您想要查看的变量类型,例如函数。
当然,还有比我在这篇文章中提到的更多的魔法命令。官方文件见此处。你用什么魔法命令,为什么?请在评论中或在 Twitter 上告诉我。感谢阅读,留点👏🏻如果这对你有帮助,让我们继续学习吧!
最受关注的前 50 名 Instagrammers,可视化
我是 Greg Rafferty,湾区的数据科学家和摄影爱好者。你可以在我的 Tableau 公共档案上查看这个项目的完整 Tableau 仪表盘。还有看看我的 insta gram@ greggrafferty!如有任何问题或反馈,请随时联系我!
2017 年夏天,我为 Tableau 编写了一个 Web 数据连接器,它连接到 Instagram 的公共内容 API,允许我从任何公开发布的帖子中下载数据。很自然的,我先建了一个 Tableau 仪表盘来分析我自己的 Instagram 账号(去关注我@ greggrafferty!)然后转而查看其他几个我认为可能有趣的账户,并从他们的数据中构建了迷人的 Tableau 仪表盘。为 @natgeo 查看这个(这似乎表明 2016 年 8 月期间有猫腻!),或者这个代表 @realdonaldtrump ,或者这个代表标签#eclipse2017,它清楚地显示了 2017 年 8 月 30 日日食穿越美国的路径:
Cool map, huh? Each point represents a single Instagram post with the hashtag #eclipse2017, posted during the 30 days followed the August 30th event.
不幸的是,Instagram 最近大幅降低了这一 API 的呼叫率限制,并将很快完全取消这一 API,因此我将退出我的 Web 数据连接器,并想分享一些我通过查看 Instagram 前 50 名最受关注用户的合并帖子(所有数据截至 2017 年 9 月)发现的见解。
单击下面打开交互式仪表板。
[## Tableau 公共
格雷格·拉弗蒂在 Instagram 上关注最多的前 50 名用户
public.tableau.com](https://public.tableau.com/profile/greg4084#!/vizhome/50MostFollowedInstagramUsers/Whoarethe50MostFollowedInstagrammers)
首先,这些 Instagrammers 是什么人?以下是他们,按关注人数排序:
关于数据集的一些基本统计数据:
- 他们所有追随者的总和高达 3,070,353,066 个用户。然而,这个数字大得令人误解,因为如果我同时关注 @instagram 和@碧昂斯,我会被计算两次。尽管如此,这仍然是一个很大的数字。
- 该数据集中的职位总数为 157,944 个。
- 总赞数 65669459900,总评论数 1345709525!
- 大多数用户没有在他们的照片上标记地理位置,即使有,他们也没有始终如一地这样做;总共标记了 2903 个独特的位置。
那么这些用户各有多少关注者呢?
Number of followers per user
Instagram 自己的账户是目前的领导者,这是意料之中的,因为它总是任何新用户注册的第一个建议关注的对象。
任何在社交网络上呆过一段时间的人都知道,一些用户把所有的时间都放在了网上,而另一些人则不那么频繁。在这前 50 名 Instagrammers 中,谁发的帖子最多?
Total number of posts per user
国家地理一天贴几次,9GAG 也是。最极端的是泰勒·斯威夫特和艾玛·沃森。
让我们看看所有这些账户的年龄,因为帖子的总数并不能说明全部情况。
卡拉·迪瓦伊是最长的,紧随其后的是“维多利亚的秘密”。他们中的一些人确实是 Instagram 的相对新人,因此理所当然地只有几篇帖子;然而泰勒·斯威夫特一直存在,对吗?原来,2017 年 8 月,她删除了她所有的 Instagram 内容,本质上是重新开始,作为公关噱头的一部分,以宣布她的名誉专辑。你可以在底部看到泰勒·斯威夫特,从八月份开始,她重新开始了她的账户。阿黛尔拥有下一个最年轻的帐户,其次是大卫贝克汉姆和艾玛沃森。
这些用户是谁?他们是做什么的?
事实证明,他们大多数是音乐家。运动员排第二。前 50 名中的 5 个,或者总数的 10%(whaaat?!?!),是卡戴珊/詹纳名人家族的成员(金,肯德尔,凯莉,考特尼和 Khloe,对于那些真正关心的人)。
好吧,但是哪些群体最受欢迎呢?
也许不出所料,非常漂亮的年轻模特的照片平均每个粉丝都有很多赞。但是有一个团体得到了更多,而这个团体只有一个用户……NASA!科学万岁!
如果我们看一下个人账户,现在谁得到了每个关注者最多的喜欢呢?
可怜的克瑞丝·布朗在那边。似乎很多人只是讨厌关注他,但从不喜欢他的帖子。艾玛·沃特森,真是个明星。作为第二高的用户,她平均每个关注者的点赞数是第三高的 4 倍!虽然她的叙述有些独特,因为它相对年轻,与其他相比照片很少,所以我们可以考虑把它作为一个离群值扔掉。你会注意到泰勒·斯威夫特是亚军,她获得了数百万的追随者,然后删除了所有旧的(大概是不太喜欢的)照片,这有效地提高了她的平均得分。
不过,还有最后一个问题需要回答。如果你是一个名人,你想获得尽可能多的赞,你应该什么时候发帖?
Average number of likes by day and month
似乎夏季是最好的!本周早些时候往往会做得好一点。绝对不要在初冬的周中宣布重大消息;那时没有人喜欢任何东西。
这些名人是从哪里发帖的?似乎全世界都是如此(很大程度上要感谢国家地理杂志,它的帖子是紫色的点)。
Each individual geo-tagged post
最后,这里有一个看起来很酷的图表。如果你想更深入地了解和探索这一点,我鼓励你查看一下交互式仪表盘。它显示了这些年来每个用户对每篇帖子的点赞增长情况。点代表每个帖子,线代表点赞数的移动平均值。这些颜色代表每个用户。
Number of likes per post, per user, by date posted
我注意到的一个有趣的现象是,当赛琳娜·戈麦斯和贾斯汀比伯在公开分手时,他们都发布了一些关于对方的非常肮脏的事情。但当他们复合时,作为真爱的象征,我敢肯定,他们检查了他们的 Instagram 账户,删除了所有从 2016 年底到 2017 年初的那些讨厌的帖子。多浪漫啊!看看岗位差距。
Purple for Bieber, Orange for Gomez
最后,以下是数据集中一些比较重要的帖子:
最早的帖子来自最受关注的前 50 名用户之一,作者是卡拉·迪瓦伊:
First post, by Cara Delevingne
这是该平台有史以来最受欢迎的帖子(至少截至 2017 年 9 月),作者是碧昂斯:
Most liked post ever, by Beyonce
下面是第二个最受欢迎的帖子,也是碧昂斯发的:
Second Most Liked Post Ever, by Beyonce
有史以来第三受欢迎的帖子,作者是赛琳娜·戈麦斯:
Third most liked post ever, by Selena Gomez
第四个最受欢迎的帖子是克里斯蒂亚诺·罗纳尔多写的:
Fourth most liked post ever, by Cristiano Ronaldo
最受欢迎的帖子被上面的三个语法所控制;下一个上榜的用户是爱莉安娜·格兰德,以下是她最受欢迎的帖子:
Most liked post by Ariana Grande
以下是艾玛·沃森最喜欢的帖子:
Most liked post by Emma Watson
还有莱昂内尔·梅西的:
Most liked post by Leo Messi
以下是 Instagram 上最受欢迎的帖子(多么可爱):
Most liked post by Instagram
有趣的是,国家地理杂志和美国宇航局最受欢迎的帖子都以 2017 年 8 月的日食为主题!以下是 Nat Geo 的:
Most liked post by National Geographic
这是美国宇航局的:
Most liked post by NASA
下面是我自己最喜欢的帖子,也是关于日食的:
from @gregrafferty, not a Top 50 Instagrammer
以下是维多利亚的秘密最受欢迎的帖子:
Most liked post by Victoria’s Secret
我只列出了维多利亚的秘密中最受欢迎的帖子,作为对 Instagrammers 中最受欢迎的 50 个帖子中最不受欢迎的帖子的一种安慰。它在这里,有相对惨淡的 311 个赞,只有 4 条评论(相比之下,碧昂斯最受欢迎的帖子有超过 1100 万个赞和 50 万条评论!):
Least liked post, by Victoria’s Secret
如果你想探索这些图片是从哪个完整的 Tableau 仪表盘中提取的,请点击这个链接!
机器学习的触觉
长期以来,机器学习一直是人们感兴趣的话题。但即使在今天,我们中的许多人仍然认为人工智能是一个好得难以置信的想法。但在现实中,我们实际上已经接近了人工智能真实存在的时代,并且完全有能力以人类不可能想象的方式完成任务。自从计算机诞生以来,它已经走过了漫长的道路。
迄今为止,我们创造的大多数工具都是被动的,也就是说,它们只能做我们让它们做的事情,仅此而已。他们只能以有限的方式执行有限的任务,而没有能力思考其他方式。计算工具有三个阶段。
- 被动:不会思考工作方式的工具。
- 生成:生成工具相当智能。大多数使用机器学习的工具本质上是生成性的,也就是说,它们可以思考解决某个问题的方法。考虑一个生成工具的例子。空客最近使用机器学习在他们的飞机上设计了一种新型的隔墙。新的结构比人类设计的要坚固得多,而且轻了 50%。目前,阿姆斯特丹正在建设一座完全自主的桥梁。点击这里了解更多信息。基本上,他们正在使用生成工具,以便计算机可以自己设计一座桥,并用不锈钢 3D 打印出来。
- 直观:这是人工智能的终极目标。这是计算机利用直觉决定下一步行动的地方。最近,谷歌 DeepMind 创建了一个神经网络,它击败了世界上最好的围棋选手,这被认为是迄今为止最具战略性的游戏。在比赛过程中,在某些时候,甚至连设计 AlphaGo 的工程师都无法理解 AlphaGo 为什么会做出某一步棋!
什么是机器学习?
简而言之,机器学习是这样一种想法,即有一些通用算法可以告诉你关于一组数据的一些有趣的事情,而你不必针对该问题编写任何自定义代码。您不必编写代码,只需向通用算法提供数据,它就会根据数据构建自己的逻辑。
例如,一种算法是分类算法。它可以把数据分成不同的组。用于识别手写数字的相同分类算法也可以用于将电子邮件分类为垃圾邮件和非垃圾邮件,而无需更改一行代码。这是相同的算法,但它输入了不同的训练数据,因此它会产生不同的分类逻辑。
机器学习的风格
机器学习有三种风格。但是,监督和非监督学习风格是最常见和最流行的风格。
- 受监督的(Supervised):我们有一个适当标记的数据集,我们在每个周期都会收到反馈。因此,即使预测是错误的,我们也会收到反馈。这种类型的学习更容易实现,因为在这种情况下,我们有一个正确标记的数据集。
- 无监督:这里有一个无序的数据集,可能没有被标记。在这种学习风格中,根本没有反馈,也就是说,我们不会在任何类型的预测(正确或错误)中得到反馈。这比监督实现起来要困难一些。
- 强化:在这里,我们可以拥有任何类型的数据集。这种学习方式的主要区别在于反馈。只有当预测正确时,我们才能得到反馈。例如,如果你设置了一个会下棋的机器人,我们更喜欢强化学习,也就是说,机器人只有赢了比赛才会学习步骤!
总而言之,
让我们把它编码出来!
所以现在我们知道了机器学习的风格,但是不知道怎么实现。假设我们想预测房价。那么,你如何编写一个程序,仅仅通过知道一个动物大脑的重量来估算它的体重呢?
在传统的编程方法中,我们基本上会编写一个带有许多 if-else 的程序,将大脑的重量与某些参数进行比较,并得出一个结果。在这种情况下,将会有无限量的假设,因为动物物种的数量太多了,而且,将会有大量的数据必须手动输入系统才能工作。
我们的传统方法大概是这样的:
def calculate_weight_of_body(brain_weight, animal_name):
if animal_name == animal_one:
if weight < certain_value:
return weight_certain_value
elif animal_name == animal_two:
if weight < certain_value:
return some_value ...and so on.
所以我们采用机器学习方法来解决这个问题。让我们假设我们有一个类似这样的数据集:
大脑重量身体重量 3.385 44.50 0.480 15.50 1.04 5.50
…诸如此类。此外,请记住,由于我们的数据是有标签的,我们正在遵循监督学习风格。
(实际数据集包含在代码库中。检查代码部分的链接)。
现在让我们进入代码。这次,我们将使用 scikit_learn 库来执行线性回归。如果你现在不明白它是什么,不要担心,因为我会在接下来的帖子里解释更多!我们有三个主要的依赖关系:
- Pandas:我们将使用这个库从数据集文件中快速加载数据。
- Scikit 学习:用于执行线性回归
- Matplotlib:用于可视化我们的预测
所以让我们开始吧
# Import all the dependencies
import pandas as pd
from sklearn import linear_model
import matplotlib.pyplot as plot # Read data data = pd.read_fwf('brain_body.txt')
x_values = data[['Brain']]
y_values = data[['Body']] # Train model using Linear Regression
body_prediction = linear_model.LinearRegression() body_prediction.fit(x_values, y_values) # Visualize results
plot.scatter(x_values, y_values)
plot.plot(x_values, body_prediction.predict(x_values))
plot.show()
你在这里!你刚刚迈出了机器学习的第一步。但是现在,你很好奇它到底是怎么工作的?
这是如何工作的?
我们使用线性回归来描绘一条简单的直线,这条直线最适合我们所有的数据点。把 x 轴当做大脑的重量,y 轴当做身体的重量。现在,我们在笛卡尔平面上绘制数据集的所有点。
线性回归通过追踪与我们的数据最匹配的直线来帮助我们找到点之间的关系。我们这条线的方程式是
其中 b 是 y 轴截距,m 是直线的斜率。通过使用这条线,我们可以建立大脑重量和体重之间的关系!
我们的点和追踪线的图形看起来像这样:
这是魔法吗?
不,这不是魔法!一旦你开始看到机器学习技术可以多么容易地应用于看起来非常困难的问题(如手写识别),你就会开始觉得只要你有足够的数据,你就可以使用机器学习来解决任何问题并获得答案。
总结一下
总而言之,我们现在知道了三件基本的事情:
- 机器学习:让计算机根据我们提供给它的数据,自己计算出步骤。
- 三种不同风格:监督式、非监督式、强化式
- 线性回归:它允许我们通过一条最佳拟合线对独立值和从属值之间的关系进行建模。
密码
这篇帖子的代码已经上传到我的 Github 个人资料上了!
在这里找到源代码:https://github.com/C-Aniruddh/linear_regression
原载于 2017 年 7 月 2 日 achandratre.azurewebsites.net。
我们 EMS 系统的悲剧
个人被鼓励使用最昂贵的医疗保健来解决小问题;以美元为代价节省便士。
备选领域提供了方便的框架,以更好地阐明消防服务中的问题。被称为“公地悲剧”的经济理论可能会将我们当前面临的环境管理挑战概括为一个简洁的隐喻。
公地悲剧是这样一种情况:个人通过开发一种共享资源,使其耗尽,从而使个人收益最大化,给社会带来灾难性的代价。结构不良的激励会产生“道德风险”,这是一种被称为“荷兰病”的经济现象,最后,被称为“临界点”的枯竭点通常会导致悲剧性的崩溃。
Commons — 每个人都可以使用的公共资源
想象你是一个牧场主,有一小群奶牛被你的私人牧场所限制。当地政府允许牧场主在紧急情况下,如野地火灾或大规模干旱时,使用最好的公共土地进行临时放牧。你会注意到其他当地牧场主开始扩大“紧急情况”的定义,并经常使用公共土地放牧。
道德风险——被激励去做错误的事情
了解到每个人都可以定义什么是紧急情况后,当地牧场主通过增加他们私有土地以外的畜群规模来实现利润最大化。最终,所有的牧场主都必须使用公共土地来保持竞争力。
荷兰病——新资源侵蚀旧的稳定资源
牧场主将他们的大部分畜群转移到免费的公共土地上,通过停止给他们的私有土地浇水,让草枯死,将他们的成本降到最低。现在,牧场主完全依靠公共土地放牧。
引爆点——灾难性的崩溃
最终,公共土地上的草因过度放牧而死亡,留给牧场主的畜群超过了他们被忽视的私有土地所能养活的数量。突然,牧场主的私有土地也因过度放牧而坍塌,导致所有的牧群挨饿。
公地的悲剧
由于滥用和过度使用,用于紧急情况的公共资源系统已经崩溃,使整个社区处于绝望的境地。
来自过去的警告
经济学家威廉·福雷斯特·劳埃德在 1833 年讲述了“公地悲剧”的故事,作为对后代的警告。该警告指出,超出其承载能力的公共资源面临着失败的风险,给社区带来了指数级的成本。
换句话说,公地的悲剧在于决策者无法认识到公共物品何时达到承载能力,从而导致影响整个社区的灾难性崩溃。
我们 EMS 系统的悲剧
我们目前的 EMS 系统,在越来越多的使用下,开始看起来像 19 世纪劳埃德的“公共财产”,通过拨打 911 为小问题奖励病人,而不需要他们付出实际代价。随着呼叫量的增加,系统的压力促使社区以牺牲其他项目为代价大规模扩展 EMS 资源。
非危重病人占急诊总量的 90%,我们能在急诊系统达到临界点之前进行干预吗?
公地
根据联邦法律,每个人都可以使用 EMS,并且必须“接受、评估和稳定所有接受护理的人,无论他们的支付能力如何。”因此,许多没有传统医疗保险的人正在使用 EMS 进行常规医疗护理。消防部门的额外负担减少了为其他紧急情况提供的服务,实际上耗尽了应对模式的所有复原力;一个重大事故就可能使当地的 EMS 系统彻底瘫痪。
道德风险——对用户和消防部门而言
道德风险是“一种倾向于承担过度风险的情况,因为承担风险的一方不承担成本。”许多 EMS 使用者几乎不面临不良后果的风险,例如因小病使用 EMS 的巨额救护车费用。
使用没有直接成本的最昂贵的医疗方案
一些病人被鼓励使用 EMS 系统,因为他们没有直接的花费。最终,社区承担了额外的费用,而用户却突然享受到了丰富的方便和先进的医疗服务。
你打电话,我们拖运,如此而已
与病人一样,消防部门也在与自身的道德风险作斗争。许多消防部门进入救护车运输业务,以保护社区,雇用额外的消防队员,并投资于大量的资本资产。来自救护车账单的收入通常用于支付员工和设备的成本,使得医疗运输业务成为必需的业务。但是许多消防部门面临着一个事务性问题,他们的人员和资产成本在增加,而每次运输的平均收集量在下降。
突然间,消防部门陷入了专注于收入而非社区健康的困境。就像病人一样,消防部门发现自己处于道德风险中,不管医疗需求如何,运送尽可能多的病人,希望缩小成本上升和收入下降之间的差距。
荷兰病——EMS 侵蚀了其他形式的医疗保健
1977 年,《经济学人》上的一篇文章创造了“荷兰病”一词来描述一种突然致富的形式,这种形式重塑了经济,侵蚀了一些部门,并将其他部门推到了崩溃的边缘。“荷兰病”可能有助于描述我们医疗保健系统的演变,因为人们突然因以低成本获得先进的 EMS 系统而富裕起来,同时侵蚀了家庭医生等更传统的医疗保健手段。
解决方案是有的,但可能需要一点点的尝试和错误
我们的 EMS 系统由消防部门、救护车公司、医院、保险提供商、诉讼律师和政府法规组成,它创造了一个复杂的适应性系统,或 CAS 。CAS 非常难以分析、管理或预测,一旦超过其承载能力,就会突然崩溃,就像劳埃德寓言中的普通牧场一样。
大卫·斯诺登, Cynefin 框架的创建者和复杂性理论的领军人物,建议当面对塑造一个 CAS 时,一个人通过在系统中使用一组安全到失败的实验来采用一个“探测、感知和响应”的过程。在新项目实施后,管理员根据结果抑制或放大活动。换句话说,尝试新事物,多做有用的事,少做没用的事。
The complex environment of the Cynefin framework
在处理 CAS 时,传统的官僚计划和结构化实施很少能产生预期的结果,反而会使问题变得更糟。我们的 EMS 问题的解决方案将在本地找到,在一个小实验中产生积极的结果,由关心他们社区的勇敢的领导者实施。
Australia tries a public education campaign
由于道德风险和一种荷兰病的混合,我们的 EMS 系统正面临巨大压力。我们建立了一个激励用户为小问题寻求紧急服务的系统,高额费用由社区而不是用户承担。急救服务的主导地位侵蚀了传统形式的医疗保健,如果 EMS 崩溃,可能会使社区没有医疗保健的选择。我们的紧急医疗系统的复杂性创造了一个复杂的适应系统,在小危机演变成大灾难之前,需要一点尝试和错误来克服无知和冷漠的古老问题。消防部门没有制造问题,但我们应该成为解决方案的一部分;为了市民,我们发誓要保护。
你不应该最大化效率;你应该有弹性。效率导致脆弱;弹性…
medium.com](https://medium.com/elitecommandtraining/fire-departments-are-response-models-not-production-models-f7943d5c623d)
贝叶斯先验和过度拟合的真相
你有没有想过一个先验和观测数据相比有多强?这不是一件完全容易概念化的事情。为了减少这种麻烦,我将带你做一些模拟练习。这些是思考的成果,不一定是建议。然而,我们将贯穿的许多考虑将直接适用于将贝叶斯方法应用于特定领域的日常生活。我们将从创建一些从已知流程生成的数据开始。过程如下。
它以一个循环过程为特征,一个事件由变量 d 表示。该事件只有一次观察,因此这意味着最大似然法总是将无法用其他数据解释的一切都分配给该变量。这并不总是想要的,但这就是生活。数据和最大似然拟合如下。
您可以注意到的第一件事是,最大可能性超过前面的 d 参数 20.2%,因为真实值是 5。
现在想象一下,我们用贝叶斯方法来做这件事,拟合生成过程的参数,而不是函数形式。因此,我们将在没有任何先验知识的情况下对β参数进行采样,并观察结果。在下图中,您将看到真实值为 y ,3 条线对应于拟合后验分布的 3 个独立样本。
非常类似于最大似然的例子,除了现在我们也知道可信区间和贝叶斯方法给我们的所有其他好处。我们可以快速总结一下β参数。因此,我们可以看到,即使我们有贝叶斯方法,我们仍然过度拟合。
现在到了正题!与数据相比,先验有多强?
关于薄弱的前科和无知
为了分析先验的强度,我们将不断设置更严格的先验,看看结果会怎样。请记住,令人高兴的情况是我们知道真相。我们将从建立一个如下所示的模型开始,这意味着我们将只给贝塔分配先验,而不分配截距。
因此,该模型符合与之前相同的过程,但是引入了弱先验。这里的先验知识表明,β参数都是高斯分布,它们周围有很多方差,这意味着我们对这些值应该是多少不是很有信心。如果你看上面的表格,我们没有先验,这基本上意味着我们的先验是负无穷大和无穷大之间的均匀分布,你可以看到推论没有太大的不同。
需要注意的一点是,可信区间没有缩小,这意味着模型关于每个参数的不确定性大致相同。这是为什么呢?对于第一个模型中的初学者来说,即使我们“相信”无穷大是每个参数的合理猜测,采样器还是找到了方法。每个参数的后验分布的平均值在模型之间几乎是相同的。那太好了。两个无限不同的先验导致相同的平均推断。让我们试着看看先验知识会在多大程度上改变平均推断。请在此处查看新型号描述。
对于我们的推断,这看起来像什么?看起来是这样的!
差别仍然不大,所以我们再缩小 10 倍。
在这里我们完全可以看到不同之处。查看下表中参数βd 的平均值。从 6.03 到 4.73,变化了 21%。现在,这一平均值与真实值仅相差 5.4%。
但是让我们花点时间来思考这个问题。为什么会这样?原因是你的知识可以充实。有时比数据更重要。所以你在这个领域的经验应该被考虑在内,并根据证据进行权衡。现在由你来用数学的方式陈述你的经历,这就是我们在上一个模型中所做的。在你开始反驳我的推理之前,看一下我们绘制的最后一个先验和后验的图,以及我们生成过程中的点估计。
如你所见,先验在真实值附近,但并没有真正覆盖它。这不一定是件坏事,因为无知会让数据把你带向疯狂的方向。下图显示了一个例子,我们绘制了模型三的先验和模型三的后验。很明显,数据被允许将值驱动到过高的值,这意味着我们过度拟合了。这正是最大似然法遭受维数灾难的原因。我们不应该对此感到惊讶,因为我们实际上已经告诉模型,值很可能达到 10。
我们可以从中总结出一条经验。
你的先验越弱,你就越能模拟最大似然解。
关于前科累累和过于自信
如果最后一章是关于陈述你的想法和对你的领域知识有信心,那么夸大这一点和过分自信也是危险的。为了说明这一点,让我们做一个小例子,我们说,贝塔围绕 0 摆动,标准差为 0.5,是前一个宽度的一半。现在看一下参数估计。
很明显,我们在这里过于自信,结果现在与事实相差甚远。然而,我认为这是一个相当理智的先验。为什么?因为我们和手头的问题没有关系,在这种情况下最好保守一点。因此我们是成功的。我们陈述了我们的想法,而“一”数据点更新了很多。现在想象一下如果我们有两个呢?因此,也许一个数据点能够更新我们的观点并不是那么糟糕,也许首先保守一点也不是一个坏主意?
当然,是否建议保守取决于手头的应用程序。对于一个在证据面前确定嫌疑人是否确实有罪的应用程序来说,怀疑“证据”可能是很自然的,而对于一项潜在的投资来说,它可能会付出更高的风险,并接受更高的错误率,以期大获全胜。
结论
那么我们从这一切中学到了什么呢?好吧,希望你明白了设定优先顺序不是一夜之间就能学会的。需要练习才能有感觉。然而,这些原则非常明显。我会给你一些关于如何设定前科的核心建议。
- 总是把先验设定在你相信真理的附近
- 始终设定先验,使它们反映与你试图预测的现象相同的数量级
- 不要过于自信,给怀疑留有空间
- 永远不要使用完全没有信息的先验知识
- 尽可能避免使用均匀分布
- 总是总结你所有先前的结果,这样即使没有可用的数据,你的模型仍然可以预测你观察到的反应的数量级
- 要小心,要诚实!永远不要对你希望是真实的结果假设非常有用的先验知识。如果你相信它们是真的,那也没关系。在你看到不同之前,不要放心。
黑客快乐!