TowardsDataScience 博客中文翻译 2020(四百三十七)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

数据科学如何改造疾病监测系统

原文:https://towardsdatascience.com/how-data-science-is-impacting-healthcare-resilience-48c5a6b07063?source=collection_archive---------43-----------------------

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

在意大利电晕关闭期间,大多数商店和所有学校仍然关闭。(图片:Getty Images)

数据科学技术,如人工智能,或者更具体地说,机器学习,已经推动了一系列行业的显著转变。在广泛探索使用 ML 的许多领域中,由于患者数据可用性的爆炸式增长,其在医疗保健领域的应用正在见证革命性的发展。虽然没有算法可以取代人类触摸的温暖和强调医患关系的同情,但有前途的数据科学技术肯定可以通过提供对诊断和治疗过程的见解来补充医疗和保健人员的努力,从而有助于改善结果和增强患者护理。从微软利用计算机视觉进行医学图像诊断工具的 InnerEye 到 Alexa 进军家庭患者慢性病护理,我们一定会见证从诊断-治疗模式到预测-预防模式的决定性转变,这将减少成本和患者痛苦。因此,ReportLinker 预测“医疗保健人工智能”市场规模将从 2018 年的 21 亿美元飙升至 2025 年的 361 亿美元,CAGR 将达到 50.2%,这一预测并不令人惊讶。

虽然数据科学在许多方面都在帮助从业者、患者和决策者,但这篇文章将特别深入探讨我们如何应对和防御流行病(和大流行!)可以使用数据支持的工具来预测/临近预报疾病动态。

疾病传播的监测、建模和预测

在我们日益缩小的世界中,由于全球旅行、城市化和气候变化的增加,传染病的威胁比以往任何时候都更加严重。传染病每年夺去 1700 多万人的生命。但是,疾病传播快,知识传播更快!使用数据科学工具,可以利用现代技术的巨大数据生成能力来深入了解实时疾病监测,从而预测疾病传播。跟踪和预测传染病爆发的动态对于关于医疗资源分配的决策以及关于选择和实施适当干预以最小化发病率和死亡率的公共政策是非常有用的。

方法

我们在这里处理的基本上是一种特定疾病在一段时间内的趋势或“时间序列数据”。我们在疫情表现出显著活跃的历史时期对疫情进行建模,并对当前或未来潜在死灰复燃的时期对疫情进行监控。其实时预测(对实时发生的病例数的估计)或预测估计有助于公共政策的重要指标包括:

1.每日/每周案例计数

2.峰值计时

3.(代表病例数的曲线的)峰高

4.爆发持续时间和规模

此外,我们的目标变量(每小时/每天/每周/每月)的粒度将取决于可用输入数据的粒度。例如,如果我们有每月的数据点,我们的目标预测就不能是更低的粒度,比如每周。然而,需要注意的一点是,数据越精细,我们对其分析和解释的控制就越强,从而可以更好地了解疫情的动态。

一些模型试图将空间数据与时间数据结合起来。这主要是通过根据地理区域划分数据来实现的,从城市和地区到国家或纬度范围。这是有道理的,特别是在大流行的情况下,因为不同地区和居住在那里的人口的特殊性可能在疫情的动态中发挥重要作用。在空间-时间分析的情况下,上述目标参数也是为每个区域单独估计的,有时是通过用特定地理部分的数据对模型进行微调。

数据

传统的监测系统使用从全国数百个医疗保健提供者收集的病毒学和临床数据来发布流行病报告,通常是每周一次。虽然可靠,但这种方法昂贵且缓慢。这些报告中的数据有 1 到 2 周的滞后。为了提供对疫情的实时监测,正在从监测流感活动间接信号的创新监测系统中获取数据。

  1. 网页搜索查询和社交网站数据

大约 80%的互联网用户在网上搜索有关他们所面临的医疗问题的信息,这使得网络搜索查询成为有关健康趋势的唯一有价值的信息来源。不足为奇的是,人们发现,寻求健康的网络搜索行为与同期测量的患者出现相应疾病症状的医生就诊比例高度相关。季节性流感样疾病尤其如此(ILI)。

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

通过基于搜索查询日志的模型预测 ILI 病例(黑色)与实际 ILI 病例数(红色)

当然,某些搜索查询比其他查询更高度相关。此外,应当监控其搜索频率并在临近预报/预测疾病活动的模型中使用的术语或短语的集合可能随时间和跨不同区域而变化。因此,有一些工具采用机器学习和统计模型来自动发现在给定地区的给定时期内针对特定疾病的最具指示性的查询集。

许多研究还证明了使用社交网站(SNS)对流行病的流行情况进行实时分析的成功。许多人广泛使用社交网络来分享想法甚至健康状况。因此,除了作为一种交流和传播预防流行病和大流行意识的良好方式外,它们还为疾病监测提供了一种有效的资源。SNS 用户可以用作传感器,提供数据进行分析,用于早期趋势检测和预测。Twitter 是一个特别成熟的资源,因为它的帖子频率高,可以进行每分钟的分析,而且它的用户群体多样化,从年轻人到精通技术的老年人,可以产生跨越所有年龄组的数据点。此外,与搜索引擎日志相比,Twitter 帖子更具描述性,通过发帖人的用户资料对其人口统计数据进行更深入的分析可以提供更深入的见解。

**2。气象与环境数据

气候变化是影响疾病传播动态的一个已知因素,特别是季节性流行病。例如,研究发现降雨量对流行性疟疾的年际变化有显著影响,这表明将降雨量作为一个输入变量纳入预测疟疾暴发的模型。因此,诸如降雨量、温度变化和湿度等气象数据提供了重要的数据点,可用于预测与疾病相关的目标参数的模型中。

其他环境因素,如植被指数、人口密度(是的,人是我们环境的一部分)、空气质量也可以纳入模型,这取决于它们与特定疾病传播的关系。

3。临床监测数据

当我们处理时间序列时,传统的监测数据,如历史病人数、历史疾病持续时间和峰值都发挥了作用。例如,过去 2 周的疾病活动可以指示其未来 1 周的趋势。这些数据点在构建预测模型时特别有用,这些模型需要经过训练以从历史趋势或捕捉滞后关系的趋势中学习模式。

另一种提供近实时患者信息的临床数据是电子健康记录(EHR)。电子病历提供了大量关于患者的信息,如他/她的人口统计和病史,这些信息可以对情况进行更细致的分析。此外,来自 EHRs 的数据可以被整合,以提供显示症状的患者数量与实际患病的患者数量的统计计数。

**4。其他数据

暗示疫情规模的其他间接数据包括非处方药销售,这在 ILIs 病例中最常见。一些研究甚至使用基于历史证据的(伪随机)事件模拟。

模型

以下是文献中分析流行病时间序列数据时遇到的一些最常见的模型:

1。ARIMA:

ARIMA(自回归综合移动平均)及其变体是时间序列数据建模的一些最有效的方法。事实上,这也是用于传染病时间序列数据建模的最常用方法。由于 ARIMA 模型假设未来值可以根据过去的观察结果进行预测,因此它可以很好地处理上述临床监测数据点,捕捉定期收集的数据中通常存在的滞后关系。

然而,ARIMA 模型在处理 ILI 等不同季节不一致的疾病时,或者在预测淡季发生的流行病时,可能会受到限制。此外,ARIMA 不能很好地处理非结构化数据,如搜索查询日志和来自社交网络的数据,这些数据在疾病的临近预报中发挥着越来越重要的作用。

2。回归模型:

多元线性回归是最常见的回归分析形式,已应用于疫情预测研究。模型捕捉各种数据点,包括自回归和季节参数以及(滞后的)天气协变量。通常,回归模型针对不同的人口在更精细的空间粒度上进行微调,例如针对一个国家内的每个城市或州。

3。神经网络

考虑到可用的输入数据特征的多样性,如果有大量数据可用于训练神经网络,那么使用神经网络是一个不错的选择。神经网络需要有限的特征工程,在分析多模态复杂数据集时成为热门话题,例如使用多种类型的数据集进行疫情预测。

4。其他方法

除了上面提到的方法,还使用了其他各种特定于数据的方法和模型。例如,与主题模型或图形数据挖掘相结合的文本挖掘,用于从搜索查询和 SNS 数据中提取和分析特征。此外,可以使用不同方法和模型的组合来组合若干特征数据类型,以为此目的构建健壮的系统。

多种方法正在涌现,试图利用我们拥有的强大工具:数据,随机应变,帮助我们应对疾病爆发。其中最成功的已经在更大范围内实施,并正在协助政府和公共政策加强防御。只有当我们开始信任这些(太早?)警告和*采取必要的措施,即使它们看起来反应过度,*我们才能真正收获它们的好处。

数据科学家如何在现实生活中建立机器学习模型

原文:https://towardsdatascience.com/how-data-scientists-build-machine-learning-models-in-real-life-f1f333022fb7?source=collection_archive---------27-----------------------

成功完成预测模型的步骤

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

摄影爱好在 Unsplash

如今,网络上已经充斥着数据科学和机器学习相关的资源。有许多博客、网站、YouTube 视频和论坛都在提供关于数据科学相关主题的有用信息。现在,为任何数据科学探索选择正确的材料已经变得很乏味。

几年前,当我开始我的数据科学之旅时,我面临着同样的困境。但有一点我注意到,在这些资源中,大部分都不完整。你必须遍历大量的资源来获得详尽的信息。

此外,我看到关于机器学习模型的文章缺乏现实生活的视角。所以我想到写一篇关于为现实生活中的任何用例构建机器学习模型的整体图片的帖子。

要执行任何数据科学项目,数据科学家都需要经历几个步骤。概括地说,这些步骤可以表示为:

  1. 从给定的业务问题中制定数据科学问题

2.数据源探索和数据收集

3.变量探索(EDA)

4.模型结构

5.模型评估

6.模型部署

步骤 1 和 2 取决于问题的背景。步骤 6 更多地依赖于业务需求和可用的基础设施。步骤 2、3、4 和 5 是数据科学家的唯一职责。

在这篇文章中,我将讨论如何建立一个端到端的分类模型。我将带你经历一个数据科学家在任何需要建立分类模型的项目中的整个旅程。我将试着组织这篇文章,以便它可以很容易地适应类似的情况。

我使用了一个随机 Forst 模型来描述这些方法。即使您使用任何其他分类器,执行过程也会非常相似。

1.从一个给定的商业问题中形成一个科学问题

通常,数据科学问题源于业务需求。业务主管在产品销售、利润率、客户忠诚度、采购决策、市场份额和许多其他领域面临着各种挑战。

这些业务问题会以一些业务问题的形式出现在你面前,或者以业务主管的一些观察结果的形式出现在你面前,这些观察结果是他们想要验证的。

作为一名数据科学家,您有责任将这些业务问题转化为数据科学问题,并提供有意义的答案。

在这篇文章中,我将考虑一个简单的社交网络广告问题。数据集提供了一些表明客户概况的变量。此外,它还表示购买了该产品的客户。

这项任务的目的是根据客户信息,预测未来谁会购买该产品。

因此,作为一名数据科学家,您需要理解这是一个分为两类的分类问题——已购买和未购买。

2.数据源探索和数据收集

在现实生活中,数据源探索和数据收集并不是一项简单的任务。在任何组织中,您都很难找到可以找到所有所需数据的单一来源。通常,您会发现多个不相连的数据源,其中一些由于基础设施相关问题或访问受限而难以访问。

由于成本问题和技术挑战,从外部来源收集数据也很棘手。

在这篇文章中,我只能有限地展示这些问题。讨论“社交网络广告”的数据集从这里下载。

3.变量探索(EDA)

在开始探索性数据分析(EDA)之前,你应该先看看数据。您应该检查一些东西—数据量、来自不同来源的不同数据的性质、数据集的兼容性、它们之间的映射、数据质量、数据一致性—最重要的是每个变量的含义及其业务含义。

现在是时候使用“社交网络广告”数据来使用 python 代码了。因为我使用了单一数据集来保持讨论的简单,所以我的范围有限,无法说明我在这里提到的第一次查看数据的所有方面。

整个代码可以在 jupyter 笔记本或您选择的任何其他 python IDE 中执行。我们将需要几个 python 库来完成这个分类练习。我将首先提到我们需要的所有包装。

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

检查您当前的工作目录总是一个好主意。如果需要,将其更改为您喜欢的。

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

先看数据

先看看将用于构建模型的数据。你会知道你在处理多少变量,以及这些变量代表什么。

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

这是一个只有四百个观察值和五个变量的小数据集。其中,“用户 ID”对模型开发没有贡献。

您应该检查变量名中的空格。如果您发现任何这样的情况,请更改变量名。变量名中的空格会导致脚本出现问题。在这个数据中,“用户 ID”有一个空格,我把它改成了“User ID”。

变量的数据类型

检查您正在处理的每个变量的数据类型。任何数据中最常见的问题是日期变量。我看到大多数时候日期变量变成了“对象”数据类型。请确保您已经将其转换为日期格式。我的当前数据不包含任何日期变量。此外,当数值变量的某些值包含字符或者某些值缺失时,数值变量有时会变成“对象”类型。

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

将数据分为训练集、验证集和测试集

在处理数据之前,将其分为训练集、验证集和测试集。您的模型应该只看到设置为自我训练的火车。验证集应该只用于通过检查模型在验证集上的性能来调整模型的参数。测试集用于检查模型对未知数据的性能。

您将用于处理训练集的所有统计技术都应该用于处理验证和测试集。此外,您从训练集估计的统计值应该用于验证集和测试集。

例如,如果已经通过均值***【m】****和标准差 s *,归一化了训练集的变量 X,则应该使用相同的值来归一化验证集和测试集中的 X。

现在,训练、验证和测试集的大小取决于可用的数据量。当数据集不大时,80–10–10 或 70–20–10 是分割训练、验证和测试集的常用百分比。但是,如果你有足够的数据,比如数百万,那么保持 2%或 1%甚至 0.5%的数据对于验证或测试集来说就足够了。

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

从这些数据中,我通过提取 80%的数据创建了一个训练集。为验证集保留 15%,为测试集保留 5%。

变量的分布

现在是时候探索列车组并理解手头的变量了。

变量的汇总统计将有助于理解它们的性质。你会对他们的分布有一个粗略的概念,比如范围,他们是否在本质上是偏斜的,频繁出现的类别,等等。

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

在该数据中,性别分布以女性为主。顾客的年龄从 18 岁到 60 岁不等,平均为 38 岁。

可视化总是有助于更深入地理解变量。

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

相当多的顾客年龄在 40 岁左右。很大一部分顾客属于低薪阶层。不出所料,购买的顾客数量远低于总顾客数量。

对于分类问题,检查类别不平衡的程度总是一个好主意。

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

在列车组中,已购买与未购买的比例为 38:62。所以,阶级不平衡在这里并不重要。

缺失值和异常值

在真实文件数据中,缺失值是一种确定(几乎)的现象。处理缺失数据有多种技术——数值变量的均值或中值插补、分类变量的模式插补、K 近邻法(KNN)、回归法等。它们中的每一个都依赖于环境。

在当前的行业场景中,如果数据中存在某个变量,可能会有两种情况。要么变量有足够的值,要么没有值。我几乎看不到介于两者之间的情景。

这是有原因的。组织了解构建流程和基础架构来存储来自不同业务运营的数据的重要性。如果他们发现一些信息至关重要,并且有记录的方法,他们会妥善保存。你会得到足够的信息。但是有时由于人类的偏见或技术上的挑战,记录某种特定的信息变得很困难。在这种情况下,你几乎得不到任何信息。

所以,如果我有足够的数据,我个人会尝试删除缺失值。如果某个变量有大量缺失值,那么删除该变量可能是个好主意。我只在绝对必要时才尝试插补技术。

现实生活数据的另一个常见特征是异常值的存在。您可以使用上下胡须来确定异常值。有时,人们会将较低的 2.5%和较高的 2.5%的数据视为异常值。在对它们采取任何行动之前,您需要检查它们是否真的是异常值。

您可以用变量的一些估计上限和下限来限制异常值。

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

在这个数据集中,没有丢失的值。由于该数据中的响应变量本质上是分类变量,因此异常值的概念在这里不适用。

特征创建

对于大多数机器学习问题,特征创建是一项强制性的练习。有时,可用于建模的数据不包含足够的变量。可用变量可能没有足够的解释力来提高模型的能力。我们正在处理的数据只有三个变量——年龄、工资和性别。

根据这三个变量,很难建立一个具有足够预测能力的模型。可能存在某些影响购买决策的其他因素。现在,由于我们没有关于客户的其他信息,我们可以明智地使用这些变量来提取最大可能的解释力。为此,我们需要从现有的变量中创建新的变量(特性)。

可能存在另一种情况,我们有足够的变量,但没有一个变量显示出足够的解释力。在这种情况下,我们需要从原始变量中创建额外的特性。此外,我们可能需要智能地组合一些变量来创建新的变量。

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

这里的顾客年龄在 18 到 60 岁之间。如果我们不使用年龄作为变量,而是能够识别客户具有不同购买模式的年龄段,那么在决定客户是否购买时,它将具有更大的解释力。一旦我们确定了年龄桶,我们就可以为这些桶形成虚拟变量,并将它们用作特征。

在这个柱状图中,我们可以看到已经购买的客户和没有购买的客户的年龄分布不同。红色矩形代表已经购买的客户数量,在中低年龄段中较高。但是蓝色矩形对于高年龄组来说更高,这表明高年龄组不购买的可能性更大。

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

从上面的直方图的理解导致生成一个新的变量“age_group ”,它包含年龄桶而不是实际的变量值。这将帮助我们为每个年龄阶段建立新的虚拟变量。

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

这同样适用于变量“EstimatedSalary”。顾客的工资从 15000 英镑到 150000 英镑不等。我把这个系列分成九个桶。在这里,你可能需要试验你应该形成多少个桶。目标是产生足够数量的桶,以区分购买和未购买客户之间的工资分配。

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

变量“salary_group”是基于直方图中观察到的模式形成的。

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

顾客购买状态的性别分布没有显著差异。你一定注意到女性顾客更倾向于购买这些产品。

一旦我们研究了数据集中的所有变量,就该最终确定分类模型的特征了。您将为训练集创建的特征必须为验证集和测试集完全重复。

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

因此,我们已经为模型创建了所有的特征和虚拟变量。我去掉了原始变量,只保留了虚拟变量。在创建虚拟变量时,我从每组中删除了一个虚拟变量,以避免虚拟变量陷阱。

当我们为任何分类变量创建虚拟变量时,每个分类都会创建一个虚拟变量。变量中所有哑元的线性组合总是 1。因此,它们将与模型的截距完美相关。这被称为虚拟变量陷阱。我们通过为每个分类变量丢弃一个哑元来避免这种情况。

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

检查变量的相关结构总是一个好主意。多重共线性使得很难理解模型中要素的重要性。

在我们的例子中,创建的特征之间的相关性似乎不是很强。

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

火车组终于准备好模型制作了。

4.模型结构

在我们训练模型之前,我们需要验证数据为模型验证做好准备。我们需要将用于训练集的相同方法应用于验证集。

同时,我们也可以准备测试数据,并保留它以备将来使用。

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

我们创建了与培训集相似的年龄存储桶和工资存储桶。有一点你必须检查目标变量的所有类都应该出现在验证集中。如果没有,重复训练-验证-测试分离。

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

我们为验证集和测试集创建了相同的特性。

有几种处理分类问题的算法。事先知道哪个型号性能会更好,不是很方便。我们总是尝试几种型号,比较它们的性能。在现实场景中,性能参数可以是预测准确性、执行时间和资源消耗。

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

这里我使用了一个随机森林模型作为分类器。随机森林通过从训练集中采样特征来构建几个决策树。这些树中的每一个都对观察结果进行分类。随机森林结合这些决定,并提取最有可能的一个。这种方法叫做装袋。

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

我已经使用默认参数来建立模型。您可以使用参数进一步优化分类器,如— n_estimators、max_depth、min_samples_split、 min_samples_leaf 等。

将您的模型保存为 pickle 文件以供将来使用。您应该用正确的版本名称保存模型,这样当您再次访问它们时就可以区分它们。

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

我将模型保存在我的工作目录中,然后再次加载它,因为我使用的是一个笔记本。

5.模型评估

我们到了必须回答几个问题的地步,比如——这个模型有多好?它符合我们的期望吗?如果没有,怎么办?

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

为了检查模型,我使用了验证数据集。已经预测了验证集的目标类。为了判断模型有多好,我们需要使用一些判断指标。

混淆矩阵是表示模型性能的好方法。它显示实际数据和预测结果中的正类和负类的计数。这里的正类是指标签为“已购买”的类,用 1 表示。

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

上面的函数提供了一种用漂亮的可视化来表示混淆矩阵的方法。该函数可以显示标准化(百分比)或未标准化(计数)的混淆矩阵。

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

该矩阵表示真实标签和预测标签及其计数。对于 19 个观察值中的 17 个,类别 1 的真实和预测标签是相同的。这意味着,购买了该模型的 19 个客户中有 17 个可以预测。41 个班级中有 37 个没有购买。

为了使它更简洁,我们有一些度量标准,比如——精确度、召回率、F1 分数、准确度等。对于类别不均衡(类别分布不均匀)的分类模型,精度和召回率是我们依赖的度量标准。度量值越高,模型越好。

精度是通过两个值的比值来计算的。模型预测为“已购买”的客户数。以及实际购买了该产品的客户数量。

回忆表示—在实际购买的客户中,有多少被模型正确识别。

现在,很难做到最大化的精准和一起回忆。F1-Score 是一种将我们从这种情况中拯救出来的方法。这是精确和回忆的调和平均值。这有助于我们在它们之间保持平衡。

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

模型算法不直接提供目标类。它提供了属于每个类的概率。如果肯定类别的概率大于 0.5,则标记为 1,否则标记为 0。

这个概率阈值可以被优化。我们可以在所有阈值中检查哪一个提供了最好的分类结果。这可以通过精确召回曲线来实现。

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

因此,我没有直接预测类别,而是从模型中提取了验证集的每个观察值的概率。利用查准率-查全率曲线,发现最佳概率阈值为 0.332714。

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

该图显示了精确度-召回曲线中的最佳阈值。它优化了预测的精确度和召回率。

还有其他几种模型评估和参数调整的方法。为了使讨论简单,我无法一一介绍。

模型训练和评估是递归过程。你需要多次重温培训和评估,以达到令人满意的水平。如果评估过程没有显示令人满意的结果,每次都需要调整模型的参数。我在这篇文章中避开了这一部分。

现在,是时候检查模型在看不见的测试数据上的表现了。如果将模型部署到现实生活中的应用程序中,它将类似于模型将如何执行。

测试集上的模型评估

在对测试集使用模型进行预测之前,必须检查测试集的形状。确保测试集中的特征数量等于训练集中的特征数量。

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

在我们的例子中,测试集中缺少三个特性。这些是从估计工资中创建的虚拟变量。因为那些工资桶在测试集中不存在,所以我为它们插入了带有零的虚拟桶。

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

我使用验证集中估计的阈值概率来预测测试集中的观察结果。

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

混淆矩阵显示,所有带有“已购买”标签的客户都被正确预测。所以,召回值是 1。

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

该组的 F1 分数为 0.85。我想说这个模型为我们提供了一个不错的表现。我们用一种非常简单明了的方法做到了这一点。

在许多情况下,85%的 F1 分数可能是优秀的表现。然而,模型所需的精度取决于各种因素。

6.模型部署

一旦你对你的模型表现感到满意,你应该和业务主管一起检查。您需要详细讨论您的结果的含义,以及它是否符合业务理解。

此外,您需要与业务主管确认期望的准确性水平。必须对部署策略、模型修订的频率、交付输出的模式等做出决策。

您的模型输出可能会被其他应用程序使用,甚至可能以 CSV 文件的形式提供给业务人员。

我在本文中表示代码的方式更像是一种离散的方式。在现实生活中,我们更喜欢将脚本分成不同的块,并使用类和函数来组织它们。

此外,需要为模型的推断准备单独的脚本模块。该脚本将从特定的数据存储中获取数据,对数据进行推断,并将输出保存在指定的输出位置。

您将需要一个计划程序,让模型在特定的时间间隔后运行。如果其他应用程序依赖于这个模型的输出,您需要以正确的顺序同步它们。

在一篇文章中介绍机器学习项目的所有方面真的很难。我尽力覆盖了大部分。我可能遗漏了一些事实。但是我相信我已经能够把整个旅程的总结带到你面前。

数据科学是一个新兴领域。许多有志者加入数据科学行业,追求成为一名数据科学家。我希望这篇文章能帮助他们对数据科学项目涉及的步骤有一个公平的认识。

你可以从 这里 下载笔记本。

参考文献:

  1. https://machine learning mastery . com/roc-curves-and-precision-recall-curves-for-unbalanced-class ification/

2.https://stack overflow . com/questions/19233771/sk learn-plot-confusion-matrix-with-labels/48018785

感谢您阅读我的文章。如果你喜欢这篇文章,你可能会喜欢我的其他文章。以下是其中的一些。

* [## 没有书籍和教程如何学习新的编程语言

经过检验的快速学习方法

medium.com](https://medium.com/swlh/how-to-learn-new-programming-language-with-no-books-and-tutorials-862e8cf77d8f) [## 如何为对象检测模型设置您的系统

你应该从头开始,第一次尝试就把它做好

towardsdatascience.com](/how-to-set-up-your-system-for-object-detection-models-2e0726212c4e)*

数据科学家如何平衡实用性和严谨性

原文:https://towardsdatascience.com/how-data-scientists-can-balance-practicality-and-rigor-a947bdece77b?source=collection_archive---------34-----------------------

以产品为导向的实用主义和科学严谨的混合方法可以帮助数据科学团队保持专注和影响力

亚当·瓦克斯曼和埃利奥特·沃尔德伦

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

当构建驱动商业价值的量化系统时,实用主义和创新并不相互冲突。对于具有挑战性研究问题和以数据为中心的客户的成长型和精益型初创企业,数据科学研究必须快速迭代地产生明确的商业胜利。

在这些环境中扩展技术的有效方法必须包含严格的、可解释的、可防御的和与业务一致的方法组合。我们从我们自己的团队成为数据驱动的企业公司的成长过程中学到了这一点,许多读者无疑都有同感。

一个解决方案是:以产品为导向的实用主义和科学严谨的混合方法。这里有两个例子,说明如何平衡实用性和科学基础,以保持您的数据科学团队专注和有效。

避免偏见、增加业务相关性的实用建模方法(不要太花哨)

作为一名数据科学家,务实是与业务保持联系并对业务产生影响的一种方式。一种方法是使用最相关的可用数据来衡量对业务和培训模型重要的因素。您需要能够从业务案例到数据集到模型到业务成果画出一条连贯的直线。

另一方面,应用不必要的约束——这是设计新模型时容易犯的错误——是打破直线并无法产生影响的一种方式。在学术环境中,我们经常为了感知方法论的优雅而应用约束。重要的是,不要在私营部门过于宽松地实行这种限制。

我们强加给自己的这些不必要的约束会暴露出各种各样的偏见,其中一些就像一年前麻省理工学院面部检测分析的公开案例中强调的一样明显。在这些突出的案例中,在可能是高加索人的样本集上训练的面部识别模型未能识别出像塞雷娜·威廉姆斯、米歇尔·奥巴马和奥普拉·温弗瑞这样的名人面孔。

除了明显的社会偏见问题,还有一个可以避免的常见问题,即缺乏商业背景下的培训模式。从机器学习的角度来看,期望一个生成的模型能够直觉数据中没有的概念,例如,肤色是人脸中的一个变量,这是不现实的,也是不必要的。

在这种人脸识别情况下,一个简单的解决方案是识别一组不同的人脸,这些人脸可以训练模型在一系列已知的面部特征变量中识别人脸。设计师应该突出关键变量:肤色、发型、眼睛、鼻子、耳朵、眼镜等等。将米歇尔·奥巴马直接放入训练集中是“作弊”还是“不雅”?一点也不。把詹妮弗·洛佩兹也放在你的测试集中。您希望训练集和测试集是独立和平衡的,但是每个都应该包括与产品相关的关键示例。你想让你的数据产生为什么你的模型是适用的和可解释的故事。使用缺乏控制的数据集只会在你的模型中产生不必要的偏差。

外卖:机器学习的模型就像一个婴儿,假设它在房间里看到的任何东西都是整个世界。在教授这些模型时,我们可以利用一些外围知识。我们创造一些特征,意在突出我们意识中的重要变量。我们告诉我们的模型我们已经知道的事情,以便他们可以学习我们还不知道的细微差别。

以实用的严谨态度执行敏捷数据科学

我们看到的另一个常见问题是在数据科学应用程序中发现的,这些应用程序没有长期确立的最佳实践或强烈的学术关注。在这些研究周期长的领域中,存在着不走直线的风险。我们建议通过从迭代软件开发哲学和“敏捷”过程中借用概念来减轻这些风险。典型的数据科学项目可以遵循以下步骤:

  1. 定义与业务目标直接相关的成功指标。
  2. 定义一个简单的模型,可以根据成功标准进行评分。
  3. 迭代一组备选方法(只是逐渐变得更加复杂)来改进成功度量。

我们的目标是每周测试(或“往返”)一个或多个方法的能力。这使我们能够在几周内看到我们是否能够实现业务目标,以及我们是否达到了收益递减点。随着时间的推移,我们已经看到了应用敏捷式数据科学的具体好处,包括:

  1. 得到的模型足够复杂,可以满足业务目标,但不会比需要的更复杂。
  2. 实施和维护必要模型的成本保持在可管理的范围内,包括新员工。

这个迭代过程也有附带的好处。了解哪种类型的模型复杂性增加会导致相应的性能提高,有助于数据科学家了解他们所在领域的底层数据的性质。积累了关于哪个模型类更适合特定问题的见解。这可以导致更快地搜索最合适的算法。这本质上是一种贪婪的做法。然而,根据我们的经验,在处理日常实践中遇到的嘈杂数据集时,贪婪导致的失误是例外情况,而不是常见情况。

**要点:**流程驱动工程的相同优势在快速周期创新和建模中有相似之处。

对于任何数据驱动的组织来说,在各种量化问题上进行创新至关重要,这些问题涵盖的主题可能包括用户行为、信任建模和其他新领域。对你的计划采取务实和创造性的方法将有助于你快速迭代地创造价值。

亚当·沃克斯曼是 Foursquare 的高级工程总监,埃利奥特·沃尔德伦是研究副总裁。

数据科学家如何产生影响

原文:https://towardsdatascience.com/how-data-scientists-make-impact-45f66da7841d?source=collection_archive---------37-----------------------

这不全是关于漂亮的机器学习模型

几个月前,我辞去了 FAANMG 数据科学家的工作。几周后,我将在另一家公司开始新的数据科学冒险,但今天我不会谈论这个。当我过渡到我的新工作时,我想反思我的前一份工作,并写下我的上一个团队和组织教给我的重要经验。在本文中,我希望将我的知识传递给任何即将加入数据科学家或有抱负的数据科学家,以帮助他们更好地意识到等待他们的挑战和陷阱。在开始这个系列之前,我想写两个收获: **(1)非数据驱动的文化对数据科学家的影响(2)数据科学家如何引领变革成为数据驱动的文化。**人们可能会认为顶尖的科技公司一定是数据驱动型的,但就像人一样,没有一家公司或团队是完美的。此外,我只在微软的一个团队工作过,所以这当然不是对微软所有团队的证明。尽管如此,我认为数据科学家是推动数据驱动文化的领导者,因此我们有责任意识到这些挑战,并在挑战出现时战略性地应对它们。

注意:这绝对不是对我之前在微软团队的批评。这些只是我从上一份工作中学到的一些东西。毕竟,我确实相信创造一种数据驱动的文化不仅仅是由领导层领导的,也是由数据科学家领导的。

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

乔希·卡拉布雷斯在 Unsplash 上的照片

1.协调数据团队和产品团队

微软是从“先发制人”的心态中成长起来的。这意味着你首先要推出一个产品,然后试着分析产品成功的影响。数据科学家只是产品团队的创新想法和工程实现的事后产物。然而,这种分析影响的方法非常困难,会让人们认为相关性=因果关系。这种类型的流程导致数据科学家很难提供推动影响的见解以及分析新产品发布的影响。因此,对于数据科学家来说,从头到尾将自己融入产品周期并使产品团队的战略与数据团队的战略保持一致是非常关键的。

数据科学家不能把自己和数据团队隔离开来,而是要努力成为产品团队的一员。当产品团队不投入他们的工作时,数据科学家无法提供价值。对于所有的数据科学家和领导者来说,了解你的所有产品团队成员,并尝试了解他们过去和现在的项目。我喜欢在这里应用黄金法则:“己所不欲,勿施于人。”当您开始新的数据科学项目时,询问所有产品团队成员(用户研究、设计、工程、产品管理、营销)有兴趣了解什么。主动向团队更新进度,并给他们一些他们可能感兴趣的见解,这可以帮助你获得对项目的新观点。对项目保持透明,并让产品团队相信数据科学可以帮助产品创新并对业务 KPI 产生积极影响。

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

本·怀特Unsplash 上拍摄

2.加强产品团队的数据力量

对于数据团队以外的人来说,学习如何使用 Power BI 等可视化工具并不总是一目了然的。这可以被视为一种障碍和额外的责任。谁会想要自己以外的更多责任呢?数据工具只是故事的一部分。通常,指标和分析方法有时很难掌握。随着数据变得令人困惑和乏味,产品团队将开始向数据科学家询问最简单的问题。虽然这些问题很简单,但数据科学家可以花半天或一天的时间来回答一个问题。这打乱了数据科学家的日程,并推迟了他们最有可能产生影响的其他重要数据科学项目。数据科学家需要通过加强产品团队的数据力量,让团队能够利用数据自行回答简单的问题。

数据科学家必须成为教师,就如何访问和使用数据工具提供清晰的指导,并向团队提供任何关键指标的全面描述。无论是拥有度量术语表还是安排专门的学习会议,数据科学家都需要帮助产品团队变得更懂数据。从我的经验来看,授权团队自己使用数据可以给产品团队一种成功感和他们对团队的影响。然而,这并不容易,因为人们都很忙,他们可能不愿意来你的棕色袋子里谈论功率 BI 或实验。也许不仅仅是发送一个带有一般议程的会议,而是尝试为会议提供激励。此外,您可以为团队提供灵活的媒介(即空闲渠道、办公时间)来询问您的问题。

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

Joshua Hoehne 在 Unsplash 上拍摄的照片

3.增加数据和实验的可信度

多次犯错可能会失去任何人的信任,信任是数据团队和产品团队之间必须的。否则,数据团队可能会失去他们对产品团队和组织的影响。综上所述,没有数据是绝对确定的。在任何数据管道或机器学习模型中,总会有警告和不确定性。然而,数据之外的团队发现这一切难以置信,当他们在数据团队的工作中发现可疑的数字时,他们开始失去信任。一旦产品团队失去信任,他们将不愿意将数据团队纳入产品生命周期的一部分,并依赖数据科学家提供产品建议。因此,数据科学家需要在他们的统计结果中保持严谨,并确保不确定性得到测量,并与利益相关者进行良好的沟通。

数据科学家必须确保在任何演示之前陈述任何假设,并在传达他们的结果之前始终与他们的团队一起评估他们的数据科学工作。就像产品一样,数据代码经常有错误,帮助产品团队尽早意识到这一点可以帮助信任随着时间的推移而增长。提供透明度并实施严格的方法来检查所有数据科学家的工作,对于更加数据驱动的文化至关重要。

摘要

有很多文章在讨论如何创建数据驱动的文化。然而,我希望读者能够从一个新的角度了解数据驱动文化及其对数据科学家的影响。这是我个人对缺乏数据驱动的文化如何影响我作为一名数据科学家的看法,以及我从中学到的最多的东西。

如果您有任何问题或反馈,请随时在下面留下您的问题或反馈,或者在 LinkedIn 上联系我。

中:https://medium.com/@testandlearn

领英:【https://www.linkedin.com/in/kennyk1m/

数据可视化是如何工作的!

原文:https://towardsdatascience.com/how-data-visualization-works-12c6a4543d52?source=collection_archive---------18-----------------------

如何有效地将告知人们的数据可视化?

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

照片致谢

戴帽子那天,我简直不敢相信我所看到的。令我惊讶的是,比特币的价格创下历史新高,价值 19783 美元。我很难抑制这种兴奋的感觉。这种感觉并非源于我对比特币价格之高感到多么惊讶,而是因为折线图完美地描述了比特币是如何快速增长的。每当我看到一张完美地描述数字的图表时,我都会有同样的感觉。

每天,我都会遇到以视觉上吸引人的格式呈现的数据,这些数据解释了这些数字的含义,并给了我如何处理这些信息的见解。我对这些图形/图表越感兴趣,就越被数据可视化所吸引。数据可视化是处理捕获数据的研究领域,目的是有效地显示数据,以便任何人都可以很容易地对数据集进行推断。

数据可视化是数据科学的主要支柱之一。它使用形状、线条和其他形象化的方法来描绘数字。有多种技术可用于根据可用的数据类型来呈现数据。本文将重点介绍其中的五种:条形图、饼图、散点图、直方图和折线图。

条形图

条形图是数据可视化的一个方面,它将分类数据的数值显示为条形,以便对数据点进行相互比较。这是通过根据数字的大小来增加或减少条形的大小来实现的。条形图有两种类型:水平条形图和垂直条形图。

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

显示赛季中期英超联赛积分最高的球队的横道图。

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

显示球队在赛季中失球情况的垂直条形图。

水平条形图更擅长以升序或降序显示数据。垂直条形图在不使用连续数字顺序的情况下更擅长呈现数据,尤其是当只有一个数据点重要时。

圆形分格统计图表

饼图是一种比较不同数据点对整体贡献大小的图表。每个数据点都有一个百分比,可以表示为一片饼图,加起来就是一个完整的饼图。这就是为什么它被称为饼图。百分比越大,份额越大,反之亦然。所有的百分比加起来是 100%。

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

一个关于英超球队如何在英超 2019/20 赛季中期进球方面做出贡献的饼图,同时突出显示最高的。

在上面的饼图中,有一个圆圈,所有百分比加起来是 100%。在它的右边,有一个所有切片标签的图例。

散点图

散点图是比较两个变量的两组数值的图。它将其中一个变量的数字放在横轴(x 轴)上,另一个放在纵轴(y 轴)上。然后,它将数据点绘制为符号,其中数据点的数值在图形上相交。

绘制这些符号后,可以进行进一步的计算来测量两个变量之间的关系强度。这是使用相关系数来完成的。相关系数范围从-1 到+1。负值表示它们具有相反的关系,即 x 增加,y 减少,反之亦然。正值表示它们有直接关系,即随着 x 的增加,y 也增加。相关系数越接近|1|越完美。

散点图的另一个有用功能是创建回归线。通过创建一个使用 x 轴上的自变量来预测 y 轴上的因变量的方程,可以建立一条回归线。

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

一个散点图显示了 2019/20 赛季中期英超球队累积的积分如何随着进球而变化

柱状图

直方图是一种图形机制,用于计算一个数值在给定数据集中出现的次数。它通过在特定数字的固定宽度内将数值分组为不同的组来实现这一点。它计算每组中的数值出现的次数,并利用一个条形来表示其频率。组中的数值越频繁,条形越大。

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

FIFA 19 球员评分直方图。

上图是一个正常的倾斜数据,因为大部分数据位于正中间。这表明均值=中位数=众数。如果大部分数据位于图表的左侧,则称之为正偏态,意味着 mode median>mean。最大的条形被称为众数,因为它由出现频率最高的数值组成。

折线图

折线图是一种图表,主要用于显示某个变量在一段时间内的变化情况。这是通过在 x 轴上绘制时间,在 y 轴上绘制变量来实现的。它使用线条将前面的数据点与后面的数据点连接起来。

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

显示 IMDb 年度投票总数多年来变化的线形图

结论

数据可视化的力量在当今世界显而易见。政治家、体育专家、记者、工程师和会计师使用数据可视化技术向人们传达全面的重要信息,让他们更好地了解正在发生的事情。

“数据化”如何重塑金融服务

原文:https://towardsdatascience.com/how-datafication-is-reshaping-financial-services-8295eab56fca?source=collection_archive---------42-----------------------

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

弗兰基·查马基在 Unsplash 上拍摄的照片

自近 500 年前成立以来,金融服务业一直是最具活力的行业之一,并已转变为全球经济的支柱。然而,30 年前,现代金融业开始见证多种形式的重大结构变化——监管压力、客户动态、新进入者、整合、金融科技和数字。虽然这些变化并没有对这个行业(比如店面零售)构成生存威胁,但它们挑战了现状,从而创造了加速变革的需求(点击这里阅读我的背景故事)。新冠肺炎造成的大规模混乱很可能会进一步加速变革的需要。

发生的变化&数据化的作用

如果我们从历史角度来看金融机构提供的核心服务和价值主张,似乎核心服务在很长一段时间内保持了相对的相似性和弹性。这些包括:1)存款、贷款&交易 2)信贷管理和服务 3)金融咨询&投资 4)公司融资 5)风险管理。随着经济的增长和全球化,这些服务的复杂性和规模都在增长,但核心服务基本保持不变。另一方面,价值主张(专业知识、经验、规模、关系管理和交易流动性)虽然随着时间的推移在主题上保持一致,但随着结构性变化&技术进步而发展更快。考虑存款或贷款产品。与 50 年前相比,今天的基础产品可以说非常相似,然而,我们今天通过应用程序申请、获取和管理资金的方式却非常不同。

数据化是一种更近的趋势,被定义为将我们生活的许多方面转化为数据的技术趋势,这些数据随后被转化为信息,实现为一种新的价值形式。金融行业是跨产品和流程的数据密集度最高的行业之一,因此,由于数据化,它很可能是最受干扰的行业之一。* 考虑到历史,它更有可能从几个方面影响银行提供的价值主张,甚至有可能扰乱核心服务产品。*

这当然不是小事,因为多年来银行已经变得非常复杂。例如,最受尊敬的银行之一 JP 摩根就建立在近 1200 家前身机构的基础上。然而,金融机构正开始突破噪音和复杂性,设计清晰的战略,利用数据化为自己谋利(见下文)。在这方面做得好的金融机构将获得增量收益,而在这方面做得非常好的机构,最终将实现指数级转型!

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

金融机构从数据到资产的旅程,作者 Amit Shanker

数据是新的石油,是老生常谈,但最适用于金融机构

总的来说,信息对这个行业来说并不新鲜,因为它一直依靠快速、全面和准确的数据和知识来赚钱。然而,为了更广泛、更深入地受益于数据化,金融机构不得不审视其整个数据价值链,并“疏通”以推动战略变革。石油的类比在此最为恰当,以下描述了价值链中正在实施的一些关键变化:

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

重新评估银行生态系统中的数据价值链,作者 Amit Shanker

系统化&基于用例的编码以产生最大价值!

人工智能、机器学习、云计算和工程正在以显著的速度向前发展,许多甚至在 5 年前不可能的事情现在已经成为“开箱即用”的可能性。这是成功/不成功的金融机构在设计其数据化战略、路线图和执行计划时真正与众不同的地方。在用例级别,这大致映射到 4 个类别。数据使用情形将影响:

  1. 学习速度—自动化和自主化较低复杂性和可重复的任务,以专注于更高形式的思考和执行
  2. 可扩展性比率—工业化并连接数据生态系统,以开发更深入的机构知识
  3. 外化率——尽可能编纂和扩展隐性知识
  4. 创新速度—发现和策划新的见解以推动业务绩效

一个用例的旅程(策略→执行→管理)需要几个参与者和系统化的方法(如下所示)来产生期望的价值:

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

多学科用例之旅,作者 Amit Shanker

对于大多数金融机构来说,这一旅程仅在几年前才开始,然而,随着数据化将明显与绩效和价值主张挂钩,未来十年将会看到更高的关注度。难怪像高盛和 JPM 这样的公司一直称自己为科技公司而不是银行!

他们的爱有多深?

原文:https://towardsdatascience.com/how-deep-is-their-love-749bc9913c66?source=collection_archive---------68-----------------------

机器学习的最大成功:预测客户流失(专长。PySpark)

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

亚历山大·辛恩在 Unsplash 上的照片

我们说的是客户流失。不,不是那种会威胁到你的腰带或给你的动脉涂上美味黄油的那种。然而,如果任其发展,这种类型的流失会威胁到许多企业的生命。

客户流失,也称为客户流失,是指在一段固定时间内停止使用公司产品或服务的客户数量。失去客户就意味着失去收入。在可以避免的客户流失方面,英国企业每年损失 250 亿英镑。如果一个企业能够正确识别可能离开的客户,那么他们可以提供折扣或激励来减轻这种情况。通常情况下,谁会离开的线索就在客户交易数据库中,如果你只是跟踪大数据中的面包屑…

在本帖中,我们将为一家虚构的公司开发一个简单的客户流失预测模型,这家公司提供一种想象中叫做 Sparkify 的音乐流媒体服务。他们的商业模式与(几乎)同名的 Spotify 相同。用户可以选择两种订阅类型:

  • 免费等级计划的功能有限,并且会中断带有广告的音乐流
  • 付费等级计划,包含所有可用功能和无广告音乐流。

用户不受任何会员类型的限制,不仅有机会随时升级或降级他们的订阅级别,还可以直接取消订阅。这种灵活性自然伴随着巨大的风险:如果用户对服务不满意,他们可以也愿意用脚投票。

问我,问我,问我(解决你的业务问题)

Sparkify 管理层担心流失率,并希望预测哪些客户有取消帐户的风险。我们有事件日志的样本数据集、jupyter 笔记本、Apache Spark 的 PySpark APIPySpark ML 包的工作知识。一个女孩还想要什么?

臭名昭著的 B.I.G .(数据)

在 Sparkify 上执行的每个活动都被记录在事件日志中。

是的,这个也是。GIF via Giphy

一直在重复播放《心痛如碎》吗?那会被记录下来。在旅途中获得最佳蓝色播放列表?我们就能跟踪那里的创造。任何行动,无论多么可信或尴尬,都不会被遗漏。

我们得到了一个. json 文件,其中包含 2018 年 10 月至 12 月的事件日志数据。它由 286,500 行和 18 列组成,详细描述了客户的特征和正在执行的操作的性质。

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

不错的选择蠢朋克的歌有科林

在一些简单的数据检查和由此产生的数据清理(删除属于用户 ID 的行)之后,我们剩下 225 个客户的 278,154 行事件数据。他们一定很忙!

定义(-可能)

要建立一个预测模型,我们必须要有可以预测的东西。当且仅当客户访问了“取消确认”页面时,我们将客户定义为被搅动的。我们使用这个定义来创建一个二进制标志,它将成为我们开发的分类模型的目标变量。

请注意,在我们的定义中,有一个案例将访问“提交降级”页面的客户包括在内。然而,这些客户在那次页面事件后仍然很活跃。免费用户仍然通过广告赚 Sparkify 的钱。因此,这些客户对公司收入的威胁不如那些取消订单的客户大。

注意: 只有 52 个客户翻腾:我们的数据不平衡。因此,我们必须明智地选择用于评估基于这些数据的模型性能的指标。

你的照片(r 数据)

配备了一个目标变量,我们询问数据的预测特征,以输入到机器学习算法中。

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

按客户流失划分的性别(左)和订阅级别(右)

  • 性别:从上图可以明显看出,男性比女性更有可能取消约会。(在我的约会历史中也是如此)
  • **订阅水平:**我们可以推断,付费订阅的客户比免费会员更不容易离开。(哦,那么也许我应该让他们在约会的时候付晚餐的钱?)

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

按流失划分的平均页面浏览量:包括“下一首歌”(左),不包括“下一首歌”(右)

  • **页面浏览量:**以上数字显示了用户查看某一特定页面的平均次数。在整个数据集中,大部分活动都归因于播放下一首歌曲。其他页面上的趋势与左边的相比相形见绌,因此我们提供的数据也删除了“下一首歌”的浏览量。请注意,在“主页”、“添加朋友”、“添加到播放列表”、“下一首歌”、“竖起大拇指”和“注销”方面,活跃客户与不活跃客户之间存在显著差异

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

按流失划分的每个会话的平均歌曲数量(左);按流失划分的注册周数分布(右)

  • **每次播放的歌曲:**平均而言,顾客每次播放的歌曲较少。
  • **注册周:**活跃客户比不活跃客户的注册时间更长。

我们看到的上述一些特征并没有明确地包含在数据中。相反,我们操纵数据来创建更具预测性的客户级特征。

不要停止,直到你得到足够的(功能)

在这种情况下,我们从数据集中的现有要素为创建新要素。我总共构建了 65 个特性。这些可以大致分为:

65 功能是一个很多的能量来处理;GIF via Giphy

  • 自注册以来的时间和最近的活动
  • 订阅级别
  • 会话/交互计数
  • 主页/添加朋友/添加到播放列表/下一首歌/竖起大拇指/注销页面浏览量
  • 日/周/夜活动和活动比率
  • 最近一次活动前 1、2、3、4 周的会议/互动/现场时间
  • 与前两周相比,最后两周的活动比率。

我不会详细介绍这个特性工程是如何完成的。你可以在这篇文章附带的 GitHub repo 中找到这些乐趣。然而,有必要强调一下与 PySpark 争论数据的几个关键技巧:

  • 用户自定义函数 (UDF)允许您定义新的基于列的函数。
  • 窗口函数允许您在一组特定的行子集上定义新的基于行的函数。

以下是如何在特征工程中使用这些技术的快速入门:

#Number of days since registration
#Create window function
w1 = Window.partitionBy(‘userId’)#Create udf for calculating the difference in weeks of two timestamps
diffWeeks = udf(lambda x, y: (x-y)/604800000)#Earliest and latest timestamp variables
dfTimeStamps=withChurn.withColumn(‘tsMin’, min(‘ts’).over(w1))
dfTimeStamps=withChurn.withColumn(‘tsMax’, max(‘ts’).over(w1))#Weeks user is registered
weeksRegistered=dfTimeStamps.select(“userId”,”tsMax”,”registration”,”churn”).dropDuplicates()\
 .withColumn(“weeksRegistered”, diffWeeks(col(“tsMax”),col(“registration”)).cast(“float”))

小心 : 谨防加入!因为他们很敏感,容易发怒。在经历了太多内存不足的错误之后,我只能求助于限制连接,除非完全有必要。

在我们为建模做好准备之前,我们还有几个最后的步骤来整理我们的数据:

  • 将对应于性别和订阅级别的两个分类变量转换为数字变量。
  • 删除多余的功能。

模型

好吧,不是这种类型的建模;GIF via Giphy

PySpark ML 包有许多二进制分类器模型供我们选择。我们将训练五种不同的算法,找出性能最好的一种,然后运行超参数调整来进一步增强它。

我们将数据集分为训练(70%)和测试(30%),并创建一个训练管道(通过 pyspark.ml. 管道 ) ,它执行以下操作:

  • 收集向量列中的所有要素(使用 pyspark.ml.feature 中的 VectorAssembler 类)。因此,我们有两列:一列对应于功能,另一列对应于标签(即流失结果标志)。
  • 通过最小-最大缩放来缩放所有要素(使用 pyspark.ml.feature 中的 MinMaxScaler 类)。请注意,这意味着数据仍然保持其分布,而不是标准化。
  • 使用默认参数训练指定的分类器。
  • 计算精确度、F1 分数、精确度-回忆曲线下的面积和总训练时间。
#Create assembler and scaler for our pipeline
    #Transform features into features vector column
    assembler = VectorAssembler(inputCols=feature_cols,outputCol="featuresVector")#Scale the features    
    minmaxscaler = MinMaxScaler(inputCol="featuresVector", outputCol="scaledFeatures")#Performance metrics 
    evaluatorAcc =    MulticlassClassificationEvaluator(labelCol='churn', predictionCol='prediction', metricName='accuracy')
    evaluatorF1 = MulticlassClassificationEvaluator(labelCol='churn', predictionCol='prediction', metricName='f1')
    evaluatorAUPR = BinaryClassificationEvaluator(labelCol='churn', metricName='areaUnderPR')

#Pipeline for classifier using default parameters
    pipeline = Pipeline(stages=[assembler, minmaxscaler, learner])

下表给出了我们收集的结果:

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

初始模型结果

度量混乱:当目标变量的类别平衡时,你就可以兴致勃勃地使用准确度和基尼系数。当数据不平衡时不如此。在这种情况下,它们可能被夸大和误导。别害怕,我们的超级英雄来了!

引入 F1 得分和精确回忆曲线下面积(AUC P-R): 将这些视为不平衡人口的准确度和基尼系数等价物。

初步结果表显示,随机森林是最好的全能:F1 得分第一,AUC P-R 第一,跑得最快。毫无疑问,这个模型是我们应该继续进行超参数调整的,看看我们是否可以进一步改进它。

走开

通过 pyspark.ml.tuning 中的 ParamGridBuilder 类和 pyspark.ml.tuning 中的 CrossValidator 类,我们优化了随机森林,使用三重交叉验证来划分训练数据集,并对以下所有组合执行网格搜索迭代

  • 杂质(熵,基尼系数)
  • 最大深度 (3,4,5)
  • 最大箱数(5,10,15)
#Create assembler and scaler for our pipeline
#Transform features into features vector column
assembler = VectorAssembler(inputCols=feature_cols,outputCol="featuresVector")#Scale the features    
minmaxscaler = MinMaxScaler(inputCol="featuresVector", outputCol="scaledFeatures")#Performance metrics 
evaluatorAcc = MulticlassClassificationEvaluator(labelCol='churn', predictionCol='prediction', metricName='accuracy')
evaluatorF1 = MulticlassClassificationEvaluator(labelCol='churn', predictionCol='prediction', metricName='f1')
evaluatorAUPR = BinaryClassificationEvaluator(labelCol='churn', metricName='areaUnderPR')

#Pipeline for classifier using default parameters
pipeline = Pipeline(stages=[assembler, minmaxscaler, RF])paramGrid = ParamGridBuilder().addGrid(RF.impurity,['entropy', 'gini']) \
                              .addGrid(RF.maxDepth,[3,4,5])\
                              .addGrid(RF.maxBins,[5,10,15])\
                              .build()cv = CrossValidator(estimator=pipeline,
                    estimatorParamMaps = paramGrid, 
                    evaluator = evaluatorAUPR,
                    numFolds=3,seed = 97)

下表给出了我们收集的结果:

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

基线与优化的随机森林

我们设法提高了 F1 分数,但降低了 AUC P-r。F1 分数是在特定阈值下计算的精确度和召回率的调和平均值。精确度-召回率曲线是精确度和召回率在所有阈值之间相互作用的图形表示。我们得出的结论是,与基线随机森林相比,优化模型对于特定阈值更好,但实际上对于所有阈值都更差:它是较差的分类器!

那么,在我们的优化模型中,什么特征最具预测性呢?随机森林算法对此进行计算,并提供一个 feature_importances 属性,可以访问该属性来检索每个输入要素的相对重要性分数。下表显示了优化模型的前十名得分:

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

优化模型的 10 大特性

大体上,这些变量对应于以下内容:

  • 用户在数据集内活动的天数/周数
  • 用户活动天数/周数的比例
  • 用户注册了多长时间
  • 每次会话的平均赞数
  • 活动最后一周的平均互动次数
  • 最终活动前第三周的会议总数

经过思考,我们可以看到其中许多是高度相关的,注册的周数( weeksRegistered )和注册的天数( daysRegistered )。这些功能应该在模型开发之前就已经删除了。这让我们深入了解了构建一个好模型的迭代过程!

如果我能让时间倒流

正如我们所看到的,我们可以对我们的模型构建过程进行一些调整,将它从一个普通的 B 端轨道变成最受欢迎的专辑。

  • 探索更多行为改变特征。目前,我们有一个变量,看起来是最近两周与前两周相比的活动比率。也许在特定时间段内查看歌曲播放比率或会话计数比率有更强的预测特征。
  • 不要用厨房水槽的方法来处理模型特征。通过把所有东西都扔进模型,我们让自己暴露在异常值面前,扭曲了我们的模型。
  • 调整并再次调整:尝试更多的超参数,并绘制不同参数值下 F1 的差异。这将为您提供模型何时开始过度拟合以及最佳范围在哪里的指示。一旦你找到了那个信息,你就在那个范围内调谐。
  • 把它带到云上:我们使用的数据只是 AWS 或 IBM Watson 上的 12GB 大数据集中的 124MB。通过在 Spark 中编写所有内容,我们确保了它的可扩展性。我们可以轻松地将代码转移到 Spark 集群上运行,对于这些集群来说,大数据不是什么挑战。

那么,谁准备好复出巡演了?

如果你喜欢在这个模型构建的引擎盖下修修补补,那么请查看我在 GitHub 上的知识库:https://github.com/bev-o-neill/DSND-p7-Sparkify

感谢乐队成员 Udacity,他们提供了数据集供我们使用。

深度学习如何通过实时犯罪警报保护您的安全

原文:https://towardsdatascience.com/how-deep-learning-can-keep-you-safe-with-real-time-crime-alerts-95778aca5e8a?source=collection_archive---------41-----------------------

变更数据

使用卷积神经网络打开 911 系统

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

图片来自市民,经允许转贴

公民在美国各大城市全天 24 小时扫描数千个公共急救无线电频率。收集的信息用于向超过 500 万用户提供关于火灾、抢劫和失踪人员等事件的实时安全警报。让人们每天听 1000 多个小时的音频使公司推出新的城市非常具有挑战性。为了继续扩大规模,我们建立了能够从音频中发现关键安全事件的 ML 模型。

我们的定制软件定义无线电(SDR)可捕捉大量射频(RF ),并创建优化的音频剪辑,发送至 ML 模型以标记相关剪辑。标记的片段被发送给运营分析师,以在应用程序中创建事件,最后,事件附近的用户会收到通知。

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

图一。安全警报工作流程(图片由作者提供)

使公共语音转文本引擎适应我们的问题领域

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

图二。使用公共语音转文本引擎的剪辑分类器(图片由作者提供)

我们从基于单词错误率(WER)的最高性能的语音到文本引擎开始。有很多警察使用的特殊代码不是普通方言的一部分。例如,一名 NYPD 军官通过发送“信号 13”请求增援部队。我们使用语音上下文为我们的领域定制了词汇表。

我们还增加了一些词来适应我们的领域,例如,“攻击”不是口语中使用的,但在我们的用例中很常见。我们必须使我们的模型偏向于检测“攻击”而不是“盐”。

调整参数后,我们能够在一些城市获得合理的转录准确度。下一步是使用音频剪辑的转录数据,并找出哪些与公民相关。

基于转录和音频特征的二元分类器

我们建立了一个二元分类问题的模型,将转录作为输入,置信度作为输出。 XGBoost 在我们的数据集上给了我们最好的性能。

我们从一位曾在执法部门工作过的人那里了解到,在一些城市,关于重大事件的无线电广播之前会有特殊警报声,以引起当地警察的注意。这个额外的特性有助于使我们的模型更加可靠,尤其是在抄写错误的情况下。我们发现的其他一些有用的特性是警察频道和传输 id。

我们在运营工作流程中 A/B 测试了 ML 模型。在运行测试几天后,我们注意到仅使用模型标记剪辑的分析师创建的事件没有降级。

我们在几个城市推出了这种模式。现在,一名分析师可以同时处理多个城市,这在以前是不可能的!有了新的运营闲置产能,我们能够启动多个新城市。

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

图 3。模型推出导致分析师的音频显著减少(图片由作者提供)

超越公共语音转文本引擎

这个模型并不是解决我们所有问题的灵丹妙药。我们只能在几个音频质量好的城市使用它。公共语音转文本引擎在手机型号上进行训练,其声学特性与收音机不同;结果,转录质量有时不可靠。旧的模拟系统噪音很大,转录完全不能用。

我们尝试了来自多个提供商的多个模型,但没有一个模型是在类似于我们数据集的声学配置文件上训练的,并且不能处理嘈杂的音频。

我们探索了用根据我们的数据训练的引擎替换语音转文本引擎,同时保持管道的其余部分不变。然而,我们需要几百个小时的转录数据来制作我们的音频,这非常缓慢而且昂贵。我们可以选择优化这个过程,只转录我们的词汇表中定义的“重要”单词,并为不相关的单词添加空格——但这仍然只是工作量的逐渐减少。

最终,我们决定为我们的问题域构建一个定制的语音处理管道。

用于关键词识别的卷积神经网络

由于我们只关心关键词的存在,我们不需要找到正确的单词顺序,可以将我们的问题简化为关键词识别。这是一个更容易解决的问题!我们决定使用在我们的数据集上训练的卷积神经网络(CNN)来这样做。

在递归神经网络(RNNs)或长短期记忆(LSTM)模型上使用 CNN 意味着我们可以更快地训练和更快地迭代。我们还使用 Transformer model 进行了评估,它是大规模并行的,但需要大量硬件来运行。由于我们只是寻找音频片段之间的短期依赖性来检测单词,计算简单的 CNN 似乎是比 Transformers 更好的选择,它释放了硬件,使我们能够更积极地进行超参数调谐。

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

图 4。使用 CNN 进行关键词识别的剪辑标记模型(图片由作者提供)

我们将音频片段分成固定时长的子片段。如果一个词汇出现,我们给一个子片段一个肯定的标签。然后,如果在一个音频剪辑中发现任何这样的子剪辑,我们就将它标记为有用的。在训练过程中,我们尝试了改变子片段的持续时间如何影响我们的收敛性能。长剪辑使得模型更难判断剪辑的哪个部分是有用的,也更难调试。短剪辑意味着单词部分出现在多个剪辑中,这使得模型更难识别它们。我们能够调整这个超参数并找到一个合理的持续时间。

对于每个子片段,我们将音频转换成 MFCC 系数,并添加一阶和二阶导数。这些特征是以 25 毫秒的帧大小和 10 毫秒的步距生成的。这些特征然后被输入到一个基于 Keras 序列模型的神经网络中,该模型使用 Tensorflow 后端。第一层是高斯噪声,这使得该模型对于不同无线电信道之间的噪声差异更加鲁棒。我们尝试了一种替代方法,即人为地将真实噪声叠加到剪辑上,但这显著地减慢了训练时间,并且没有有意义的性能增益。

然后我们添加了 Conv1D、BatchNormalization 和 MaxPooling1D 的后续层。批量标准化有助于模型收敛,最大池有助于使模型对语音中的微小变化以及信道噪声更加鲁棒。此外,我们尝试添加 dropout 层,但这些并没有有意义地改善模型。最后,我们添加了一个密集连接的神经网络层,它通过 sigmoid 激活馈入单个输出密集层。

生成标记数据

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

图 5。音频剪辑的标记过程(图片由作者提供)

为了标记训练数据,我们为注释者提供了我们领域的关键字列表,并要求他们标记剪辑中的开始和结束位置,以及单词标签(如果有任何词汇出现的话)。

为了确保注释的可靠性,我们在注释器之间有 10%的重叠,并计算它们在重叠的剪辑上的表现。一旦我们有了大约 50 个小时的标记数据,我们就开始训练过程。我们在迭代训练过程的同时不断收集更多的数据。

由于我们的词汇中有些词比其他词更常见,我们的模型在常见词上有合理的表现,但在例子较少的罕见词上有困难。我们试图通过在其他剪辑中叠加单词“话语”来创建这些单词的人工示例。然而,性能的提高与实际获得这些词的标记数据并不相称。最终,随着我们的模型在常用词方面的改进,我们在未标记的音频片段上运行它,并排除了模型发现这些词的片段。这有助于我们减少未来标签中的冗余单词。

模型发布

经过几次数据收集和超参数调整的迭代,我们能够训练一个对我们的词汇具有高召回率和合理精确度的模型。高召回率对于捕捉关键安全警报非常重要。有标记的剪辑总是在发送警报之前被收听,所以误报不是一个大问题。

我们在纽约市的一些区测试了这个模型。该型号能够将音量降低 50–75%(取决于频道)。它也明显优于我们在公共语音到文本引擎上训练的模型,因为纽约市由于模拟系统而具有非常嘈杂的音频。

有点令人惊讶的是,我们随后发现该模型可以很好地转换到来自芝加哥的音频,即使该模型是根据纽约市的数据训练的。在收集了几个小时的芝加哥片段后,我们能够从纽约模式中转移学习,以在芝加哥获得合理的表现。

结论

我们带有定制深度神经网络的语音处理管道广泛适用于美国主要城市的警察音频。它从音频中发现关键的安全事件,允许 Citizen 迅速扩展到全国各地的城市,并为维护社区安全的使命服务。

选择计算简单的 CNN 架构而不是 RNN、LSTM 或 Transformer,并简化我们的标记过程是重大突破,使我们能够在很短的时间内和有限的资源下胜过公共语音到文本模型。

深度学习如何加速制药业的药物发现

原文:https://towardsdatascience.com/how-deep-learning-is-accelerating-drug-discovery-in-pharmaceuticals-83182277d0cc?source=collection_archive---------23-----------------------

深度学习为人工智能药物发现方法提供动力

在长期失望的人中有一个常见的重复,它有点像这样:“如果这是未来,我的喷气背包在哪里?”将这种对复古未来的渴望与无处不在的计算世界、可编程细胞和复兴的太空探索相提并论,粗略一查就会发现这种抱怨听起来不合时宜。对一些人来说,这种错位的怀旧未来主义可能会非常持久。这导致了一种倾向,即坚持那些事后看来古怪的预测,而忽略了无人能预测的惊人现实。然而,随着深度学习用于药物发现,我们现在能够预测更多!这在制药工业中非常重要。

应用于人工智能,具有这种行为方式的人可能会按照“AlexNet 已经过去近 8 年了,我的自动驾驶汽车/人工智能介导的乌托邦/压抑的人工智能霸主在哪里?”看起来 2010 年中期的期望确实没有实现,对下一个人工智能冬天的预测在悲观主义者中越来越流行。本文的目标是讨论在药物发现的现实世界应用中有意义的机器学习进展。我希望说服你考虑另一个古老的格言,这个来自人工智能研究人员,稍微解释一下:“人工智能只是人工智能,直到它工作,之后它只是软件。”我们将看到,几年前机器学习中的前沿基础研究,现在通常被命名为“仅仅”数据科学(甚至是分析),并在扰乱制药行业方面取得了真正的进展。药物发现的深度学习方法甚至有很大的机会改变生活,更好地为世界做有意义的好事。

生物医学成像中的计算机视觉和深度学习

几乎是科学家一接触到计算机,就有可能将图像上传到计算机上,而且几乎是在那之后,人们就开始努力对这些图像进行数字化处理。这项工作的大部分过去和现在都专注于处理生物医学图像,如 X 射线、超声波和 MRI 数据。在“优秀的老式人工智能”时代,这通常意味着对边缘和亮度等简单特征的手工逻辑陈述。在 20 世纪 80 年代,有一个向整合监督学习算法的转变,但这些仍然依赖于手工设计的功能。简单的监督学习模型(例如线性回归或多项式拟合)将对通过诸如 SIFT(尺度不变特征变换)和 HOG(梯度方向直方图)等算法提取的特征进行训练。但是,几十年前就已经调查了将导致实用深度学习的发展,这应该不足为奇。卷积神经网络首次应用于生物医学图像是在 1995 年,当时 Lo 等人 推出了一种用于检测肺部 X 射线中癌结节的模型。他们的方法与我们今天已经习惯的方法略有不同,推理需要大约 15 秒,但概念本质上是相同的,通过反向传播一直到卷积核来完成训练。罗等人使用的模型有两个隐藏层,而当今流行的深度网络架构通常有一百个或更多。

快进到 2012 年:随着 AlexNet 的出现,conv 网大受欢迎,在现在著名的 ImageNet 数据集上产生了性能上的重大飞跃。AlexNet 是一个 conv 网络,具有 5 个卷积层和 3 个在游戏 GPU 上训练的密集连接层,它的成功在机器学习领域非常有名,以至于人们谈论 ML 和 AI 的不同利基的“ImageNet moments”。比如,“随着 2018 年超大型变压器模型的发展,自然语言处理可能已经有了它的 ImageNet 时刻”,或者“强化学习仍在等待它的 ImageNet 时刻。”自 AlexNet 开发以来已经过去了近十年,我们在深度学习计算机视觉模型方面已经有了大量的增量改进。除了分类之外,应用已经扩展到通常包括分割、深度估计和场景重建以及许多其他用途。围绕生物医学图像分析的深度学习的热潮的一个副作用是噪音不可避免的增加。2019 年发表的~ 17000 篇深度学习论文并不是每一篇都值得一读。许多结果可能会过度拟合他们的小数据集,并且没有多少对正在研究的基础科学或机器学习做出实质性贡献。但是,之前对机器学习毫无兴趣的学术研究人员对深度学习的狂热揭示了一个重要的现实。深度学习可以做经典计算机视觉算法可以做的任何事情(参见 Cybenko 和 Hornik 的通用逼近定理),它通常可以更快更好地做到这一点,同时减少与每个新应用相关的繁琐的人工工程工作。

抗击被忽视疾病的难得机会

这就把我们带到了今天的话题——药物研发,一个需要大换血的行业。制药公司和他们雇佣的人很快提醒我们将一种新药推向市场的巨大成本。这些成本很大程度上是由于许多药物进入了研发管道,并在被丢弃前停留了一段时间。行业估计开发一种新药的成本可能高达 25 亿美元或更多,尽管这个数字可能在很大程度上受到行业报告高成本的激励的影响,以证明其产品的溢价。在任何情况下,由于这种高成本和相对较低的回报率,像抗生素类药物的基本工作被降低了优先级

这也意味着被恰当命名为被忽视疾病类别的疾病,包括不成比例的被认为治疗无利可图的热带疾病和发病率低的罕见疾病。尽管患每种疾病的人数相对较少,但患这种或那种罕见疾病的总人数却相当高。据估计,全世界患有罕见疾病的人数约为 3 亿。但是,由于令人沮丧的预测,即使这个数字也可能是低的:大约 30%患有罕见疾病的人永远活不到五岁。

罕见疾病的【长尾】代表着改善大量生命的实质性机会,机器学习和大数据工程很乐意介入。制药行业对这些罕见疾病的盲点,特别是没有 FDA 批准的治疗方法的孤儿疾病,为生物学家和机器学习开发者的创新小团队提供了立足之地。考虑到大型制药公司雇佣的数据科学家的数量,用一个小团队建立真正新颖的东西需要找到一个阴影点,以更好地避免更多规避风险的既定实体的饥饿的眼睛。

犹他州盐湖城的一家这样的初创公司正在尝试这样做。 Recursion Pharmaceuticals 将缺乏针对被忽视疾病的有意义药物开发视为制药行业的空白,以推动全新工作流程的发展。基于自动化高通量显微镜和机器学习,他们通过机器人显微镜和液体处理产生大量新数据。深度神经网络的泛化和灵活性利用产生的海量数据在实验噪音中揭示疾病/治疗表型。截至 2019 年底,他们已经从的数千次实验中产生了超过 4pb 的数据。他们打包了他们为 NeurIps 2019 竞赛赛道制作的一小部分数据,你可以从的 RxRx 网站下载(46 GB)数据集来自己玩。

本文描述的工作流程很大程度上是基于 Recursion Pharmaceuticals 的白皮书【pdf】中的信息,但这种方法没有理由不能作为传统制药公司未能取得进展的其他领域的灵感。事实上,这一领域的其他初创公司包括专注于衰老相关疾病的 Bioage 实验室、致力于癌症的著名实验室,以及专注于各种缺乏治疗选择的疾病的 TwoXAR。这些公司往往是年轻的初创公司,拥有新生的数据管道,他们在其感兴趣的领域采用各种各样的机器学习技术,除了或取代我们今天将讨论的计算机视觉深度学习。

我们将主要关注递归领导的方法,因为他们非常依赖图像模型,他们自 2013 年以来一直存在,他们已经发布了大量关于他们方法的信息,并且他们已经开始产生有希望的结果。我将描述图像分析过程,以及深度学习如何从高层次融入罕见疾病药物发现的工作流程,这些经验教训可以应用于药物发现的其他各种领域。例如,该工作流程可以很容易地通过对肿瘤细胞形态的影响来筛选癌症药物,甚至可以确定单个患者的细胞对一组药物选项的反应。该方法借鉴了非线性 PCA 、语义哈希【pdf】和传统的 conv 网络图像分类的概念。

噪声形态学分类

生物很乱。这在高通量、高含量的显微镜检查中显而易见,也是细胞生物学家经常遇到的难题。任何给定实验产生的图像可能会因批次不同而有很大差异。温度、暴露时间、试剂批次等的波动都可能产生与所研究的表型或候选药物化合物的效果无关的误导性变化。实验室的气候控制在夏天和冬天表现不同吗?有人在午餐时将含有细胞的 96 孔板放在外面,然后放在显微镜上吗?有人换了一种培养基成分的供应商吗?供应商是否更换了自己的供应商?可能导致实验差异的变量数量是巨大的。在数据驱动的药物发现中,跟踪和分离非实验性扰动(也称为非预期噪声)的影响是一个主要挑战。

从一个实验到下一个实验,显微镜图像可能会有很大的不同。图像亮度、细胞形状、细胞器形状和许多其他特征会由于相关的生理效应或随机实验噪声而变化。本文顶部面板中的图像均来自斯科特·威尔金森和亚当·马库斯拍摄的转移性癌细胞的同一张公共域显微照片。强度和形态的变化代表了实验噪声,并且是使用图像处理扭曲创建的。这些是人们可能用来在分类任务中正则化深度神经网络的相同类型的增强,因此毫不奇怪,给定大数据集的大模型的泛化能力是在噪音海洋中揭示生理上有意义的差异的逻辑选择。

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

噪声强度变化中代表治疗效果和副作用的变化。

罕见疾病的潜在原因通常是基因突变。为了建立模型来发现这些疾病的治疗方法,了解大范围突变的影响以及由此产生的表型的相关性是有帮助的。比较特定罕见疾病的候选治疗方法受益于对数千种不同突变的库的训练,这些突变可以通过使用小干扰 RNA (siRNA)敲低基因表达来模仿。这有点像初学走路的孩子抓住你的脚踝:即使你能跑得很快,如果你的侄女或侄子每条腿都挂着,你的效率会低得多。siRNA 的工作方式非常相似,干扰 RNA 的小序列粘附在特定基因的信使 RNA 的匹配片段上,阻止这些基因完全表达。

通过对成千上万的突变而不是特定疾病的单一细胞模型进行训练,神经网络可以学习在高维潜在空间中对表型进行编码。由此产生的代码允许评估药物使疾病表型更接近健康表型的能力,每个表型由一组多维坐标表示。同样,药物副作用可以嵌入编码的表型表示中,并且不仅可以根据减少疾病症状,还可以根据有害副作用的最小化来评估药物。

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

表示对疾病细胞模型(用红点表示)治疗效果的图表,将编码的表型向健康表型(蓝点)靠拢。这是一个多维潜在空间中表型编码的简化三维表示。

用于此工作流的深度学习模型将与其他大型数据集的分类任务非常相似,尽管如果您习惯于处理少量类别,如 CIFAR-10 和 CIFAR-100 数据集,数以千计的不同分类标签将需要一些时间来适应。除此之外,这种基于图像的药物发现将很好地与具有大约一百层的相同类型的基于深度 DenseNet 或 ResNet 的架构一起工作,这可能在像 ImageNet 这样的数据集上获得最先进的性能。通过将这些层之一的激活值作为表型的高维编码,可以通过在编码空间中的位移来分析疾病病理以及治疗、副作用和其他痛苦之间的关系。这种表型编码可以进行定制的正则化(例如最小化不同激活的协方差)以减少编码相关性或用于其他需要的目的。下图是一个简化的示例模型,黑色箭头表示卷积+池化操作,蓝色线条表示密集连接,为了清晰起见,减少了层数(没有显示剩余连接)。

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

用于药物发现的深度学习模型的简化图示

深度学习在药物研发和制药行业的未来

将一种新药推向市场的巨大成本导致制药公司忽视了对严重疾病所需药物的发现和开发,而青睐畅销药物。初创公司中规模较小、精通数据的团队更有能力在这一领域开发新的创新,而被忽视和罕见的疾病提供了一个机会,可以借此获得一只脚,并在数据驱动的管道中展示机器学习的价值。这种方法的价值证明体现在实质性进展和已经进入第一阶段临床试验的几种药物上,这些成就是由 Recursion Pharmaceuticals 等公司的数百名科学家和工程师团队取得的。其他初创公司紧随其后:TwoXAR 有几种候选药物正在通过其他疾病类别的临床前试验。

可以预计,用于药物开发的深度学习计算机视觉方法将对大型制药公司和医疗保健产生重大影响。我们应该很快就会在针对普遍疾病(包括像心脏病和糖尿病这样的现代生活方式疾病)的新疗法的开发中看到这种影响,以及在治疗迄今为止被搁置一旁的疾病方面急需的进展。

假技术会变得比核武器更危险

原文:https://towardsdatascience.com/how-deepfake-technology-can-become-more-dangerous-than-a-nuclear-weapon-9d9e6723ea13?source=collection_archive---------25-----------------------

以及为什么我们应该认真对待这项技术

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

https://images.app.goo.gl/mBRyJxxBq1bHFooN7

“当权者不必再压制信息。他们现在可以向我们灌输太多,没有办法知道什么是真实的,什么不是。随着深度造假技术的发展,成为知情公众的能力只会越来越差。”安德鲁·施雷克

我们都听过唐纳德·特朗普把一些电视台称为“假新闻”,我们不应该听他们的。一半人相信他,另一半人不相信。

事实是,我们真的不知道该相信我们在电视或互联网上看到的东西。界限已经变得模糊,每个人都有自己的议程,他们希望观众看到什么。

如果你看了一段视频或看到一张照片,上面是你所爱的和信任的人,比如某个名人或竞选美国总统的人做了或说了一些可怕的事情,会怎么样?

你对这个人的看法会改变吗?你打赌你的屁股会。

现在你不知道这是一个假视频,也不知道这个人真的没有做任何事情。但是你的眼睛欺骗了你,你相信你所看到的。

该视频是由某人使用 deepfake 技术创建的,在该技术中,视频被操纵以对该人造成伤害。

那么,deepfake 到底是什么?让我们来看看。

什么是 Deepfake?

Deepfake 是人们利用神经网络创建看起来和听起来像真东西的假视频或音频记录的技术。他们制作这些视频是为了开玩笑,让名人陷入尴尬的境地,比如有一张名人拍色情照片,或者有政客说一些他们通常不会说的话。

这开始于 1997 年左右的视频重写项目中的计算机视觉领域的学术研究。它修改了一个人说话的现有视频片段,描述了在不同的音轨中说话的嘴。该项目使用机器学习技术在受试者发出的声音和受试者面部形状之间建立联系。

Reddit 的业余用户发现了这一点,开始制作名人头像出现在其他人身上的搞笑视频。deepfake 一词是由 Reddit 上的一个同名社区创造的,该社区互相交换幽默图片和视频。

既然你知道 deepfake 是什么,让我们来看看它是如何工作的。

它是如何工作的?

这项技术使用了生成式对抗网络(GANs),其中两个机器学习模型一决雌雄。第一个模型在数据集上训练,然后创建视频伪造,而另一个模型试图检测伪造。这样继续下去,直到第二个模型不能检测到第一个模型中的假货。训练数据集越大,就越容易创建一个非常可信的 deepfake 来愚弄人们。

来自斯坦福大学、普林斯顿大学、马克斯·普朗克信息学研究所和 Adobe Research 的研究人员进行了一些测试,以显示操纵和编辑这些视频和图片是多么容易。科学家们结合了多种技术来制作视频赝品,并测试其简单程度。

首先,他们扫描目标视频,分离出构成受试者说话的声音。然后他们将这些声音与伴随每个声音的面部表情相匹配。最后,他们创建了受试者脸部下半部分的 3D 模型。

当其中一名科学家编辑视频的文本时,该软件将上述三个步骤中收集的所有信息结合起来,构建新的镜头,以匹配输入的文本。然后将其复制到源视频上,以创建最终结果。

我们正处于这项技术的早期阶段,该软件的功能还存在一些限制。但是有一些网站运行他们自己版本的软件,公众可以使用和玩。

在有人受伤之前,这总是有趣的游戏

这是我母亲过去经常对我说的话,我会和朋友们一起胡闹,我们中的一个开始变得疯狂。这是乐趣变得咄咄逼人和脾气爆发的地方。

任何新技术在开始时都是有趣和令人愉快的,当每个人都在用它逗别人笑的时候。但迟早,错误的人会试图找出一种方法来使用这个闪亮的新玩具来执行不良行为。历史告诉我们,这是不可避免的。

Deepfake 是新出现的,仍处于起步阶段,更多的是人们的爱好。但在未来几年,当更好的技术出现,有人发现如何制造这种邪恶时,它可能对我们所有人都具有潜在的破坏性。

你能想象有人发布一个深度伪造的视频,描述美国总统说一场大规模的核攻击正在进行中,或者一种不可阻挡的计算机病毒抢走了我们所有的钱,或者一种不治之症的爆发威胁着毁灭人类吗?

整个国家都会陷入巨大的恐慌,我们也不知道该怎么办。当人们试图逃离这个国家寻找安全避难所时,骚乱和抢劫就会发生。

结论

到目前为止,deepfakes 是一个有趣的新玩具,供人们玩,也是一个令人讨厌的东西。他们可以把布拉德·皮特的头像贴在一个拍摄色情片的演员身上,或者贴在乔·拜登说了一些不利于他竞选的话上。这些视频很容易被发现,并告诉他们是假的。

但是随着这项技术的成熟,如果错误的人掌握了它,后果可能是灾难性的。参议员马尔科·卢比奥称之为现代版,他说:“在过去,如果你想威胁美国,你需要 10 艘航空母舰、核导弹和远程导弹。今天,你只需要进入我们的互联网系统,我们的银行系统,我们的电网和基础设施,而且越来越多地,你需要的是制作一个非常逼真的假视频的能力,这可能会破坏我们的选举,这可能会使我们的国家陷入巨大的内部危机,并深深削弱我们。”

无论 deepfake 视频会有什么样的结果,我们都应该对它在未来的应用保持警惕。这项技术可能对我们美国人造成的潜在灾难是我们可能永远也不会看到的。

DeepMind 的虚幻算法解释

原文:https://towardsdatascience.com/how-deepminds-unreal-agent-performed-9-times-better-than-experts-on-atari-9c6ee538404e?source=collection_archive---------44-----------------------

最佳深度强化学习

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

凯文·Ku 在 Unsplash 上的照片

概观

深度学习和强化学习的结合为人工智能带来了大量机会。然而,稀疏的奖励环境一直是强化学习研究者长期研究的挑战。更新无信息奖励信号的参数通常会使学习收敛到次优策略。

DeepMind 的无监督强化和辅助学习(UNREAL)代理采取了一种独特的方法来解决这个问题。它使用辅助任务和伪奖励来自主选择环境中与实现其目标最相关的特征。

在这里,我们概述了 DeepMind 的新虚幻代理及其与其他最先进的算法相比的性能。

虚幻是如何工作的?

使用 A3C

虚幻的核心代理使用异步优势行动者-批评家(A3C)来优化其策略和价值函数。快速回顾一下 A3C, Arthur Juliani 在这里有一段精彩的介绍:

[## 使用 Tensorflow 的简单强化学习第 8 部分:异步行动者-批评家代理(A3C)

在本文中,我想提供一个教程,介绍如何在…

medium.com](https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part-8-asynchronous-actor-critic-agents-a3c-c88f72a5e9f2)

我们可以将 A3C 损失定义如下:

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

A3C 损失:价值损失,政策损失,熵正则化

建筑

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

虚幻建筑(贾德伯格,2016)

我们将逐步了解虚幻建筑的不同部分:

  1. **基础 A3C 代理:**使用 A3C 的策略上的训练来更新代理的策略和值函数的组件
  2. **辅助控制任务:**用户预设的额外任务,针对特定行为给予代理人伪奖励
  3. **辅助奖励任务:**帮助从环境中提取相关特征的附加奖励预测任务
  4. **价值函数回放:**价值函数附加非政策培训

输入是传入卷积层并输入 LSTM 的图像。需要注意的一件重要事情是,四个组件中的每一个都使用相同的 T21 卷积网络和 LSTM 层。例如,名为“像素控制”的辅助控制任务与“基础 A3C 代理”共享这两个层

通过让这些任务与主 A3C 策略共享参数,代理能够从环境中提取有意义的信息,而无需直接向其目标优化。

这种直觉在以后会很有用!

因为我们假设之前了解 A3C,所以让我们深入到架构的后三个部分。请记住,当架构的其他部分同时被训练时, A3C 仍然在后台使用策略更新(跨环境的几个实例)来优化它的策略和值功能。

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

Unsplash科学高清摄影

辅助控制任务

我们可以将辅助任务视为“支线任务”虽然他们不直接帮助实现总体目标,但他们帮助代理了解环境动态并提取相关信息。反过来,这有助于代理了解如何实现所需的整体最终状态。我们也可以把它们看作是代理交互的额外的伪回报函数。

总的来说,目标是最大化两项之和:

  1. 预期累积外在奖励
  2. 辅助奖励的预期累计金额

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

总体最大化目标

其中上标 c 表示辅助控制任务奖励。以下是 UNREAL 使用的两个控制任务:

  • **像素变化(像素控制)😗*代理试图最大化像素值的变化,因为这些变化通常对应于重要事件。
  • **网络特征(特征控制)😗*代理试图最大化激活给定层中的所有单元。这可以迫使策略和价值网络提取更多与任务相关的高级信息。

关于如何定义和学习这些任务的更多细节,请随意浏览本文[1]。现在,只需要知道代理试图找到精确的 Q 值函数来最好地完成这些辅助任务,使用用户定义的辅助奖励。

好的,太好了!现在我们只需将外部和辅助奖励相加,然后使用总和作为新定义的奖励来运行 A3C!对吗?

聪明有多不真实

实际上,虚幻做了一些不同的事情。它不是训练一个单一策略 来优化这个奖励,而是在基础 A3C 策略 之上为每个任务训练一个策略。虽然所有辅助任务策略与基础 A3C 代理共享一些网络组件,但是它们每个也添加单独的组件来定义单独的策略。

例如,“像素控制”任务在共享卷积网络和 LSTM 之后有一个解卷积网络。输出定义了像素控制策略的 Q 值。(有关实现的详细信息,请浏览[1])

每个策略都优化了 n 步 Q 学习损失:

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

使用 N 步 Q 的辅助控制损失

更令人惊讶的是,**我们从来没有明确地使用这些辅助控制任务策略。**即使我们发现哪些动作优化了每个辅助任务,我们也只在环境中使用基础 A3C 代理的动作。那么,你可能会想,所有这些辅助训练都是徒劳的!

不完全是。关键是 A3C 代理和辅助控制任务之间有架构的共享部分!当我们优化辅助任务的策略时,我们会更改基本代理也使用的参数。我喜欢称之为“推动效应”

更新共享组件不仅有助于学习辅助任务,还能更好地装备代理,通过从环境中提取相关信息来解决整体问题。

换句话说,与不使用辅助任务相比,我们从环境中获得了更多的信息。

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

照片由马库斯·斯皮斯克Unsplash 拍摄

辅助奖励任务

就像任何 RL 问题一样,一个代理人必须识别导致更高回报的状态。当然,这就是我们的价值函数的目的,对吗?

这是它变得毛茸茸的地方。我们有两个问题:

  • 奖励稀少的环境使得价值函数训练变得困难,因为代理人提取有价值信息的能力降低
  • 我们不能简单地过度采样高回报重播过渡,因为这将使我们的价值网络过饱和

于是,虚幻使用了一个叫做奖励预测的辅助奖励任务。给定代理先前观察到的一系列状态,代理试图预测即时奖励。

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

用于预测奖励的状态序列

但是,类似于辅助控制策略,**我们在任何地方都不显式使用这些预测奖励!**注意奖励预测模块如何使用与基础 A3C 代理相同的卷积网络。然后,该输入被连接并通过完全连接的层。在实践中,UNREAL 通过将预测分为三类来使用交叉熵损失:负面、零和正面。

代理只学习奖励预测来形成用于特征选择的基本 A3C 参数。

随着代理学会正确预测这些奖励,它会自然地挑选出对预期未来奖励重要的特征。这有助于基础 A3C 代理学习。

此外,当训练奖励预测时,我们可以**将采样从经验回放倾斜到具有高奖励的过渡,而不会使价值网络过饱和。**在实践中,不真实的样本使得非零回报的概率为 50%。

结果,我们有效地解决了上面的两个障碍:

  • 我们可以高回报地对过渡进行过采样,而不会受到之前的影响
  • 不管环境有多稀疏,我们都可以从环境中提取信息

最后,我们注意到 LSTM 是如何不被用于奖励预测的。相反,我们只使用原始卷积网络输出。想法?我们只想要即时的信息来估计即时的回报。我们不会看过去太远,也不会看未来太远。

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

李·坎贝尔Unsplash 上拍摄的照片

体验回放?但是……为什么呢?

我们已经使用经验重放进行辅助奖励任务更新,但是我们能在其他地方应用经验重放抽样吗?LSTM 让这变得困难。当我们有一个隐藏状态时,在更新网络参数后,存储该隐藏状态变得无关紧要。

有趣的是,UNREAL 在其价值网络的 A3C 政策学习之上进行政策外学习**。对于这种偏离策略的学习,我们忽略使用存储的隐藏状态,并假设连续样本中的第一个状态开始一个情节。这提高了鲁棒性,因为这改变了我们的代理人遇到的体验。**

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

n 步值重放损失

但是,我们为什么要这样做呢?

我们可以把 RNN 想象成一个随时间推移的滑动窗口。它考虑到了某一段时间和观察结果。然而,如果我们将代理放入一个没有先前观察的任意起始状态,它可以完全利用奖励预测任务发现的新特征,而不是利用隐藏状态中的过去观察。

把所有的放在一起

整体优化损失如下所示:

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

为虚幻代理优化的总损失

其中每个损失被加权。

有希望的结果

虚幻击败了许多强有力的竞争者,包括 A3C 和优先决斗 DQN。在 57 场 Atari 游戏后,它的表现比人类的正常表现好 880%。

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

虚幻的,带有回报预测和价值重放的 A3C,A3C(贾德伯格,2016)

虚幻也在迷宫中与这些代理人对抗。事实证明,它比其他方法更具数据效率。事实上,在其中一个环境中,虚幻代理使用了大约 10%的数据来达到 A3C 性能。这是一个显著的减少。

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

迷宫结果比较(贾德伯格,2016 年)

当然,这篇论文[1]发表于 2016 年。因此,几乎可以保证,更多最先进的算法比虚幻的算法表现得更好。然而,特别是这个代理,为奖励稀少的环境中的深度强化学习代理开辟了一条奇妙的途径。

就是这样!

这就结束了对 DeepMind 的虚幻代理的概述,以及为什么它是一种解决 RL 问题的令人难以置信的健壮方法。有关该算法的更详细的概述,请随意查看下面的论文或查看 DeepMind 的官方网站:

[## 无监督辅助任务的强化学习

我们在 DeepMind 的主要任务是推动人工智能的边界,开发可以学习解决任何问题的程序…

deepmind.com](https://deepmind.com/blog/article/reinforcement-learning-unsupervised-auxiliary-tasks)

参考

[1] M. Jaderberg,V. Mnih,W. Czarnecki,T. Schaul,j .雷博,D. Silver,K. Kavukkcuoglu,无监督辅助任务的强化学习 (2016)。

从经典到最新,这里有讨论多代理和单代理强化学习的相关文章:

[## OpenAI 的 MADDPG 算法

多主体 RL 问题的行动者批评方法

towardsdatascience.com](/openais-multi-agent-deep-deterministic-policy-gradients-maddpg-9d2dad34c82) [## 分层强化学习:封建网络

让电脑看到更大的画面

towardsdatascience.co](/hierarchical-reinforcement-learning-feudal-networks-44e2657526d7)

我如何通过 AWS 云从业者考试

原文:https://towardsdatascience.com/how-did-a-15-year-old-pass-the-aws-cloud-practioner-exam-6317ce6e609f?source=collection_archive---------18-----------------------

一个 15 岁的孩子为什么要写这个考试?

亚马逊网络服务云从业者考试是一项面向“具备有效展示对 AWS 云的整体理解所必需的知识和技能的个人的考试,独立于其他 AWS 认证所涉及的特定技术角色。”对我来说,最初,我对隔离感到厌倦,想接受挑战。我一直热爱技术和机器学习,所以这是一个完美的目标。但除此之外,我想获得这个认证,因为我想为我的未来积累经验,我发现它很迷人。各种各样的服务和每种服务都有许多独特的用例,它们相互交织在一起,创建了这个庞大的系统,能够完成一些令人震惊的事情。

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

马库斯·温克勒Unsplash 上拍摄

我用来学习的资源

网上有很多很好的资源,你可以用来为这次考试做准备,但我会提供一些我认为最有用、最有帮助的课程。一、《AWS 认证云从业者考试培训 2020》由 Neal Davis 在 Udemy 上完美总结了你需要知道的一切。但我喜欢这门课的是戴维斯如何用极其简单的术语解释一切。然而,虽然它很简单,但仍然足够深入,涵盖了您需要了解的所有内容。作为一个之前没有 AWS 经验的青少年,当他以直截了当的方式极其详细地解释一切时,我发现这非常有益和方便。完成这个课程后,我在 Udemy 上参加了 Neal Davis 的“AWS 认证云从业者 500 练习试题”。我想说,这门特定的课程及其练习题是帮助我通过考试的最重要的事情之一,因为这 500 套练习题中出现的许多问题也会出现在实际考试中,这无疑使考试变得容易得多!在意识到尼尔·戴维斯的课程最适合我之前,我经常从一门课程跳到另一门课程,这实际上非常有益,因为有时戴维斯解释事情的方式对我来说没有意义,所以我会看看其他讲师会如何解释。因此,如果需要的话,下面是几门值得简要浏览的课程。

[## AWS 认证云从业者 2020(认证课程)

Zeal 是 Udemy 著名的高级讲师之一。Zeal 主要作为云安全顾问工作,并帮助…

www.udemy.com](https://www.udemy.com/course/aws-certified-cloud-practitioner/)

[## [新]终极 AWS 认证云从业者- 2020 年

夏羽是一名解决方案架构师、顾问和软件开发人员,他对所有事物都有特殊的兴趣…

www.udemy.com](https://www.udemy.com/course/aws-certified-cloud-practitioner-new/)

除了这些课程之外,我还使用了多个 YouTube 视频和媒体文章来更深入地理解某个主题。我肯定会推荐一本名为“令人敬畏的云”的书,就在 medium 上。

[## 令人敬畏的云

了解云计算更多信息的地方

medium.com](https://medium.com/awesome-cloud)

他们有几十篇比较服务的内容丰富的文章,因为我经常很难找到一些类似服务之间的差异,然而这份出版物从未能消除我所有的疑虑。此外,我也强烈推荐云专家的出版物,其中有大量深入介绍所有服务和主题的文章。

[## 云专家

来自我们云计算社区的故事

read.acloud.guru](https://read.acloud.guru)

最后,一个常见但确实非常有效的建议是, AWS 白皮书和指南,如果有什么的话,我建议你至少看一下 AWS 提供的自由练习题,因为它是与你将得到的实际测试相似的问题的最接近的表示。如果没有别的,一定要看看下面我附上的一些白皮书,我认为它们是最有益的。

所有服务概述—

[## 亚马逊网络服务概述

AWS 云提供广泛的基础设施服务,如计算能力、存储选项、网络…

docs.aws.amazon.com](https://docs.aws.amazon.com/whitepapers/latest/aws-overview/introduction.html?did=wp_card&trk=wp_card)

Aws 定价信息—

[## AWS 定价的工作原理

亚马逊网络服务(AWS)帮助您更快地行动,降低 IT 成本,并通过广泛的全球…

docs.aws.amazon.com](https://docs.aws.amazon.com/whitepapers/latest/how-aws-pricing-works/welcome.html?did=wp_card&trk=wp_card)

架构良好的框架—

[## AWS 架构良好的框架

AWS 架构良好的框架有助于您理解在构建系统时所做决策的利弊…

docs.aws.amazon.com](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html?did=wp_card&trk=wp_card)

我学习了多长时间/学习计划

如前所述,我接受了挑战,在六月初的检疫期间学习并通过了这个考试,并有一个目标是在八月获得认证,这样我就有两个月的时间来学习。虽然看起来时间很长,但不要忘记还有很多服务需要深入了解。总的来说,我每天学习大约 2-3 个小时,然而,我经常短暂休息,让我的大脑从吸收如此多的知识中得到休息。从个人经验来说,有些时候,坐着听完讲座/视频可能会觉得非常无聊和乏味,所以我的建议是跳过这一步,根本不要考虑 AWS。把你的热情和时间留到你感觉有动力并准备好沉浸在呈现给你的大量信息中的那一天。

提示和技巧

现在,对于大多数人来说,作为一个 15 岁就获得认证的人,我有什么通过考试的秘诀吗?

  • 嗯,首先,作为一名高中学生,盲目地记忆信息,并在我的大脑中将一条信息与另一条信息联系起来,时间只够通过考试,这是我的专长,我相信大多数学生都有同感。然而,对于具体的考试,我会建议你做完全相反的事情,而不是仅仅播放讲座,听老师像背景音乐一样说话,积极参与到课程中。
  • 当我说如果你选择盲目地观看视频而不做笔记或练习测验,你将记不住老师刚才说的任何东西时,我可能是也可能不是从个人经验来说的。通过这次考试,你真正理解所有的服务和它们的真实使用情况是非常重要的,因为这次考试不是简单地检查你是否知道每个服务做什么,而是你是否知道在什么情况下什么服务最适合。
  • 虽然我个人在学习时没有做笔记,但我确实写下了我在观看视频时的任何问题,我后来会通过 YouTube 视频和文章找到这些问题的答案。然而,如果我能回到过去,改变我准备这次考试的方式,那就是记笔记。因为虽然通过考试不是完全强制性的,但在考试前的最后几天,拥有一份所有信息都以有组织的方式整齐汇编的文档将会非常有利,因为你会简要地复习你所知道的一切。
  • 另一个有益的提示是,也许没有多少人想这么做,那就是把你学到的东西重新教给另一个家庭成员或朋友。举个例子,如果我刚学了某个题目,以为自己真的懂了,我就把家人召集起来,像导师一样给他们讲解我学的东西,把它真正灌输到我的记忆里。通常,在这样做的过程中,他们会问一些后续的问题,我会意识到也许我对此还不够了解,这将促使我回去真正地完全了解它。这种通过教学学习的技巧被称为“被保护人效应”,许多研究表明,

“花时间教授他们所学知识的学生比只花相同时间重新学习的学生表现出更好的理解和知识记忆”。(克里斯蒂安·贾勒特

结论

总之,我当然会建议不管你的年龄,都要写这个考试。我认为拥有这个证书对未来是非常有益的,你将会学到大量有趣的信息。使用我上面提供的技巧、窍门、链接和资源将会极大地帮助你在准备考试的时候更加自信。对于像我一样年轻的人来说,请记住,一个人可以参加这个考试的最小年龄是 13 岁,这表明年龄只不过是一个数字,当你专心做某事时,你能够拥有和获得的知识是无限的。不要让你的年龄成为成就非凡的障碍,年龄只是一个心态问题。我希望这个博客能帮助你通过 AWS 云从业者考试,如果你有任何问题或需要帮助,请不要犹豫,通过 Linkedin 联系我或在下面留下评论!

我的认证—

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

我是如何转行从事数据分析的?

原文:https://towardsdatascience.com/how-did-i-change-my-career-to-data-analytics-7e52d75e39f5?source=collection_archive---------19-----------------------

作为职业转换旅程的故事。从采购专业人员到数据分析师。

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

伊恩·施耐德在 Unsplash 上拍摄的照片

经过六个月的计划、培训和准备,我最近在新冠肺炎期间开始了我作为一名数据分析师的新职业旅程。我想在这里分享我的旅程和经历,给那些想走较少选择的道路的人。

#背景:

作为一家快速消费品公司的采购专业人士,过去五年,我决定在 2019 年底改变职业生涯。我的目标是在 IT 行业找到一份与数据科学相关的工作。我没想到这种变化会在一夜之间发生,六到九个月是一个很好的估计。我也做好了应对财务压力的准备,这意味着六到九个月的零收入。

#策划:

在当时,这似乎是一个雄心勃勃的目标,也令人生畏。但是,和所有其他雄心勃勃的目标一样,它可以被分解成小步骤。制定计划有助于你始终保持一个清晰的目标和正确的后续步骤。

第一步也是最重要的一步是了解目标职业和行业。这有助于我发现我目前的状态和理想状态之间在经验和技能方面的差距。

在就业市场上,雇主通常既看重经验也看重技能。虽然经验是随着时间积累的,但技能可以在相对较短的时间内学会并掌握。对于数据科学职位,一般技能要求是机器学习模型、数学和统计学以及编程方面的知识。我以前有数学和统计知识,需要获得像 Python 或 SQL 的编程技能。

因此,我开始搜索适合我获得这些技能的教育或培训信息。自学(比如在线 MOOC)是一种选择,但我没有这么做。在我看来,这种方式成本低,但效率低,因为自学需要高度的自律才能有成效。然而,职业培训需要全日制出勤和财政压力,如前所述。兼职培训计划将是最好的两个世界,但我没有找到一个合适的。

一旦我确定了我在培训中的位置,我就辞去了上一份工作,因为它要求全勤。

#训练和准备:

我选择了新加坡的 Metis 项目。该课程兼顾了课堂培训和项目经验。三个月来,我每天都接受充分的挑战,学习新技能。培训快结束时,我开始申请公司,贪婪地寻找工作机会,这样我就可以在培训结束后尽快找到工作。

不幸的是,就在我的训练结束时,世界被新冠肺炎袭击了。市场上的工作在登广告后很快就被收回了。我接到了电话和面试,但由于疫情的情况,许多职位最终都被取消了。鉴于危机,我不得不不断延长预期的就业时间以及调整我对工作范围和薪水的预期等。

在过去的三个月里,在我寄出的 70 多份简历中,有 12 份通过了第一轮面试或技术测试。其中 6 人进入了下一阶段或最后阶段。最后,尽管疫情的情况,我还是收到了一份邀请。

#建议:

最后,我想分享一些给那些想改变职业的人的建议。

  1. 计划周密,但有时靠运气。

规划始于明确具体的目标。早在你开始计划的时候就了解你的目标行业和目标岗位。具体说明角色和行业,并开始阅读相关资料。您可以计划几种情况。

那么信息收集会有所帮助。你获得的信息越多,你就能更好地做出明智的决定。例如,LinkedIn 是一个很好的起点,但它可能不会提供市场上的所有机会。你可能需要反复核对几个招聘广告,这样你就不会错过你理想的工作。网络和关系是另一个很好的信息来源,你需要它来进行公司文化调查和推荐。

然而,生活充满了惊喜,有时黑天鹅事件。时刻做好准备,这样你才能勇敢地拥抱生活的不确定性。勇气是让你拥抱困难,不断调整你的目标和计划。

2。准备,准备,准备。

我再怎么强调准备的重要性也不为过。这是我过去六个月做的主要事情。意思是在短时间内学会新技能。这也意味着一遍又一遍地练习新学到的技能。

对于新的技能,当你觉得在某个特定领域没有什么需要练习或学习的时候,你可以停止练习。然而,这通常是一种很难达到的状态,因为你学得越多,你就越知道自己不知道的东西。我只在 SQL 实践中达到这种状态。当我已经检查了至少三遍这个问题池,并且能够轻松解决任何 SQL 问题时,我决定停止练习。

除了获得新的技能,我发现把找工作当成为自己制定策略是很有用的。想象你是一个产品;你如何向潜在雇主推销自己?一旦你诚实、真实地审视了自己的优势和劣势,这个策略就会变得清晰。

3。永不放弃。

最后也是最重要的,永远不要放弃,继续尝试。前进的道路并不总是清晰和光明的。有时感到沮丧是正常的,暂时失去动力也是正常的。经常与你的朋友和家人交谈,因为你比以往任何时候都更需要他们的支持。休息一段时间是可以的,但是记得第二天把它放回原处,继续前进。

每一小步都很重要。

希望这篇文章能在你艰难的时候给你一点帮助或启发。保重,注意安全!

我如何在疫情期间找到一份数据分析师的工作?

原文:https://towardsdatascience.com/how-did-i-get-a-data-analyst-job-during-the-pandemic-c37a35d7c656?source=collection_archive---------27-----------------------

办公时间

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

Carlos MuzaUnsplash 上拍摄的照片

两年前,我来到美国开始攻读经济学硕士学位。第一年后,我有幸获得了一家大型科技公司的暑期实习机会,成为一名数据分析实习生。凭借良好的教育和背景,我完全有信心在毕业后获得一份全职数据分析师的工作。我从 2 月份开始密集申请:创建一份我想要的职位和公司的名单,与校友和这些公司的人建立联系,并为面试做准备。

然后,疫情来了。三月份,我申请的所有角色都被取消了。随着需求的减少和供给的增加,就业市场比以往任何时候都更加拥挤。公司缩小规模并解雇员工。就业市场上出现了许多人才。我的求职之旅突然变得比我预想的长了很多。经历无止境的求职过程,收到拒绝,每周被多个面试搞得焦头烂额,让我感到绝望。

经过几个月的不懈申请,我终于在波士顿的一家初创公司获得了一份全职数据分析师的工作,在那里我有机会做我真正喜欢的事情。回想起来,我想分享三个主要的教训来帮助你度过这段艰难的时光。

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

Austin DistelUnsplash 上拍摄的照片

网络、网络和网络

让我们想想你的申请经历。你打开 LinkedIn,看到一份来自你喜欢的公司的数据分析师职位,决定申请。你花了半个小时定制简历,半个小时写一封引人注目的求职信,又花了半个小时填写申请表。接下来会发生什么?没什么。你只是没有收到公司的回复。两个月后,您收到了一封电子邮件,主题是“感谢您申请[公司名称]”,并附带了熟悉的信息:“我们对您的资历印象深刻;但是,我们已经决定不再推荐你担任这一职务”。

这个故事似乎是我们所有人都很熟悉的。那么,我们该如何改变呢?网络。与其花一个半小时去申请,不如花这个时间去建立关系网。人际关系网是一个很好的入门方式。有可能你会和这个职位的招聘人员或招聘经理有联系。如果没有,留在推荐管道也有很大帮助。那么,你会怎么做呢?

你可以找到两个联系来源:你学校的校友和 LinkedIn 联系人。每个来源都有其利弊。与校友交谈很棒,因为你们相似的背景(来自同一所学校)意味着很多。一般校友都想帮助下一代。关于你们共同的学习经历,你们可以谈论很多事情。然而,你可能找不到任何你想申请的公司的校友。你认识的校友可能在一个完全不同的部门工作,与你申请的团队没有什么联系。如果是这样的话,你可以试着给相关的 LinkedIn 联系人发信息。虽然他们没有什么动力来帮助你,因为你和他们是陌生人,但他们可能直接接触到你感兴趣的团队。那么,你应该使用什么策略呢?答案是两者都有。

找到校友联系人的一个简单步骤是联系你大学的就业中心。他们可能有一份愿意帮助学生的校友名单。我的大学有一个校友数据库,可以看到他们的电子邮件。一旦我有了想要联系的校友名单,我就给他们发电子邮件。发送电子邮件是引起他们注意的好方法。你的邮件可能马上就出现在他们面前,你的信息可以更长,你可以把简历附在邮件里。或者,你可以在 LinkedIn 上联系他们,并发送介绍信息。

如果第一个策略不可行或没有帮助,下面是我如何在 LinkedIn 上搜索陌生人。在人才搜索上,我按当前公司(你申请的公司)和地点(美国,以防这些公司在美国以外有办事处)进行了筛选。在搜索框中,我输入了可能与该角色相关的团队或职位。在这些结果中,我查看了他们的个人资料,列出了最相关的人。然后,我用简短的消息发送连接请求。除了连接请求之外,还建议发送一条消息,并提及您申请的确切角色或团队。但是,不要在第一封邮件中提到推荐。

在他们接受我的连接请求后,我与他们分享了更多关于我的背景和对公司的兴趣。如果他们觉得舒服,我愿意让他们推荐,向招聘经理介绍我自己,或者把我的简历递给符合条件的招聘人员。同样的过程也适用于校友。被亲自介绍给招聘经理或有推荐人会增加你开始招聘的可能性。

准备技术面试

作为一名数据分析师候选人,我相信你们所有人都知道在面试过程中会发生什么。不同的公司和不同的角色需要不同的技能;但是,通常需要以下技能:Excel、SQL、数据可视化(例如:Tableau)和数据分析。一些公司可能也会对 Python 和机器学习感兴趣。行为问题绝对重要,有时同样重要;然而,我将把这个话题留给另一篇文章,因为我想更多地关注数据分析师面试方面。

第一步是准备至少三个关于你过去如何使用 Excel、SQL 或 Tableau 的故事。它不是严格基于过去的工作经验;然而,你应该能够说出你使用的公式或函数,项目的复杂性,以及影响。然后,就是关于练习。对于 Excel 来说,谷歌练习和应用你想要练习的公式应该是可行的。对于 SQL,我在 Leetcode 上练习过。我制定了每天练习的时间表,每天至少有三到五个问题。我花了很多时间去思考解决方案,与同行的答案进行比较,并写下我可以改进的地方或我可以从练习中学到的东西。对于数据可视化,由于我以前所有的仪表板和可视化都属于我工作的公司,我找到了公共数据集,并创建了两到三个仪表板来展示我的技能。

练习数据分析题比较棘手。数据分析问题有两种提问方式,一种是一般的业务问题,要求您分解步骤并提出数据驱动的解决方案;另一种是数据案例,要求您处理数据并分享来自特定数据集的见解。第一类数据分析问题很大程度上取决于你准备应聘的公司。例如,当我申请一家电子商务公司时,我做了一些研究,以了解他们面临的常见业务问题和相关指标。我问自己一些问题,比如如何提高客户数量,如何增加购买数量,或者如何减少客户流失。我写下简洁的要点来组织我的回答,并练习说话,就好像我在面试官面前陈述解决方案一样。对于第二种类型的数据分析问题,我找到了公共数据集(例如:Kaggle)并练习处理数据:进行探索性分析,可视化数据分布,找到相关性,并应用统计方法从数据集中找到洞察力。

打造你的品牌

你应该准备好和成百上千的申请人竞争一个职位。因此,建立你的专业品牌有助于你脱颖而出。我确保招聘人员和招聘经理可以通过查看我的个人资料来识别我的数据分析经历。我过去的所有经历都强调了与数据分析相关的方面和成就。我的 LinkedIn 个人资料包含招聘人员可能会搜索或寻找的所有相关关键词和技能。我建立了一个 GitHub 文件夹,展示过去的项目,包括学校和个人的项目。另外,个人网站也可以。

因为修改你的个人资料很重要,所以我只申请了我感兴趣的职位。我仔细阅读了职位描述,并记下了团队正在寻找的技能和经验。然后,我比较了我的简历和职位描述之间的相关性。我调整了我的经历,使之与需求紧密匹配。例如,对于一个营销数据分析师的角色,我强调了我的营销相关经验,如优化漏斗转换过程,提高电子邮件性能,或进行客户细分分析。

参加在线课程和展示在线证书也是展示你的技能和激情的好方法。我经常从 Coursera 和 LinkedIn 学习各种数据分析相关领域的在线课程,然后在我的 LinkedIn 个人资料上显示证书。但是,我不建议在简历中列出太多证书。你的简历空间有限,应该优化以突出你的技能和经验。

快速笔记

求职过程充满压力,令人沮丧。因此,我想强调放松和平衡你的生活的重要性。有几次,我发现自己不断地发送网络信息,练习采访,并一直感到担心。从长远来看,这是行不通的。在重要的面试前花更多的时间准备是可以接受的;然而,如果你不能在工作申请和生活中的其他方面划清界限,你很快就会感到筋疲力尽。

在求职期间,我规划了一个明确的时间表,确定了每天要花多少时间在求职活动上。我也非常重视花在锻炼、跑步、与家人和朋友交谈以及爱好上的时间。

我希望你能从这篇文章中获得一些简明的要点,帮助你尽快实现你的目标。祝你求职成功。

我是如何在 2 个月内学会数据科学的?

原文:https://towardsdatascience.com/how-did-i-learn-data-science-in-2-months-8f72c5f5b401?source=collection_archive---------14-----------------------

这是从“零到英雄”学习数据科学的完整路线图,并提供了源代码链接。

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

活动创作者Unsplash 上拍摄的照片

目录—学习路径:

  1. 介绍
  2. 数据科学所需的软技能
  3. Python 基础知识
  4. Python 库— Numpy、Pandas 和 Matplotlib
  5. 结构化查询语言
  6. Tableau/Power BI
  7. 使用 Python 进行数据分析
  8. 统计和概率
  9. 机器学习算法
  10. 深度学习(神经网络)
  11. 项目创意
  12. 建筑概况和组合开发
  13. 结论

如果你讨厌编程?但还是想从事数据分析领域?查看这篇关于 非程序员数据分析 的博客。

1。 简介:

当你点击这个博客阅读这篇文章时,你可能对数据科学有所了解或感兴趣。因为这是一个新兴领域,你们中的大多数人可能会好奇去了解它。但是你可能不知道如何开始,如何进一步追求。这是你逐步学习数据科学的完整路线图**(包括源代码链接)。**

2.数据科学所需的软技能:

以下是成为数据科学家的一些最重要的软技能:

  • 探索的兴趣
  • 理解业务问题
  • 讲故事——来自数据
  • 对数学的好奇心
  • 等等…

注意:如果你觉得自己不具备这些技能,试着提高它们或者随意寻找另一个领域。

3.Python 基础知识:

开始学习数据科学的最好方法是让“Python 成为你的朋友”。Python 是最流行的编程语言之一,因为它的简单性和巨大的应用。由于它在本质上的易用性,非 CS 背景的人往往更喜欢它。学完 python 后,如果你觉得数据科学不是你的路,有很多机会给你,比如软件开发等。

要学习的资源:

4.Python 库— Numpy、Pandas 和 Matplotlib:

学习 Python 基础知识后,您可能会熟悉函数、类和数据结构。但是要进行数据分析,你需要处理数组、数据帧等。为了方便起见,有一些 Python 库可供使用。数据分析中最常用的库是“Numpy、Pandas 和 Matplotlib”。

Numpy —提供一个高性能的多维数组和基本工具来计算和操作这些数组。

Pandas —提供内存中的 2d 表格对象 Dataframe,用于数据操作

Matplotlib —提供图表来可视化洞察。

注:尝试在 Jupyter 笔记本或 Google colab 中学习和编码。

要学习的资源:

5.SQL:

做个人项目不需要 SQL。但是在现实世界中,行业以 SQL 的形式存储数据。因此,学习编写 SQL 查询对数据探索更有帮助。既然这么简单,学起来不费时。

学习来源:

6.Tableau/Power BI:

在讨论的技术中,学习 Tableau 或 Power BI 会更有趣。因为这些是数据可视化技术中最常用的工具。学了不会后悔的。通过探索它们,它帮助我们更清楚地理解数据。

Tableau,Power BI”——读起来很有意思的词吧?

耶普!用它工作更有趣…是的,我能听到你说“我需要学哪一个?Tableau 还是 Power BI?”

这个问题有很多争论。对此没有明确的答案。在我看来,如果你熟悉微软 Office 的组件,那就试试 Power BI。如果你真的需要尝试新的 UI ,就用 Tableau 吧。因为 Power BI 和 Tableau 都能完成所有的基本动作。一旦你熟悉了一个软件,试着去探索另一个。

要学习的来源:

7.使用 Python 进行数据分析:

最有趣的部分在这里。在整个旅程中,您学习了许多数据科学中使用的技术。但这是你试图学习“如何在数据分析中使用这些技术”的一步分析数据并提出见解要有趣得多。

数据分析涉及的步骤:

  • 数据争论
  • 特征工程
  • 检测异常值
  • 探索性数据分析
  • 模型开发
  • 模型评估和改进

您可以从下面提供的课程中学习所有这些步骤。

学习来源:

  • 用 python 进行数据分析-IBM(Coursera)—点击这里****

8.统计和概率:

统计和概率等数学概念在数据科学中发挥着重要作用。我们的高中谜团终于有了答案,“我们要把那些怪异的数学概念用到哪里去?!"

要学习的资源:

9.机器学习算法:

虽然您可能已经在“step 7 —使用 python 进行数据分析”中学到了一些关于开发机器学习模型的基础知识,但是您需要更深入地了解机器学习算法,如“回归、分类和聚类”。首先,尝试从理论上理解机器学习的概念,然后使用 Python 进行实践。****

要学习的资源:

10.深度学习(神经网络):

在对机器学习有了深入的了解之后,再尝试跳入深度学习。学习神经网络及其工作原理。神经网络的类型包括 ANN、CNN 和 RNN计算机视觉自然语言处理是目前需求量最大的技能。努力掌握那些技能。深度学习促使我们做更多的项目。从学习 Keras 开始。因为 Keras 架构比较容易学,所以最受初学者欣赏。然后用 TensorflowPyTorch 因为那些是最受欢迎的平台。

要学习的资源:

  • 完成深度学习(克里斯·纳伊克)——点击这里
  • Keras for 初学者(免费代码营)——点击这里
  • Tensorflow 速成班(免费代码营)——点击这里
  • 深度学习 PyTorch(免费代码营)——点此

11.项目创意:

可以从 Kaggle 获取更多项目思路。尝试参加他们举办的比赛,并解决那些问题。你也可以通过“网络搜集”来收集数据,并尝试分析这些数据以获得真知灼见。尝试用机器学习和深度学习做同样的项目。

获取项目想法的来源:

12.建筑概况和组合开发:

  • 在尝试了那些现有的项目之后,选择一个真实的问题,并使用数据分析技术来解决它。
  • 在 LinkedIn 中更新您的个人资料,并通过 LinkedIn 与更多数据科学家联系
  • 要了解数据分析在一个行业中是如何工作的,做一些实习。查看我的博客 【免费数据科学虚拟实习【带证】】

13.结论:

恭喜你。!如果你跟随我到现在,你真的有热情和好奇心去学习。如果我能在 2 个月内学会这些技能,为什么你不能?请评论我遗漏的地方,如果我错了,请纠正我。如果你找到其他学习这些技能的资源,请写下来。我也会试着把这些加进去。让我们一起成长!

联系我:

我的 LinkedIn 个人资料:T5 点击这里

我的邮件 id—hpprasad2000@gmail.com

我是如何找到一份高薪的数据工作的?

原文:https://towardsdatascience.com/how-did-i-manage-to-get-a-high-paying-job-in-data-bf3f82fd7752?source=collection_archive---------19-----------------------

我从金融到数据科学和分析(DSA)的旅程

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

图像来源

就是这样。我已经做到了。我转向并重新调整了自己的技能(从金融到数据)。现在看着我。我是如此重要,以至于我工作的公司为我提供早餐、午餐和小吃。这太棒了。

我接下来的直接挑战是——如果新冠肺炎愿意的话:1/避免被解雇,2/继续提升技能。

数据人短缺

数据科学与分析(DSA)坐上技能荒 的头把交椅。

*“*数据科学家、现场可靠性工程师和企业客户主管是 2019 年 最有前途的工作”。

这是你在网上经常能看到的标题类型。在电视上。但是谁还看电视呢?!

哦,我可以看到你眼睛里的美元符号和头上的灯泡。只要学会基础知识,你就会找到工作。轻松点。毕竟,当你真的需要水而又没有现成的斐济瓶时,你会买下一个最好的东西(依云)或现有的东西(达萨尼——因为你真的真的需要水)。

是的。但是没有!

超级英雄短缺

有这么多漫威和 DC 漫画电影,我们怎么能缺少超级英雄呢?!首先,黑寡妇和钢铁侠已经死了……然后,因为公司真正需要的是超级高技能的数据人员。不是大三。

拥有计算机科学、工程、计量经济学/数学和商业教育/经验的人(是的,所有这些加在一起)。不是大三。

能够使用和说大量工具和语言的人。(仅举几个:MongoDB,PostgreSQL,MySQL,Hive,Spark,AWS S3,C#,Scala,Tableau,Python,Matlab,Stata 等等。).不是大三。

深刻理解商业模式和商业逻辑的人。拥有工具固然很好,但知道为什么以及何时需要它们也同样重要。

他们基本上需要有大约 7/10 年经验的终身学习者大学毕业生。不是大三。

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

漫漫长路

说了这么多,显然不会轻松。不容易不代表不可能。我一生中完成的事情没有一件是不可能的。你也可以的!

那么怎么做呢?我没有一个通用的答案。我只是有亲身经历。因为我没有东西可以卖,所以我可以告诉你真相。

这需要时间。不要相信训练营和其他专家,他们告诉你 3 到 6 个月后你就可以工作了(谈论重新转换——计算机专业毕业生或有计算机专业经验的人最终可以)。它就是不能切断它。你需要更多的时间和练习才能真正有用。

学习和练习

有大量免费的在线资源可供学习(如果你需要,我可以推荐几个)。从他们开始学习基础知识,直到中级到高级概念。然后,你可以考虑付费项目——通过变得更高级,你将能够更深入,并从你的投资中获得更多价值。

我想我的简历上没有 DS 或 CS 的正式教育经历,这让我很痛苦。但那只是一种感觉。当心训练营——很少有人真正取得好成绩。

然后练习。我再怎么强调练习的重要性也不为过。我犯了一个错误,在通过项目应用这些概念之前,我完成了一门又一门课程。我的理由是,在能够使用这些工具之前,我需要了解更多的知识。我错了。通过做项目,你实际上会学到更多(实际经验)并保留更多(感谢经历实际过程的痛苦——在很大程度上,这是谷歌如何做你想做的事情并适应它)。

做有价值的项目

我犯的另一个错误是做一些我认为很酷的项目,而不是那些实际上证明我可以胜任的项目。例如,我开发了一款增强现实游戏。很酷,但是绝对没用。我不会得到一份机器学习工程师的工作(要得到这份工作,你需要成为一名优秀的软件工程师,具备中到高级的数学/统计知识和强大的领域专业知识)。

你需要的是获取和处理数据、分析和可视化数据的项目。你基本上把数据转化为洞察力。比如报废电影数据来评估网飞和迪士尼+之间哪个是最好的流媒体平台(想知道答案就点这里)。

拥有领域专长

有趣的是,让我得到这份工作的不是我的技术技能,而是我的专业领域——尽管这还是一个有根据的猜测,而不是已知的事实。

是的,我测试了 Python 和 SQL。掌握最新的技术技能也很重要。但我不认为我是艺术大师。另外,你不能真正自学和练习 ETL、数据流、SQL 等。为此,你实际上需要工作经验。咬着尾巴的蛇。

我(认为我)击败它的地方是在专业领域。我在投资银行工作多年,剖析商业模式,识别业务流程,理解价值创造。这(对我)极其有用。为什么?因为在(无数次)测试和面试中,我能够确定该看什么问题,如何看问题。公司有(很多)内部资源来教/帮你回答这些问题。它们在帮助你思考、理解和识别业务问题方面的作用要小得多。

结论

尽管由于那次隔离,你很可能已经无聊到了极点,但我还是要强调一下我刚才说的话,这样你就可以直奔主题(我知道,你希望从一开始就知道这是一个选项):

1/数据人员的短缺与你无关。公司缺少通过高学历和长期经验相结合而获得强大技术和商业技能的人,而不是初级员工;

2/使用免费的在线资源来学习技术技能,并小心训练营。你需要时间才能做好工作准备;

3/尽快做项目。甚至在第一道菜之后。这会很难,但这是迄今为止你能做的最好的真正学习的事情。做重要的项目 vs 酷的项目(你在这个领域的第一份工作不会是机器学习工程师);

4/拥有深厚的领域专业知识。面试者不止一次告诉我:“我们更喜欢商业意识强于技术技能,因为你可以在工作中很快学会 SQL

5/不要把第四条看得太重,你仍然需要那些技能来通过简历筛选并得到这份工作。

我非常兴奋能够开始这份新工作(分析项目经理)。我不打算撒谎,我花了很长时间和很多努力才到达那里。现在,我知道我将继续学习大量的知识——在“数据科学”中你可以学到无穷无尽的东西。最棒的是,我会在尽可能好的条件下做这件事(拥有杰出人才和资源的非常成功的创业公司)。令人难以置信的是,我因此得到了丰厚的报酬!

封锁对我们的日常活动有什么影响?

原文:https://towardsdatascience.com/how-did-lockdown-impact-our-daily-movement-f9da2ed264d7?source=collection_archive---------35-----------------------

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

塔伦·阿南德·吉里在 Unsplash 上的照片

使用谷歌的社区移动性数据,在全国范围的封锁期间,看看印度的社区移动性

前言

新冠肺炎·疫情给全世界人民的日常生活带来了灾难。为了应对这一公共健康威胁,各国实施了全面的全国封锁措施,让生活嘎然而止。曾经由不同灵魂组成的连续流动的实体,现在变成了一堆紧张和不确定的静态物质。随着时间的推移,随着这些措施在一些国家的放松,人们走出家门时会更加自信,甚至会考虑去他们最喜欢的咖啡馆。

“滚石不生苔”

这句谚语让我思考,在这个艰难的时代,是否有某种方法可以观察到这个运动,或者说是缺乏这个运动的社区。

两周前偶然读到一篇的文章,我看到了谷歌的社区移动性报告。这是一款帮助用户了解不同地点访客变化的产品。

谷歌免费为许多国家提供了这些数据,目的是为公共卫生官员提供应对疫情的有用见解。要了解谷歌如何收集、汇总和匿名这些数据,请访问他们的帮助页面

动机

在这篇文章中,我探索了这个数据集,以获得一些关于最近在我的国家——印度——实施的封锁措施如何影响马哈拉施特拉邦和德里社区的定期例行活动的个人见解,这两个邦有超过 100,000 例确诊阳性病例。

项目工作流程

像往常一样,我使用一个简单的工作流程来组织我的查询。完整的代码和数据集可以在我的 GitHub 存储库中找到。

1.数据采集

社区移动数据集以. csv 文件的形式从这里的下载并读入数据框。我还使用了来自这个众包数据库的印度不同邦的每日新冠肺炎病例数。API 的详细文档可以在这里找到。

2.数据预处理

这两个数据集在上传之前已经清除了虚假的高/低值/错误的数据格式/缺失值。

从全球社区移动性数据集中,我提取了马哈拉施特拉邦和德里的数据,并保留了那些感兴趣的要素—‘零售和娱乐场所’、‘杂货店和药店’、‘公园’、‘中转站’、‘工作场所’、‘住宅’。我还创建了一个附加功能,在 锁定期间,将每日数据标记为“ pre ”和“”。**

从新冠肺炎的数据集中,我提取了马哈拉施特拉邦和德里的数据,只保留了每日确诊的阳性病例数。

(注:这些封锁措施是在全国范围内下令实施的,每个州都有权根据自己的案件数量继续实施自己的封锁措施。)

3.探索性数据分析

一、基本情况

在印度,3 月 22 日下令实施全国范围的第一阶段封锁,快速查看移动数据显示,从 2 月 15 日到 7 月 17 日,每个邦有 154 天的移动数据。

新冠肺炎的数据包括从 3 月 14 日开始的病例计数。尽管早在 1 月 28 日就发现了印度的首例病例,但众包数据仅始于 3 月 14 日。截至 7 月 24 日,马哈拉施特拉邦和德里数据集分别有 133 天的病例计数数据。

二。汇总统计数据

均值(平均值)和分布(四分位数间距)的测量将提供一些关于连续封锁措施对马哈拉施特拉邦和德里社区流动性变化的影响的汇总信息。

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

小提琴图给人一种数据扩散的感觉,或者换句话说,流动性变化的变化。小提琴图中较大的分布意味着较大的变化,这可以解释为锁定措施对流动性的较大影响。

很明显,在封锁前和封锁期间,人们的流动性有很大的不同。

可以看出,公园、零售店和娱乐场所的传播最小,这可以解释为在多次封锁期间,没有多少人访问过这些地方,因为它们仍处于 60-80%的较低下降率。

在工作场所、食品杂货店和药店,流动性的传播更加明显。这可能被解释为连续的封锁对访问这些地方的人产生了更大的影响。这种影响的性质将在下一节中展示。

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

从每个地点类别的平均变化来看,这两个州的零售和娱乐场所、中转站、工作场所和住宅的游客数量都出现了类似的平均下降。

在德里,公园的游客数量下降幅度最大(下降 98%),而在马哈拉施特拉邦,封锁期间,零售和娱乐场所的游客数量下降幅度最大(下降 89%)。

因为封锁要求我们长时间呆在家里,所以在封锁前的几个月(1 月到 2 月),住在家里的人数增加了近 10 倍。

在封锁期间,只有食品杂货和药房等基本服务才被允许参观,因此这两个州的游客平均降幅远低于其他位置类别。

这些汇总统计数据提供了一些有用的见解,可以回答一些关于锁定措施有效性的问题。

4。趋势分析

一.多次封锁对人员流动的总体影响是什么?

在印度,从 3 月 22 日到 5 月 31 日分四个阶段下令封锁,之后从 6 月 1 日到今天分两个阶段下令“解除封锁”。封锁的每个阶段都伴随着一系列措施,以防止人群聚集,限制非必要的行动,并保持社交距离。我绘制了访客/人数的每周平均百分比变化,以观察趋势。

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

在马哈拉施特拉邦和德里,随着社区限制随着连续封锁而放松,走出家门前往不同地点的人逐渐增多,长期留在住所的人的百分比呈下降趋势也证实了这一点。

二世。封锁如何影响零售店和娱乐设施的客流量?

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

随着连续的封锁,零售和娱乐场所的游客稳步增加。在中央政府宣布解除封锁后,德里人向零售和娱乐场所的流动增加了,超过了马哈拉施特拉邦。德里确诊新冠肺炎病例的上升和明显下降,以及 6 月份马哈拉施特拉邦病例的持续上升,也可能影响了这种趋势上的差异。

二。马哈拉施特拉邦的人们去杂货店和药店的频率比德里高吗?

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

与其他地方相比,杂货店和药店在多次封锁期间流动性增加最多,因为它们被视为基本服务。这两个邦的趋势没有明显差别,但马哈拉施特拉邦的百分比增长似乎高于德里。

三世。人们去公园的次数比封锁前多吗

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

由于行动限制,去公园的人明显减少了。德里的下降幅度比马哈拉施特拉邦更大,尤其是在 4 月的第二周之后。本周,每日病例的增加促使德里政府采取更严格的措施禁止人员流动。然而,随着时间的推移和限制的放松,德里公园的游客有所增加,而马哈拉施特拉邦没有任何明显的变化。

四世。封锁期间火车站的客流量是多了还是少了?

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

在 3 月 22 日宣布第一次封锁后,过境站的游客略有增加,可能是为了返回家乡和城市。这在日间图中是可见的,而不是每周平均时间序列。此后,随着时间的推移和限制的减少,过境站的游客逐渐增加。5 月 1 日后,名为“什拉米克列车的专列开始运送全国各地的农民工。这也可能是 5 月流动性增加的一个原因。这两个国家的趋势似乎没有显著差异。

尽管有旅行限制和工厂关闭,人们还是被要求去工作吗?

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

在前两次封锁期间(约 45 天),积极鼓励人们在家工作。私营和政府机构试图适应这种新的文化,这反映在工作场所的访客人数大幅下降。然而,在一级防范禁闭 3 之后,当旅行限制被部分取消时,两个州访问工作场所的人数都增加了。人们现在被要求以分级的方式工作,以减少在办公场所的聚集。

六。我们一直呆在家里吗?

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

与封锁前的日子相比,我们呆在家里的时间更长了。直到一级防范禁闭 3 号,没有太多人走出家门。在一级防范禁闭 3 之后,长时间呆在家里的人逐渐减少。然而,在马哈拉施特拉邦,由于持续的部分封锁,与德里相比,人们甚至在 7 月份也继续呆在室内。

结论

通过分析这些社区流动数据,我可以证实我之前的一些怀疑。

  • 总体而言,连续封锁中限制的放松对人们前往典型的名胜地点产生了积极影响。
  • 公园、零售和娱乐场所的游客数量下降幅度最大,而杂货店和药店的游客数量上升幅度最大。
  • 我们被迫长时间呆在室内,比以前长得多,这在数据中有所反映。
  • 在第三阶段封锁后,不同地点的流动性增加了。
  • 马哈拉施特拉邦病例的上升和持续的部分封锁使人们的流动性低于德里,德里的病例最近有所下降,社区的流动性迅速上升。

确诊病例的数量肯定会影响封锁的实施或解除,而在不受限制的行动的经济效益和感染减少的公共卫生影响之间进行权衡是一项难以管理的任务。

免责声明:此处呈现的观点和观察纯属个人观点。

就是这样,伙计们!我希望你喜欢这篇文章。这是一个有趣的项目,让我对身边发生的事情有所了解,我会很快发布更多有趣的内容。

再见!

深度学习模型是如何做到 100%准确率的?

原文:https://towardsdatascience.com/how-did-the-deep-learning-model-achieve-100-accuracy-6f455283c534?source=collection_archive---------29-----------------------

在解决深度学习问题之前,浏览数据集是很重要的。本文将带您经历一个场景,其中测试集和验证集包含与训练集相同的数据。你有没有想过这种情况会不会发生?嗯,数据集可能会有偏差,这篇文章是我个人经历的一个这样的问题的结果。

简介

这里使用的数据集是 food-101 数据集的子集,可以在 TensorFlow 数据集中找到。我的目标是将图片分为四类‘咖喱鸡、汉堡、煎蛋和华夫饼’。数据集由属于四个类别的 8345 个图像组成,并且以如下方式划分:
训练集:属于四个类别的 4000 个图像
验证集:属于四个类别的 2217 个图像
测试集:属于四个类别的 2128 个图像

有了这个问题的知识,我们开始吧。

ResNet50 预训练 CNN

这是一个深度剩余网络,数字‘50’指的是网络的深度,意味着网络有 50 层深。它属于卷积神经网络的一个子类。该网络有超过 2300 万个可训练参数。ResNet-50 的出现是为了解决渐变消失的问题。ResNet-50 使用跳过连接,将输入添加到原始块的输出,这减轻了渐变消失的问题。更多详情也可以参考原研究论文。如果你选择了使用 ResNet 实现深度学习解决方案,我假设你了解这个架构。ResNet-50 模型包括 5 个阶段,每个阶段具有一个卷积和一个单位块,其中每个卷积块具有三个卷积层,每个单位块也具有三个卷积层。ResNet-50 型号如下所示:

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

ResNet-50 架构

迁移学习

这是一种训练数据的方法,其中模型已经在大型数据集上进行了训练,并且已经用于对大量类别进行分类。ResNet-50 已经在由数百万幅图像组成的 ImageNet 数据库上进行训练,并且保存了权重。这些权重可以在实施迁移学习方法时使用。有两种使用迁移学习的方法,特征提取和微调。这里设计问题的解决方案集中在微调方法上。在微调方法中,在预训练的 ResNet-50 基础模型的顶部添加完全连接的层。整个预训练模型被冻结,这意味着权重没有被更新,并且学习过程被停止。在 ResNet-50 基础之上添加的全连接层被训练少量的历元,然后通过解冻相关层将 ResNet-50 预训练模型的 5c 块设置为可训练。未冻结的层连同所添加的完全连接的层被训练并用于训练数据以获得分类结果。卷积神经网络的初始层学习低级特征,并且随着网络深入,学习更高级的特征。因此,较高层被解冻并进一步用于训练过程。ResNet-50 型号的尺寸要求为(224,224,3)。因此,在馈入预训练模型之前,所有图像都被转换或调整到这个维度。

理解了图像分类的基于微调的迁移学习方法的概念后,我将进入本文的核心。

探索性数据分析

我认为这是本文最重要的部分。在开始该模型的训练过程时,我惊讶地发现在训练的初始阶段,精确度非常高。网络和图像似乎并没有一切正常。我开始窥视网络,并没有发现任何罪恶,也就是当我试图窥视数据集时,我惊讶地发现,测试和验证集中的所有图像在训练集中都是可用的。这对我来说似乎很奇怪,因为验证和测试集应该包含那些不属于训练集的图像。我们应该根据训练数据训练模型,并用验证和测试集评估模型的性能。然而,在这种情况下,由于验证和测试集的所有图像都已经存在于训练集中,所以我们使用相同的图像来训练模型并评估模型的性能。这不是使用卷积神经网络或任何深度学习模型的常规过程。因此,我编写了一个脚本来显示测试和训练集以及验证和训练集中的文件(图像)彼此匹配。请参考 谷歌合作笔记本 中的 python 脚本,我已经明确地比较了给定数据集中找到的匹配。

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

探索性数据分析的结果

卷积神经网络的设计和模型训练

如前所述,我已经对预训练的 ResNet-50 模型进行了微调,并在顶部添加了一个完全连接的层来对图像进行分类。CNN 模型的架构如下所示:

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

在 ResNet-50 上添加完全连接的层

我添加了 Flatten()图层,然后是百分比为 40 的 Dropout。所以在训练过程中随机排除了 40%的神经元。Dropout 是一种正则化方法,用于避免模型过度拟合。实现 CNN 模型时有一些经验法则,您可以让模型过度拟合数据,如果模型过度拟合数据,则稍后实现正则化方法。我特意加入了 Dropout,让模型的训练过程更加艰苦,这使得模型比预期晚跳接近 100%的准确率。密集层包括 2048 个神经元,以“relu”作为激活函数,最后一层也是具有 4 个神经元的密集层,因为这里的目的是对四个不同类别的图像进行分类。因为这个问题是一个多类分类问题,所以使用了“Softmax”分类器。整个 ResNet-50 基础冻结时的架构如下所示:

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

基于冻结 ResNet-50 的 CNN 架构

注意当整个基础冻结时不可训练参数的数量。图层冻结时,权重不会更新。当最后一个块解冻并与完全连接的层组合时,架构如下所示:

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

微调 CNN 模型的体系结构

正如提到的关于给定数据集的特殊性,模型的性能对于所有训练集、验证集和测试集都记录为 100%。我使用 RMSprop 作为优化器,学习率为 1e^-4.我可以注意到,一旦学习率下降到 1e^-5.,训练和验证的准确率就开始向 100%靠拢学习曲线和混淆矩阵如下所示:

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

训练和验证准确性的学习曲线

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

培训和验证损失的学习曲线

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

验证数据的混淆矩阵

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

测试数据的混淆矩阵

回调:我使用了 ReduceLROnPlateau。如果 val_loss 在运行五个时期后没有减少,则将学习率减少 0.1 倍。我尝试使用 EarlyStopping 回调,但我注意到,即使在验证指标停止时,训练精度和损失也在不断提高。所以,我觉得让这个系统运行整个 50 个时代是有好处的。但是如果历元的数量增加很多,比如 200,训练损失变得接近 0,那么当获得必要的损失时,可以使用该回调来停止训练。CNN 模型的性能指标见 谷歌合作笔记本

总结

我向您介绍了探索性数据分析、模型训练的过程,并展示了模型微调后的架构。ResNet-50 被用作大多数图像分类问题的分类器。其跳跃连接技术解决了卷积神经网络中的梯度消失问题。您可以自己实现 ResNet-50 模型,也可以实现迁移学习方法。现在,您应该能够理解探索性数据分析的重要性,并将其应用到您的深度学习模型中。

希望这篇文章对你有用。你可以访问我的 GitHub 库来全面了解实现。colab 笔记本已经做了很好的记录,它将帮助您进一步理解实现。

参考文献:

[1] 'food101 | TensorFlow Datasets ', TensorFlowhttps://www.tensorflow.org/datasets/catalog/food101

[2]何国光,张,任,孙,“深度残差学习在图像识别中的应用”, ArXiv151203385 Cs ,2015 年 12 月,
可用:

[3] P. Dwivedi,《在 Keras 中理解和编码一个 ResNet》, Medium ,2019 年 3 月 27 日。https://towards data science . com/understanding-and-coding-a-resnet-in-keras-446 D7 ff 84d 33

[4] T. Shermin,M. Murshed,G. Lu,S. W. Teng,“使用 CNN 的分类层特征进行迁移学习”,ArXiv181107459 Cs,2019 年 3 月,可用:

[5]《图像网》。http://www.image-net.org/

[6]japeshmethuku 17/food _ 101 _ 4 class

Twitter 如何应对冠状病毒疫情?

原文:https://towardsdatascience.com/how-did-twitter-react-to-the-coronavirus-pandemic-2857592b449a?source=collection_archive---------24-----------------------

《在 R》中新冠肺炎·疫情的探索性和情感分析

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

马库斯·斯皮斯克在 Unsplash 上的照片

最近爆发的冠状病毒/COVID 19 最近被宣布为全球紧急情况。随着我们开始练习社交距离,在家工作来控制病毒传播,我决定利用我的业余时间去调查一下人们在网上谈论疫情的事情。

对于这篇文章,提取了 2020 年 1 月 30 日至 3 月 15 日之间的 15000 条带有#冠状病毒和#COVID19 的推文进行分析。

将推文提取到 R

有许多 R 包允许您将 tweets 提取成可用的数据类型进行分析。在使用 R 中的包之前,确保您在 twitter 上有一个 API 帐户,允许您提取 tweets。下面的代码块提取了 2020 年 1 月 30 日到 3 月 15 日之间推特上#Coronavirus 和#COVID19 的所有文本。

**#Extract tweets** library("twitteR")consumer_key <- '*your consumer_key*'
consumer_secret <- '*your consumer_secret*'
access_token <- '*your access_token*'
access_secret <- '*your access_secret*'setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
2virus <- searchTwitter('#COVID-19 + #Coronavirus', n = 15000, since = '2020-01-30', retryOnRateLimit = 1e3)
virus_df = twListToDF(virus)**#Write dataframe into an Excel file for analysis** library(xlsx)write.xlsx(dataFrame, "filePath", sheetName="Sheet1", col.names=TRUE, row.names=TRUE, append=FALSE)

首先,一些有趣的发现

在我们开始挖掘推文之前,让我们来看看几条最受欢迎和转发的文本:

**#most favorited tweets**
virus_fav <- virus_df %>%
  arrange(desc(favoriteCount))**#most retweeted**
virus_retweet <- virus_df %>%
  arrange(desc(retweetCount)) %>%
  distinct(text, .keep_all = TRUE)virus_retweet_extracted <- virus_retweet[-c(2:11)]

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

2020 年 3 月 17 日:在提取的 15,000 条推文中,前 5 条最受欢迎的推文

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

2020 年 3 月 17 日:在提取的 15,000 条推文中,转发量最高的 5 条文本

然后…一些数据清理和令牌化

首先,将数据集转换为语料库,即 r 中识别的文档(数据类型)的集合。然后,对语料库进行预处理,使所有字符都变成小写,删除所有标点符号、空格和常用词(停用词)。

在对语料进行预处理之后,我使用了标记化的方法来抓取单词组合。如果您不熟悉标记化,这种方法可以帮助提取有用的短语,从而获得一些额外的见解。

**# Import text data**
data <- read.csv("*filePath.csv*", stringsAsFactors = FALSE)**#Change dataset into a corpus**
data_corp <- VCorpus(VectorSource(data))**#Data pre-processing**
data_corp <- tm_map(data_corp, tolower)
data_corp <- tm_map(data_corp, PlainTextDocument)
data_corp <- tm_map(data_corp, removePunctuation)for (i in seq(data_corp)) {
  data_corp[[i]] <- gsub('[^a-zA-Z|[:blank:]]', "", data_corp[[i]])
}**#Remove stop words**
new_stops <-c("covid","iphone","coronavirus","hrefhttptwittercomdownloadandroid","relnofollowtwitter","androida","hrefhttptwittercomdownloadiphone","relnofollowtwitter","iphonea","web","rt","chuonlinenews","hrefhttpsmobiletwittercom","hrefhttptwittercomdownloadipad","bharianmy","lebih","berbanding","dijangkiti","kumpulan","mudah","terdedah","covidhttpstcoigdxdtmvrg","hrefhttpsabouttwittercomproductstweetdeck", "darah")data_corp <- tm_map(data_corp, removeWords, words = c(stopwords("English"), new_stops))
data_corp <- tm_map(data_corp, stripWhitespace)
data_corp <- tm_map(data_corp, PlainTextDocument)**#Tokenize tweets texts into words**
tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 1, max = 1))
}data_cleaned_tdm <- TermDocumentMatrix(
  data_corp,
  control = list(tokenize = tokenizer)
)data_cleaned_tdm_m <- as.matrix(data_cleaned_tdm)
data_cleaned_freq <- rowSums(data_cleaned_tdm_m)

词频分析

探索数据最简单的方法之一是频率分析。虽然不难,但在情感分析中,这种简单的方法会令人惊讶地具有启发性。

**#Create a uni-gram (1-word) word cloud**
pal <- brewer.pal(9,"Set1")
wordcloud(names(data_cleaned_freq), data_cleaned_freq, min.freq=50,max.words = 50, random.order=TRUE,random.color = TRUE, rot.per=.15, colors = pal,scale = c(3,1))

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

单字单词云

出现频率最高的前三个词:

  • False (45459 次)
  • 真(14557 次)
  • 国立卫生研究院(3820 次)

二元语法(2 个单词)和三元语法(3 个单词)的词频可以让我们从我们正在分析的数据集获得更好的见解。只需将 tokenizer 函数的最小值和最大值更新为您想要研究的词元数,即可获得以下结果:

**#change the 1s into the number of word-grams you would like to analyze**tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 1, max = 1))
}

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

词频最高的二元模型列表

基于二元和三元模型列表,我们知道人们在谈论:

  • 冠状病毒疫苗的临床试验
  • 国家健康研究所
  • 卡尔·冯·哈布斯堡大公(首位冠状病毒检测呈阳性的皇室成员)

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

词频最高的三元模型列表

情感分析

情感分析帮助我们理解人们对特定主题的感受。这是通过识别、分类观点并将文字转化为可操作的见解来完成的。

首先,数据预处理…再次!

首先,我们需要一个 tibble(数据类型)来将 tweets 的句子分解成单词,以便进一步分析。

**#Transform sentences into words**
data_tibble <- data %>%
  unnest_tokens(output = "words", input = text, token = "words")**#Remove stop words from tibble**
virus_tibble_clean <- data_tibble %>%
  anti_join(stop_words, by=c("words"="word")

用数字可视化情感:极性评分

极性得分帮助我们对一些文本的感觉做出定量的判断。简而言之,我们将推文中的单词分为积极和消极两种类型,并给它们打分进行分析。

极性得分告诉我们一段文字是消极的、中性的还是积极的。如果分数接近或等于 1,我们会认为正文是正面的,反之亦然。

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

15,000 条提取的推文的总体极性得分

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

提取的推文的整体极性

情感词频

接下来,我们还可以使用极性得分对单词进行分类,将单词放入“积极”或“消极”的篮子中。首先,我们给提取的推文中的每个单词分配一个极性分数。然后,我们过滤数据集,只得到极性得分为 80 或更高的单词。

data_tidy_sentiment <- virus_tibble_clean %>% 
  **# Inner join to bing lexicon by term = word**
  inner_join(get_sentiments("bing"), by = c("words" = "word")) %>% 
  **# Count by term and sentiment, weighted by count**
  count(words, sentiment) %>%
  **# Spread sentiment, using n as values**
  spread(sentiment, n, fill = 0) %>%
 ** # Mutate to add a polarity column**
  mutate(polarity = positive - negative)summary(data_tidy_sentiment)
data_tidy_pol <- data_tidy_sentiment %>% 
 ** # Filter for absolute polarity at least 80** 
  filter(abs(polarity) >= 80) %>% 
 ** # Add positive/negative status**
  mutate(
    pos_or_neg = ifelse(polarity > 0, "positive", "negative")
  )**# Plot polarity vs. (term reordered by polarity), filled by pos_or_neg**
ggplot(data_tidy_pol, aes(reorder(words, polarity), polarity, fill = pos_or_neg)) +
  geom_col() + 
  ggtitle("Coronavirus related tweets: Sentiment Word Frequency") + 
  **# Rotate text and vertically justify**
  theme(axis.text.x = element_text(angle = 45, vjust = 0.5, size = 10))+
  xlab("Word")

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

在提取的推文中使用的最积极和消极的词

为了更全面地了解积极和消极词汇的使用情况,我使用“必应”词典给这些词分配了一种情绪,并做了一个简单的统计,以生成提取的推文中使用的前 10 个最常见的积极和消极词汇。

word_counts <- virus_tibble_clean %>%
  **# Implement sentiment analysis using the "bing" lexicon**
  inner_join(get_sentiments("bing"), by = c("words" = "word")) %>%
 ** # Count by word and sentiment**
  count(words, sentiment)top_words <- word_counts %>%
  **# Group by sentiment**
  group_by(sentiment) %>%
  **# Take the top 10 for each sentiment**
  top_n(10) %>%
  ungroup() %>%
  **# Make word a factor in order of n**
  mutate(words = reorder(words, n))**# Use aes() to put words on the x-axis and n on the y-axis**
ggplot(top_words, aes(words, n, fill = sentiment)) +
 **# Make a bar chart with geom_col()**
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = n, hjust=1), size = 3.5, color = "black") +
  facet_wrap(~sentiment, scales = "free") +  
  coord_flip() +
  ggtitle("Most common positive and negative words")

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

情话云

将这些词分为不同类型的情绪也有助于我们了解人们对一个主题的感受,在这种情况下,这个主题就是冠状病毒疫情。

data_tidy <- virus_tibble_clean %>%
 **# Inner join to nrc lexicon**
  inner_join(get_sentiments("nrc"), by = c("words" = "word")) %>% 
 ** # Drop positive or negative**
  filter(!grepl("positive|negative", sentiment)) %>% 
  **# Count by sentiment and term**
  count(sentiment, words) %>% 
  **# Spread sentiment, using n for values**
  spread(sentiment, n, fill = 0)  %>% 
 ** # Convert to data.frame, making term the row names**
  data.frame(row.names = "words")**# Plot comparison cloud**
comparison.cloud(data_tidy, max.words = 130, title.size = 1)

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

带有冠状病毒标签的推特上的情绪词云

将情绪分为十种类型

除了将单词分为两类(积极和消极),我们还可以将单词分为多种情绪状态。在本节中,我们将单词分成十组,并在每组中选出前 10 个最常用的单词。

data_sentiment %>%
  **# Count by word and sentiment**
  count(words, sentiment) %>%
  **# Group by sentiment**
  group_by(sentiment) %>%
  **# Take the top 10 words for each sentiment**
  top_n(10) %>%
  ungroup() %>%
  mutate(word = reorder(words, n)) %>%
  **# Set up the plot with aes()**
  ggplot(aes(words, n, fill = sentiment)) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~ sentiment, scales = "free") +
  coord_flip()

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

推文分为十种情绪状态

结论:从分析中得到一些有趣的见解

  • 总体而言,这些推文传达了一种战胜冠状病毒的乐观情绪(使用“自豪”和“希望”等词的频率很高)。
  • 当查看 unigram frequency 时,“false”这个词在其他词中脱颖而出,这表明 twitter 上有故意误导读者的新闻或故事。
  • 出现频率最高的词与美国国立卫生研究院(National Institutes of Health)冠状病毒疫苗的临床试验有关,这表明人们更关心找到疫情的治愈方法。
  • 如果你仔细观察情绪状态分析图表,你会发现与其他情绪状态标签相比,带有快乐或积极标签的单词出现频率较低。

注意安全,保重!

编者按: 走向数据科学 是一份以数据科学和机器学习研究为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

30 年来,不同的衡量标准如何与 NBA 的胜利相关联

原文:https://towardsdatascience.com/how-different-metrics-correlate-with-winning-in-the-nba-over-30-years-57219d3d1c8?source=collection_archive---------36-----------------------

哪些指标导致 NBA 篮球队获胜?在过去的 30 年里,衡量指标与成功的相关性发生了怎样的变化?

在过去的几十年里,甚至在过去的几个赛季里,这项运动发生了巨大的变化。这项运动已经趋向于分析驱动的篮球,强调远距离投篮和更快的节奏。

这是我的新系列的第一篇文章,在 NBA 获胜,,它将从联盟、球队和球员的层面深入到几个变量和角度,看看是什么影响了篮球的胜利。第一篇文章分析了一系列球队层面的赛季总比率指标,如投篮命中率、助攻失误率和进攻篮板率,以了解这些指标在高表现和低表现球队之间的差异,并衡量每个指标与球队记录的相关性。

你可以在 GitHub 上下载 Jupyter 笔记本,上面有我的互动图表和重新格式化的篮球参考数据集。

团队的得分指标与当前赛季获胜的相关性

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

在当前赛季(2019-2020),两分投篮命中率是与获胜相关性最高的指标(. 71)。这意味着两分球命中率越来越高的球队往往会有越来越高的获胜记录。尽管来自三分球的投篮比例有所增加,但三分球命中率滞后于赢球的相关性(. 45)。紧随其后的是助攻失误率(. 31),罚球命中率(. 21),三分球命中率(. 13)。一些指标与成功呈负相关,例如 2 分制范围内的分数百分比(-.12)。这意味着在弧线内得分比例较高的球队往往胜率较低。其他与胜利负相关的指标包括助攻与投篮命中率高的球队和进攻篮板率高的球队。

过去 30 年的指标趋势

让我们看看这些指标的重要性是如何随着时间的推移而变化的。在下面的一组图表中,数据查看了从 1989-90 年到目前暂停的 2019-20 赛季的每五个赛季。

为了表明获胜的篮球队最常拥有的指标,每个赛季的球队根据他们的胜率被分成三个大小相等的组:

-‘顶级’三分位数:胜率为 0 . 593(或在 82 场比赛的赛季中 49 胜)或更高的球队

-‘中’三分位数:胜率在 0.370 到 0.593 之间的球队(每 82 场赛季 30-48 胜)

  • “垫底”三分之一:胜率低于 0 . 370 的球队(82 场比赛的赛季胜率不超过 29 场)

双轴图表图例:

-点图代表每个获胜百分比三分位数的平均团队绩效(绿色=最高获胜百分比三分位数,黄色=中间三分位数,红色=最低获胜百分比三分位数)

-条形图代表每个赛季最高三分位数(记录最好的球队)和最低三分位数(胜率最低的球队)之间的差异。

助攻进球

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

在 90 年代上升后,最好和最差球队之间的助攻数差距已经逆转。1999 年,顶级球队领先最差球队 6 个百分点,但在当前赛季,不仅对投篮命中率的助攻减少了 8 个百分点(从 67%到 59%),而且 2020 年最低胜率的球队比最佳球队的比例更高。

两分球投篮命中率

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

越来越多的球队正在采取专注于短两分或三分球的进攻策略,消除中距离投篮,这是一种命中率较低的投篮。因此,所有三分位数的平均投篮命中率都有所提高。在本赛季,这种转变很大程度上可能是因为联盟领头羊(雄鹿和湖人)的三分球命中率都低于平均水平。在 2014-2015 赛季,三支赢球最多的球队(勇士、老鹰和快船)也有三个最高的 3 分投篮记录。

三分球命中率

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

对于三分球来说,过去三十年中最好的球队一直在以最高的精确度进行远距离投篮,但联盟中的其他球队正在迎头赶上。1990 年,胜率最高的球队比最差的球队投篮高出 3.7 分,到 2020 年,这一差距缩小到 1.9 个百分点。

三分投篮命中率

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

在过去的三十年里,深球在进攻中的重要性已经大大增加了。在 2014-15 赛季,顶部和底部三分位数之间的差距超过了 5 个百分点,但五年后,在球队遵循勇士队推广的模式后,差距不到一个百分点。

每场罚球次数

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

随着球队在弧外投篮的比例越来越高,每个投篮尝试的犯规次数(和罚球次数)在所有三个部分都在减少。1995 年,获胜的球队每场罚球次数为 0.36 次,到 2020 年,这一比例下降到 0.26 次。

比较联盟的指标表现与指标与获胜的相关性

在下面的两个双轴图表中,条形图代表该赛季中球队的平均表现,而折线图代表该指标与获胜的相关性。

助攻失误率

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

助攻失误率从 2004-05 赛季的 1.47 次助攻/失误持续上升到本赛季的 1.67 次。然而,这一指标与成功的相关性继续下降。在 1995 年达到 0.78 的高点后,与获胜的相关性在本赛季下降到了 0.31。

进攻篮板率

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

一支球队的进攻篮板能力看起来也在下降。自 1990 年以来,每场投篮失误的进攻篮板数一直在稳步上升,与赢球的相关性已经降到了零以下,这意味着进攻篮板率较高的球队往往会有更差的赢球记录。

感谢您阅读我最新的数据帖子。你可能有兴趣阅读我之前关于 大都市地区各行业就业增长趋势 的帖子。作为一名产品营销和数据分析专业人士,我对数据支持的讲故事充满热情。这些数据新闻帖子是我将真实数据与我个人的不同兴趣整合起来的方式,这些兴趣包括从旅行和娱乐到经济和社会问题的任何事情。
如果您有任何评论、故事想法或预期的数据项目,请随时发送电子邮件至 dwpwriting <邮箱至> gmail < dot > com 或通过
LinkedIn联系我。

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

图片来自 Pexels.com

数据分析和机器学习中的歧视是如何发生的:代理变量

原文:https://towardsdatascience.com/how-discrimination-occurs-in-data-analytics-and-machine-learning-proxy-variables-7c22ff20792?source=collection_archive---------26-----------------------

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

泰勒·维克在 Unsplash 上的照片

数据分析[DA]和机器学习[ML]是结构化的、定量的方法来回答关于数据集的困难问题。DA 和 ML 的承诺是,获得的关于世界的洞见可以比人类发现的洞见复杂得多,而且这些洞见将不受人类偏见的影响。本文将集中讨论第二个承诺,DA/ML 的完全客观性。人们早就认识到,数据分析/计量的结果可能会因方法的选择而有很大差异,这已经对客观性的说法造成了打击。然而,最近出现了一个更基本的问题——用于 DA/ML 的数据通常包含人为偏差,对这些数据执行的 DA/ML 会复制这些偏差。

数据的主观性质可能比方法选择的主观性质更麻烦,不同的方法可以很容易地相互比较,但很难检测和处理数据集中的主观性。例如,当使用 DA/ML 技术评估个人偿还贷款的能力时,我们很可能会使用一个数据集,该数据集由历史上人们做出的此类判断组成。不幸的是,其中一些人可能偏向某些人群,而对其他人有偏见。因此,DA/ML 分析的结果将与数据集相符,并复制这种偏差。这种可悲的现象在许多不同的特征(如种族、性别、年龄)和领域(如借贷、雇佣、刑事司法、医疗诊断)中都有记载。当你只有一份获得贷款的人的名单时,你如何发现这样一个数据集中的主观性?

例如,有大量文献表明,非洲裔美国人更难获得贷款,即使他们的还款能力与获得贷款的白人完全相同[1]。这是种族主义的明显例子。当执行 DA/ML 时,我们训练我们的模型根据我们提供的数据执行任务。如果我们使用来自种族主义贷方的数据集,我们将发现我们执行的 DA/ML 将复制这种种族主义,因为这是它在学习期间接收的数据。当我们分析种族主义的判断时,我们会得出种族主义的结论,这不足为奇。

一个更微妙和复杂的例子是,当我们不训练估计人类的判断(例如,是否给予贷款),而是真实世界的结果(例如,贷款偿还/违约)。与直觉相反,这种情况也会导致歧视。这种歧视通过“恶性反馈循环”发生[2]。例如,当一个人被判断为风险更高的借款人时,他们的利息将被设置为更高的水平。在一定时间内,这增加了他们必须偿还的金额,因此使他们更有可能拖欠贷款。这作为 DA/ML 模型的正反馈,即使同一个人可能没有违约,如果他们在第一时间被判断为风险较低,并相应地设定了他们的利息。基于种族、性别或邮政编码等特征,此人可能被判断为更具风险。因此,即使用于训练模型的数据是客观测量的结果,而不是可能有偏见的人的主观决定,DA/ML 也不能避免偏见。

已经设计了许多方法来解决这些问题。在这里,我将重点关注最受欢迎的一种方法,这种方法在解决偏见方面也是最差的。这种方法包括简单地删除包含我们不希望 DA/ML 的结果有偏见的特征的数据列。这种方法行不通的原因很简单:关于一个人的任何特征的信息在某种程度上都包含在这个人的其他特征中。例如,亚马逊的实验性招聘算法无法获得申请人的性别信息,学会了拒绝某些女子大学的申请人[3]。同样的事情最近也发生在苹果卡上,当它被发现提供给女性的信用额度比背景相似的男性要少。让我们来看一个更详细的例子。

在本例中,我们将重点关注年龄歧视,这种歧视是在分析哪些员工缺勤较多时出现的。这个例子是基于我们最近在 illumr 进行的分析,详情请见原始报告[5]。当您尝试使用包含年龄相关信息的数据集创建员工缺勤模型时,DA/ML 的结果将是一个几乎完全依赖年龄来确定员工缺勤次数的模型。根据欧盟人权公约和美国平等法案,年龄是受保护的特征之一,以这种方式在招聘中使用年龄作为标准显然是非法的。

当你把年龄从数据集中去掉,做同样的练习,你会得到几乎完全相同的结果。发生这种情况是因为您的模型隐式地识别了员工的年龄,尽管它从未见过。这样做的原因是,关于个人年龄的信息包含在雇主掌握的其他信息中。这种信息没有明确地保存,而是有一些弱指标,也称为代理变量。在下面的(完全虚构的)例子中,你可以看到所有的名字、地址、教育程度、吸烟和饮酒习惯、养宠物、饮食、身高和身体质量指数都是年龄的代理变量。

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

个人的许多特征提供了他们年龄的微弱指示,称为代理变量。机器学习和数据分析能够将这些弱指标结合成与个人年龄密切相关的强指标。因此,即使数据中没有明确包括年龄,也可能存在年龄歧视。这同样适用于个人的任何其他特征,如种族或性别。

在本例中,DA/ML 将推断每个人的年龄,然后将其用作缺勤次数的有力指标,而无需模型明确使用年龄。代理变量可能很复杂,因此很难发现,那么解决方案是什么呢?

一种解决方案是在模型的输出中明确寻找歧视,然后进行事后纠正。然而,这有许多问题(我在我的论文[6]中深入讨论了这些问题)。最值得注意的是,没有定量定义和普遍接受的歧视概念,有些定义甚至是相互排斥的[7]。在 illumr,我们开发了一个名为 Rosa 的解决方案,它采用了另一种方法。Rosa 获取您的数据集并查找代理变量,然后根据需要尽可能少地更改它们,以删除有关受保护特征的信息。当您对 Rosa 处理的数据使用 DA/ML 时,没有代理变量,因此您的模型不可能进行区分。你可以在www.illumr.com/rosa免费试用 Rosa(有一些最低限度的限制)。

参考资料:

[1]玛吉·奥斯汀·特纳。抵押贷款歧视:对现有证据的重新审视。1999.凯茜·奥尼尔,《数学毁灭武器:大数据如何加剧不平等并威胁民主》。百老汇图书,2016。
【3】https://www . Reuters . com/article/us-Amazon-com-jobs-automation-insight/Amazon-scraps-secret-ai-recruiting-tool-that-show-bias-against-women-iduskcn 1 MK 08g,检索 2020 年 2 月 1 日。
【4】https://www . wired . com/story/the-apple-card-not-see-gender and-that-the-the-problem/,【2020 年 2 月 1 日检索。
【5】
www.cevora.xyz/RosaExamples.pdf检索于 2020 年 2 月 1 日。
【6】www.cevora.xyz/FANs.pdf检索于 2020 年 2 月 1 日。
【7】亚历山德拉·乔尔德乔娃。具有不同影响的公平预测:对累犯预测工具偏差的研究。大数据,5(2):153–163,2017。

A/B 测试是如何工作的?

原文:https://towardsdatascience.com/how-do-a-b-tests-work-996842ce6fc0?source=collection_archive---------5-----------------------

深入了解科技行业最强大的工具之一

简而言之: A/B 测试就是通过创建可信的克隆来研究因果关系——两个相同的项目(或者,更典型的是,两个统计上相同的组)——然后观察不同对待它们的效果。

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

当我说两个相同的项目时,我的意思是比这更相同。关键是找到“可信的克隆体”…或者让随机化加上大样本量为你创造它们。图片:来源

科学的、受控的实验是不可思议的工具;他们允许你谈论什么导致什么。没有它们,你所拥有的只是相关性,这通常对决策没有帮助。

实验是你在礼貌交谈中使用“因为”这个词的许可证。

不幸的是,很常见的是,人们自欺欺人地认为他们的推论是正确的,声称科学实验的好处,而没有进行适当的实验。当存在不确定性时,你所做的不能算作实验,除非所有以下三个要素都存在:

  • 应用不同的处理
  • 随机分配的治疗
  • 科学假说得到验证(见我的解释此处

如果你需要复习这个话题和它的逻辑,看看我的文章 你是否因为错误地使用“实验”这个词而感到内疚?

实验为什么有效?

为了理解为什么实验是对因果关系进行推论的工具,让我们来看看一个最简单的实验背后的逻辑:A/B 测试。

简短解释

如果你不想看详细的例子,看看这个 GIF,然后跳到最后一节(“秘制酱是随机化的”):

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

冗长的解释

如果你喜欢一个全面的例子,我已经为你准备好了。

想象一下,你的公司有一个灰色的标志已经有几年了。既然你所有的竞争对手都有灰色标识(模仿是最真诚的奉承),你的高管们坚持要换成更明亮的颜色……但是是哪一种呢?

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

您的用户看到的徽标是灰色的,但这种情况即将改变。

在仔细评估了你公司的网站配色方案的实用性后,你的设计团队确定了仅有的两个可行的候选色:蓝色和橙色。

CEO 最喜欢的颜色是蓝色,所以她选择批准蓝色作为 默认动作 。换句话说,她是说如果没有进一步的信息,她很乐意选择蓝色。对你来说幸运的是,她是一个强有力的数据驱动型领导,愿意允许数据改变主意。

为了切换到替代动作 批准一个橙色标志,CEO 需要证据证明一个橙色标志 导致 你当前的用户群在你网站的特定部分点击更多(相对于蓝色)。

你是公司的高级数据科学家,所以你要竖起耳朵。从frequentist statist**中,你立即发现你的 CEO 的决策方法符合框架。仔细听完她的话后,你确认她的无效假设和替代假设与因果关系有关。这意味着你需要做一个实验!总结她告诉你的话:

默认动作: 批准蓝色标志。
替代动作: 批准橙色标志。
无效假设: 橙色标志 不会导致 比蓝色标志至少多 10%的点击量。
替代假设: 橙色标志 确实会导致 比蓝色标志多至少 10%的点击量。

为什么是 10%?这是你的 CEO 愿意接受的最小 效应大小 。如果决策者关心效果的大小,那么这些应该在一开始就纳入假设检验。测试“无差异”的零假设是一个明确的声明,你根本不在乎效果的大小。

对于这样的设置,A/B 测试是完美的实验设计。(对于其他因果决定,可能需要其他设计。虽然我在这里只讨论 A/B 测试,但是更复杂的设计背后的逻辑是相似的。)

所以,我们来做个 A/B 测试吧!

现场交通实验

有各种各样的方法来运行 A/B 测试。你在心理学实验室(和焦点小组研究)看到的往往是邀请街上的人,随机向不同的人展示不同的刺激,然后问他们问题。唉,你的首席执行官正在寻找更困难的事情。她的问题只能用一个实时流量 实验来回答,听起来确实是这样的:当不同的用户在你的网站上处理日常事务时,你将为他们提供不同版本的 logo。

实验基础设施

如果你想运行一个真实的交通实验,你需要一些特殊的基础设施。与您的工程师合作,建立随机为不同用户提供不同治疗的能力,以及根据治疗条件跟踪您的 CEO 所需指标(某些网站元素的点击率)的能力。

(如果你想知道为什么每个人都不总是做实时交通实验,答案通常与重新配置一个没有考虑实验的生产系统的高昂前期成本有关。虽然像 Google 这样的公司在我们甚至知道我们想要运行什么实验之前就在我们的大部分系统中构建了实验基础设施,但传统组织可能会忘记在一开始就添加这一功能,结果可能会发现自己落后于更懂技术的竞争对手。顺便提一下,如果你想进入应用的 ML/AI 游戏,实验基础设施是必须的。)

样品

因为你非常谨慎,所以你不会用一个突然出现的新 logo 让所有用户感到惊讶。更明智的做法是为您的实验抽取一部分用户,然后逐步推广(如果您的更改造成了不可预见的灾难,可以选择回滚到灰色)。

控制

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

图片:来源

如果你有兴趣了解用户对新奇事物的反应——他们是否会因为商标改变而点击更多,而不管它变成了什么?—你可以使用灰色标志作为你的对照组。然而,这不是你的首席执行官想要回答的问题。她对隔离橙色相对于蓝色的因果影响感兴趣,因此考虑到她构建决策的方式,控制组应该是显示蓝色标志的用户。

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

首先,您的系统尝试性地将蓝色徽标基线应用于样本中的所有用户。

但在系统实际向他们展示蓝色标志之前,实验基础设施投掷一枚虚拟硬币,随机将一些用户重新分配到橙色治疗中,并向他们展示橙色而不是蓝色。

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

然后——随机地——你向一些用户展示橙色版本,但不向其他用户展示。

如果你随后观察到橙色版本的平均点击率更高,你将能够说是橙色处理导致了行为的差异。如果这一差异在统计上高于 10%,你的首席执行官会像她承诺的那样,愉快地换成橙色。如果没有,她会选择蓝色。

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

如果用户在橙色处理条件下的反应不同于控制条件,你可以说显示橙色版本* 比蓝色版本导致* 更多的点击。

秘方是随机化

如果你没有随机地这样做,如果你给所有登录的用户橙色处理,而给其他人显示蓝色处理,你不能说是橙色处理造成了差异。也许你的登录用户只是对你的公司更忠诚,更喜欢你的产品,不管你把 logo 做成什么颜色。也许你的登录用户有更高的点击倾向,无论你向他们展示什么颜色。

随机化是关键。这是让你得出因果结论的秘方。

这就是为什么随机性是如此重要。在大样本量的情况下(没有大量的统计能力实验就无法进行),随机选择会产生差异明显的群体。从统计学上来说,这两个群体是彼此可信的克隆体。

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

你的决策标准越简单,样本量越大,你的实验设计就越简单。A/B 测试很棒,但更花哨的实验设计允许您明确控制一些混淆因素(例如,2x2 设计,您将登录用户与未登录用户分开,并在每个组中运行迷你 A/B 测试,让随机性为您处理其余的问题)。当您强烈预感到橙色徽标会对登录用户产生不同的影响,并且希望将这一点纳入您的决策时,这一点尤其有用。无论哪种方式,随机选择都是必须的!图片:来源

由于随机选择,在 A/B 测试的蓝色和橙色条件下的用户群体在所有方面都是相似的(总的来说),人们传统上认为他们会挑选参与者来平衡他们的学业:相似的性别,种族,年龄,教育水平,政治观点,宗教信仰……但他们在所有你可能没有想到要控制的方面也是相似的:相似的爱猫者,喝茶者,游戏者,哥特人,高尔夫球手,尤克里里所有者,慷慨的给予者,优秀的游泳者,暗中讨厌他们的配偶的人,没有这样做的人

当你使用随机化来创建两个大的组时,你得到了一个统计空白画布。

这就是大样本和随机选择相结合的好处。你不必依靠你的聪明来想出正确的混杂因素来控制。当你使用随机化来创建两个大组时,你得到了一个统计空白画布——你的两个组在统计上在各方面都是相同的,除了一点:你要对他们做什么。

除了一点:你要对他们做什么之外,你的两组在统计上完全相同。

如果你观察到两组结果之间的实质性差异,你将能够说所发生的差异是由于 你所做的。你可以说是你的治疗造成的。这就是(适当的)实验的惊人力量!

如果我们做了一个真正的实验,并在小组结果中发现了显著的差异,我们可以把这归咎于我们所做的!

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

开怀大笑之后,互联网对这些猫做的第一件事就是玩一个非常吹毛求疵的游戏“找出差异”如果你展示两个劣质的“克隆体”并试图将不同的结果归咎于不同的治疗方法,科学家也会这么做。没有大样本,你怎么知道不是鼻子下面的那个小点导致了你可能观察到的任何结果?图片:来源

感谢阅读!喜欢作者?

如果你渴望阅读更多我的作品,这篇文章中的大部分链接会带你去我的其他思考。不能选择?试试这个:

[## 为赶时间的人统计

曾经希望有人能告诉你统计学的意义是什么,术语用简单的英语表达是什么意思吗?让…

towardsdatascience.com](/statistics-for-people-in-a-hurry-a9613c0ed0b)

与凯西·科兹尔科夫联系

让我们做朋友吧!你可以在 TwitterYouTubeSubstackLinkedIn 上找到我。有兴趣让我在你的活动上发言吗?使用表格取得联系。

人工智能课程怎么样?

如果你想尝试一门为初学者和专家设计的有趣的应用人工智能课程,这里有一个我为你制作的娱乐课程:

在这里欣赏整个课程播放列表:bit.ly/machinefriend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值