原文:TowardsDataScience Blog
协议:CC BY-NC-SA 4.0
原文:https://towardsdatascience.com/the-ultimate-list-of-courses-for-data-scientists-6ad615d6eb43?source=collection_archive---------10-----------------------

照片由 Siora 摄影在 Unsplash 上拍摄
十年前,你可能很难找到学习数据科学的在线课程。现在,你将面临一个不同的问题:网上的内容太多了,你不知道该选择什么。
在 Coursera 上搜索“数据科学”,到今天为止,你会得到近 3000 个不同的结果。势不可挡,对吧?
我从事在线课程已经很多年了,这些年来,我收集了所有好课程的清单(以及是什么让它们变得好)。在本文中,您会发现一个结构化的在线课程列表,分为 5 个主要类别,我相信它们涵盖了数据科学家/机器学习工程师应该知道的大部分内容:
虽然其中大多数是实际课程,但有些是专业课程(一组应该按顺序完成的课程)。你可能不会做所有的,因为所有的内容会花你几年的时间,但是你可以(也应该)挑选最适合你的。
这是我能在网上找到的最基础的统计学课程,将真正从零开始,例如,通过中位数和均值的概念。如果你对统计学几乎一无所知,就做这个吧。
https://www.coursera.org/learn/basic-statistics
本课程相当完整,将涵盖与数据科学相关的大部分统计理论。它遵循的内容与《数据科学实用统计学》这本书大致相同(如果你想看这本书的概要,这里有一篇文章)。然而,它假设你知道一些基础知识,比如标准差、均值等的公式。如果你已经有一些统计学的入门知识,我推荐这个。
https://www.coursera.org/learn/stanford-statistics
这个 R 专业也相当完整,包括从概率和推理统计到贝叶斯统计的 5 门课程。然而,有一个主要的警告:它不会教你 R,它会教你使用 R 进行统计。因此,只有在你已经熟悉 R,并且只想重温你的统计技能的情况下,才选择这门课程,否则你将会与 R 作斗争,而不是学习统计(我将在本文后面进一步讨论如何学习 R)。
https://www.coursera.org/specializations/statistics
这门课程由 IBM 提供,将涵盖一些基础知识,但更多的是应用思维。由于它不会涵盖您需要的所有统计学知识,我建议您将它与之前提到的两门课程之一(“基础统计学”或“统计学导论”)一起学习。
https://www.coursera.org/learn/statistics-for-data-science-python
对于编码来说,视频讲座不会有太大帮助。相反,我建议你尝试一个编码平台,比如 Codeacademy。他们有你需要的所有主要语言的编码学习课程,还有很多专门用于数据科学和数据分析的东西。他们的一些内容是免费的,但你必须为更具体的“课程”每月付费(虽然不贵,而且他们为学生提供折扣)。
https://www.codecademy.com/catalog/language/python https://www.codecademy.com/catalog/language/r https://www.codecademy.com/learn/learn-sql https://www.codecademy.com/learn/learn-git
这是由谷歌提供的专业证书,包括 8 门课程,将教你很多关于数据分析和可视化的知识,涵盖从数据准备到如何提出正确问题的主题,并以一个顶点项目结束。如果你在这个主题上只选择一个专业,这应该就是了。此外,你最终将获得谷歌颁发的专业证书。
https://www.coursera.org/professional-certificates/google-data-analytics#courses
由纽约大学提供的 4 门专业课程将涵盖许多对数据科学家来说可能是新的可视化概念,如使用颜色、空白空间、注释和对比。它不是关于使用一个特定的工具,而是教你如何让你的下一个数据可视化真正脱颖而出。
https://www.coursera.org/specializations/information-visualization#courses
即使作为一名数据科学家,您可能不会做很多业务报告,但您仍然可以从 BI 工具中受益,因为有两件事:以更具吸引力和互动性的方式向受众展示您的发现,以及为数据团队创建仪表板以监控模型性能。现在,深入研究具体的工具,这个 Udemy 课程将教你 Tableau 的所有基础知识,Tableau 是最常见的 BI 工具之一。这并不是一个很难学习的工具,因此通过参加本课程并练习一段时间,您将很快能够创建令人印象深刻的报告和仪表板。
https://www.udemy.com/course/tableau-specialist-certification-prep/
Power BI 也是数据可视化和 BI 最常用的工具之一。你只需要学习其中一个,所以选择 Power BI 或 Tableau,你应该没问题(基础或多或少是相同的,所以通过学习它们中的任何一个,你将更容易地学习任何其他新工具)。
本具体课程不会占用您太多时间,将涵盖您需要了解的 Power BI 日常使用的所有内容。
https://www.udemy.com/course/microsoft-power-bi-up-running-with-power-bi-desktop/
这是我上过的关于机器学习的最好的课程之一,它将深入主要的 ML 算法的细节,包括它们背后的数学。吴恩达将教你如何使用 Matlab 从头开始编写代码,我发现这既痛苦又有启发性(事实往往如此)。我极力推荐这门课程。
https://www.coursera.org/learn/machine-learning?
另一本是吴恩达写的,这本书将教会你在现实生活中做数据科学时非常强大的东西:如何构建你的 ML 项目。你可能知道统计、编码和算法,但是,当实际实施你的项目时,这个为期两周的课程将为你提供一个简化流程的框架,这意味着你不会再浪费时间思考下一步该做什么。考虑到它有多短,你绝对应该做这个。
https://www.coursera.org/learn/machine-learning-projects
这是一个相当长的专业,有 9 门课程旨在为你准备谷歌云平台(GCP) ML 工程师认证。我建议,只有当你已经是一名经验丰富的数据科学家,并且想提高你的 ML 工程技能和/或想学习如何使用 GCP 时,你才可以做这个。如果你是这种情况,你会发现这个课程很有启发性。警告:如果你没有太多的 GCP 经验,这个课程不足以通过 ML 工程师认证,你需要更多的实践经验或更多的学习才能达到目的。
https://www.coursera.org/professional-certificates/preparing-for-google-cloud-machine-learning-engineer-professional-certificate#courses
这是 IBM 提供的 5 门基础专业课程,首先介绍数据工程,然后介绍关系数据库以及 SQL 和 Python 在数据科学中的应用。因为它将涵盖一些基本的 Python 内容(比如数据结构),如果您已经熟悉它,那么它可能有点多余。然而,您可能会从 Python APIs 和 web 废料部分以及实际项目中获得一些东西。
https://www.coursera.org/specializations/data-engineering-foundations#courses
在 4 个简短的课程中,本专业将带您了解为生产实施 ML 模型和管道的所有步骤。这是相对基础的,适合初学者,但如果你愿意动手练习,它会给你一个很好的实践概述的主题。
https://www.coursera.org/specializations/machine-learning-engineering-for-production-mlops
MLOps 内容面向 GCP 用户,这一为期 3 周的简短课程将帮助您了解更多关于 Kubernetes、Kubeflow 和 AI 平台的信息。只有当你对 GCP 的 ML 工程感兴趣时才有用。实践练习有一些错误和问题,但总的来说,这是了解 GCP MLOps 的最佳方式。
https://www.coursera.org/learn/mlops-fundamentals
如果你淹没在内容超载中,不知道从哪里开始,使用这个列表作为指南。你也可以留着以后用,当你需要某个特定主题的学习材料时再来看。
如果你喜欢这篇文章,你可能也会喜欢这些:
https://medium.com/curious/5-books-every-data-scientist-should-read-in-2021-206609d8593b
如果你想进一步讨论,请随时通过 LinkedIn 联系我,这将是我的荣幸(老实说)。
原文:https://towardsdatascience.com/the-ultimate-literature-review-for-causal-inference-1b3109a33162?source=collection_archive---------11-----------------------

在 Unsplash 上由 Jaredd Craig 拍照
随着最近宣布2021 年诺贝尔经济学奖,因果推理技术和基于观察数据的实证研究重新引起了研究人员的注意。公告说:
今年的获奖者——大卫·卡德、约书亚·安格里斯特和圭多·伊本斯——为我们提供了关于劳动力市场的新见解,并展示了从自然实验中可以得出什么样的因果结论。他们的方法已经扩展到其他领域,彻底改变了实证研究。
在我之前的文章中,我已经讨论了什么是因果推理,为什么我们需要因果推理,以及用于进行因果推理的方法论是什么:
受诺贝尔奖公告和研究人员开展的学术工作的激励,在本文中,我想重点介绍使用不同因果推理技术的学术背景和行业应用。因果推理在科技公司中被广泛用于支持数据驱动的决策。本文是对结合因果推理和机器学习算法的潜力的探索,将它的用例边界扩展到学术界之外。本文没有深入到技术细节,而是作为一篇高水平的文献综述,提供了更多细节的博客文章和研究论文的链接。我建议你把这篇文章加入到你的阅读清单中,并不时阅读你感兴趣的链接文章。
一般来说,我们可以将与因果推理相关的方法分为三类:
在下面的部分中,我将详细讨论这三个类别。
1。A/B 测试
科技公司最常用的因果推断是 A/B 测试。没有什么比在用户中进行 A/B 测试更有助于营销决策。大量的资源都在辅导 A/B 测试。具体来说,请查看:
了解 A/B 测试的基本知识不足以进行实验。知道你通过实验得到的结果是否有意义和可信是很重要的。俗话说:
“糟糕的测试设计比没有设计更糟糕”
在宣布可靠的结果之前,需要关注某些方面:
然而,在某些情况下,提前结束实验是有可能的,请看网飞的这篇博文:
https://netflixtechblog.com/improving-experimentation-efficiency-at-netflix-with-meta-analysis-and-optimal-stopping-d8ec290ae5be
https://vwo.com/blog/aa-test-before-ab-testing/
https://eng.lyft.com/experimentation-in-a-ridesharing-marketplace-b39db027a66e
https://blog.statsig.com/pitfalls-of-multi-arm-experiments-445c81ae75d
2。其他实验
A/B 测试,由于其假设,仅限于某些用例,如网页设计,用户参与度研究等。通过采用后面的类似概念,我们可以将实验扩展到许多其他应用。例如,来自 Dube 和 Misra (2017) 的论文对 ZipRecruiter 的客户进行了实验,通过向不同的客户显示不同的价格来估计他们客户的价格弹性。与使用历史数据来估计客户支付意愿的传统机器学习算法相比,现场实验给出了更可靠的结果,因为我们的目标是测量价格和数量之间的因果关系。然而,进行实地试验更费时费钱,尤其是在定价方面。当运行标准实验不可行时,我们寻求其他方法来获得可靠的结果。
1。差异中的差异(DID)
当对照组和治疗组之间存在预先存在的差异时,通常使用 DID。在没有任何干预的情况下,我们利用实验前数据来控制这些基线差异。下表总结了 DID:

按作者
虽然它在经济研究论文中被广泛使用,但它在行业中越来越被认可。看看 Airbnb 的这个用例:
https://medium.com/airbnb-engineering/experimentation-measurement-for-search-engine-optimization-b64136629760
2。隆起建模
隆起建模是因果推理和机器学习的结合。面对防止客户流失的问题,传统的机器学习模型使用一系列特征来预测客户流失的可能性。对于相同的客户群体,在给定相同特征的情况下,提升建模衡量市场活动(待遇)对客户流失可能性的影响。具体来说,它将客户分为四类:
提升建模有助于预测客户将属于哪个类别,以便他们可以只瞄准可说服的客户来充分利用资源。隆起建模中的资源包括:
**
https://medium.com/data-from-the-trenches/enterprise-causal-inference-beyond-churn-modeling-78a13a431501
https://www.predictiveanalyticsworld.com/machinelearningtimes/how-uplift-modeling-helped-obamas-campaign-and-can-aid-marketers/2613/
因果推理和隆起建模文献综述
3。回归不连续性(RDD):
回归不连续性是在截止点测量治疗效果,假设位于截止点附近的受试者非常相似,但被随机分配到不同的组:

作者绘制
这种方法源于一篇分析奖学金项目效果的经济研究论文。诺奖得主大卫·卡德利用 RDD,通过对比相邻的两个州:新泽西和宾夕法尼亚,分析了实施最低工资对就业的影响。在工业领域,Cohen 等人(2016 年)利用历史数据,利用 RDD 估算了优步客户的价格弹性。更多细节,请点击我的博客:
4。仪器变量
工具变量是与自变量 X 高度相关,但与因变量 y 不直接相关的变量。

作者绘制
通过测量仪器变量 Z 对结果变量 Y (Z~Y)的影响,并测量治疗 X 与 Z (ZX)的相关程度,我们可以确定(XY)之间的因果联系,而不用担心其他混淆变量。关于这种方法在科技公司的应用和更多细节,请查看 Roblox 的这篇精彩文章:
https://blog.roblox.com/2021/09/causal-inference-using-instrumental-variables/
这个教程:
https://medium.com/teconomics-blog/machine-learning-meets-instrumental-variables-c8eecf5cec95
5。合成控制:
当治疗发生在聚集水平(而不是个体水平)并且只有一个治疗病例和几个对照病例时,综合控制非常有用。这篇博文有更多的细节:
6。转回:
如上所述,当有网络效应时,我们不能在个人层面上进行实验,因为用户之间是相互影响的。在这种情况下,我们可以在更集中的级别上运行实验并在集中的级别上进行比较,或者在不同的时间在相同的市场上运行实验,或者两者兼而有之。请查看 DoorDash 的这个示例,了解更多详细信息:
https://medium.com/@DoorDash/switchback-tests-and-randomized-experimentation-under-network-effects-at-doordash-f1d938ab7c2a
7。局部平均治疗效果(后期):
局部平均处理效应是由诺贝尔奖获得者 Guido Imbens 和 Joshua Angrist 于 1994 年首先提出的。这在你无法对受试者实施治疗的情况下特别有用。例如,您可以向某些客户发送电子邮件促销,并将他们放入治疗组,但您永远无法确定他们是否打开了电子邮件并看到了促销,除非他们进行了购买。受试者可分为四组:
通常我们假设没有挑战者,总是接受者和从不接受者只是对称的。在我们随机分配治疗的实验中,当比较治疗组和对照组之间的结果差异时,我们只能测量意向治疗(ITT)效果,而不能测量平均治疗效果(ATE ),因为总是接受者和从不接受者的存在。在这种情况下,我们可以计算局部平均处理效果,即对编译者的处理效果:
后期= ITT/编者份额
正如经济学笑话所说:
“迟到总比没有好!”
自然实验是实证经济学家用来确定因果关系的技术。与临床试验或 A/B 测试不同,自然实验不将受试者分配到治疗组和对照组,并在之后收集他们的结果,它使用自然事件或研究者控制之外的其他因素。自然实验在学术界被广泛使用:
希望随着最近诺贝尔奖的公布,我们能在行业中看到更多的应用。
将因果推理与机器学习和深度学习相结合来改进算法、估计异构治疗效果等的文献更多。,绝对在我的阅读清单上:
https://www.causalflows.com/causal-tree-learning/
未完待续…
仅此而已。你的阅读清单中有哪些关于因果推理的文章?下面留言评论!
感谢您阅读本文!这是我所有博客帖子的列表。如果你感兴趣的话,可以去看看!
https://zzhu17.medium.com/my-blog-posts-gallery-ac6e01fe5cc3 https://zzhu17.medium.com/membership
或者在 YouTube 上关注我:
https://youtube.com/channel/UCMs6go1pvY5OOy1DXVtMo5A **
原文:https://towardsdatascience.com/the-ultimate-machine-learning-product-checklist-ce2520ac7cbc?source=collection_archive---------44-----------------------

(照片由 马库斯·斯皮斯克、昂斯普什 )
机器学习,人工智能,数据科学都有很多可怕而复杂的概念,比如深度神经网络,交叉熵,最优化…
这些可怕的词汇足以吓跑任何产品经理,但真正精通技术的人甚至不会考虑将机器学习集成到他们的产品中。
但反过来,如果大多数产品经理不愿雇用机器学习工程师,公司就很难从他们身上获得所有价值。
我喜欢使用非常简单的清单,在我看来任何非技术产品经理 都可以使用,来发现一个商业机会是否适合机器学习。
我将用下面的例子来解释每一点。但首先,这是完整的清单。
如果我看到一些涉及数据的东西,有点像机器学习或统计/优化,我会继续问自己四个问题。
什么造就了机器学习的机会?
一个“是”就足以确定一个机会!
但是这里有一个问题:这些机会中的一些有一些吸盘属性,使它们绝对不适合数据科学。我喜欢认为第一个问题能给我带来“苹果”。而接下来的四个问题帮助我扔掉“坏苹果”。所以我继续问这三个问题。
什么会破坏机器学习的机会?
一个“不”已经足够识别一个坏苹果了!
让我们通过例子一步一步地介绍它们。
当机会接近某种“转换”时,小的改进通常具有商业价值。靠近一些关键的“北极星”度量事件或类似事件。小的改进很重要,如果它们仍然有很大的商业价值的话。
例如,YouTube 北极星指标在相当长一段时间内是“观看视频的分钟数”。因此,在推荐新视频的推荐系统中,任何 1-10%的改进都会直接增加北极星指标;所以所有接近这个的改进都是机器学习机会。
另一个几乎任何公司都能想出的例子是优化利润,无论你在实际生产价格之外销售什么。任何微小的百分比增加都会产生相当多的钱。
涉及“总是相同的东西”的事情通常会产生由简单的机器学习模型解决的机会。
简单的机器学习模型意味着模型并不完美,但只有 80%的准确性。这个问题背后的想法是,这通常比产生 90%准确性的模型容易 10 倍。是的,我知道,准确性是一个糟糕的指标,但我希望它能说明问题。
此外,涉及“总是相同的东西”的东西也会产生数据,而这些数据是训练任何模型所迫切需要的。
一个几乎经典的例子是整理客户的电子邮件。客户的电子邮件通常被分类成一堆按主题分组的“堆栈”,以便客户服务人员可以相应地处理它们。这要么完全手动完成,要么通过一些简单的如果…那么…在一些“电子邮件路由器”中实现的决策。
例如,优步用简单的模型和他们内部的机器学习工具解决了这个问题,这个工具使用起来非常简单。这一成功显然促使他们围绕它创建了一个完整的机器学习强大工具,名为 COTA,已经进入第 2 版。
涉及到“专家知识”的东西通常意味着手工技术劳动。优步的客户服务支持工具 COTA 被扩展来做这件事。在“分拣邮件”之后,他们发现了第二个机器学习机会:客户支持需要的专业知识,然后回复邮件。
因此,他们使用 NLP 和其他一些机器学习魔法来建议预回复&对一个进来的问题的一堆可能的答案进行排名,然后客户服务可以使用和修改这些答案。
另一个例子可以在比较网站上找到。他们通常需要对上传的图像进行分类,并检查它们是否“好看”。为了做到这一点,人类必须看大量的图像,然后形成对什么是什么的理解(是的,专家,因为人类实际上无法区分狗和猫!)以及哪些好看哪些不好看。
德国比较公司 Idealo 在 2019 年将这项任务部分转移到机器学习上,现在可以在他们的引擎中使用这些结果。
个性化非常适合这种情况,因为个性化真的只是对某人的客户有一个专业的理解,因此,例如在电子邮件中向适当的客户群显示正确的广告材料&产品。这也是几乎任何营销自动化标准机器学习套件中都有的任务。
手动瓶颈随处可见。如今,软件很容易扩展,但人们通常不会。因此,快速增长的公司的首要任务是找出人工瓶颈,并用技术取代它们,即使技术有时在这项任务上比人类做得更差。
作为交换,尽管我们达到了人类瓶颈根本不可能达到的规模。
客户服务的例子在某种程度上也属于这一类,但我想再举一个:Automattic 公司的创始故事,WordPress 背后的盈利实体为大约 30%的互联网网站提供动力,大概是这样的:马特·莫楞威格,不断编写半衰期越来越短的反垃圾邮件系统。原来垃圾邮件发送者越来越快地得到了他。
原来,马特是一个人的瓶颈。很明显,他意识到他需要用一台机器来取代人类的瓶颈。于是插件 Akismet 和 Automattic 公司诞生了。
让我们来看看那些破坏了我们目前所发现的机会的事情,从我们的苹果篮子里扔掉坏苹果。
机器学习可以实现高精度。在某些情况下,机器甚至比人类专家更准确。但是有一个警告:高精度比好精度贵得多,好精度比平均精度贵得多。
好消息是,在大多数情况下,你实际上不需要很高的精度。向几个客户发送两次电子邮件的成本通常很低。显示错误的广告(通常)也是如此。
但是将收到的钱分类到正确的账户上实际上应该是非常准确的事情!
所以问问你自己,“如果这件事有 10-20%的时间出错,这样可以吗?”。如果不是,那么很可能不值得。如果是这样的话,您可以以 80%的准确率构建第一次迭代,并且在以后还会增加准确率,但是您的成本要高得多。
每个公司都想建立一个庞大而昂贵的推荐引擎。然而,作为一个产品经理,你应该总是首先评估更简单的“如果-那么”类型的选择。
首先是手工推荐。如果你的客户群是同质的,并且只购买前 10 名购买的产品,那么也许在每篇文章下面和主页上显示一个手写的“畅销”列表就可以很好地完成这项工作。
另一方面,如果手工制作在价值/成本规模上没有很好的比较,那么你仍然可以考虑做一个类似“本类别最畅销”或“当日最畅销”的非机器学习产品。每个开发团队都可以构建这样的功能,不需要专门的机器学习工程师。
只有你觉得这两个东西真的不行,你才应该去看看机器学习推荐引擎。好处是,一旦你真的建立了一个真正的推荐引擎,你就有了一个比较基准和大量的点击率等数据。
不管人们怎么想,尽管当然有针对小数据集的机器学习技术,但从产品经理的角度来看,你必须做显而易见的事情,那些不会给项目增加很大不确定性或成本的事情。
因此,如果您的机会没有产生数据或只有很少的数据,那么就去别处看看。除此之外,产生数据很少的机会通常首先需要“别的东西”。如果你对通过机器学习帮助分拣实际的物理邮件感兴趣,通过 ocr 识别然后分拣,只有两种可能的原因导致数据很少。
一个是,无论你的目标是什么,都不会经常使用,在这种情况下,在那里进行任何机器学习的商业价值可能都很低。如果目前只有很少的邮件被光学字符识别,人们也不会考虑以后对其进行数字化分类,这可能是因为不需要它。
或者它正在使用中,但没有生成数据。如果有大量的物理邮件,但还没有人建立 OCR 流程,那么第一步应该是建立 OCR 流程,使人们能够以数字方式对邮件进行分类,并检查这是否已经产生了改进。
现在轮到你挖掘身边所有的机会和项目了。有苹果吗?如果是的话,你确定这不是一个坏苹果吗?
希望有帮助!
原文:https://towardsdatascience.com/the-ultimate-markdown-cheat-sheet-3d3976b31a0?source=collection_archive---------0-----------------------

克里斯托夫·高尔在 Unsplash 上拍摄的照片
W 帽子降价了?Markdown 是一种使用纯文本格式语法编写富文本(格式化文本)内容的方式。从这篇文章中,你将了解到 Markdown 的所有主要命令,这些命令将帮助你创建一个令人敬畏的 GitHub 自述文件。我将谈论 11 个最常用的降价话题。我还提到了不同的方法,比如使用 HTML 标记来设计自述文件的样式。如果你有兴趣,可以看看 GitHub 上的 HTML 白名单。
你可以从我的 GitHub 库下载我在这篇文章中讨论的所有内容。下面我有一个目录,这样你可以很容易地浏览这篇文章。
标题
文本样式
语法高亮显示
对齐方式
表格
链接
图片
列表
按钮(2023 年 1 月 6 日)
横线
图表(图
创建标题有几个选项。我们可以使用 Markdown、HTML 或其他语法来创建我们想要的标题。
首先,我们来谈谈 markdown 语法。
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
第二个选项使用 HTML 语法。
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<h5>Heading 5</h5>
最后,我们可以使用另一种语法。此方法仅适用于标题 1 和标题 2。在标题 1 或标题 2 的文本下方添加任意数量的=或-。
Heading 1
=
Heading 2
-
现在,让我们看看它在 GitHub 上是什么样子的。

标题
使用 markdown 语法,我们可以改变文本的样式,包括粗体、斜体、块引号、等宽、下划线、删除线、方框、下标和上标。
我们可以使用两个星号(**)、下划线(__)或一个 HTML 标签<strong>来使文本加粗。为了使文本倾斜,我们可以使用一个星号(*)、下划线(_)或一个 HTML 标签<em>。此外,我们可以使文本同时加粗和倾斜。
Bold
**The quick brown fox jumps over the lazy dog.**
__The quick brown fox jumps over the lazy dog.__
<strong>The quick brown fox jumps over the lazy dog.</strong>
Italic
*The quick brown fox jumps over the lazy dog.*
_The quick brown fox jumps over the lazy dog._
<em>The quick brown fox jumps over the lazy dog.</em>
Bold and Italic
**_The quick brown fox jumps over the lazy dog._**
<strong><em>The quick brown fox jumps over the lazy dog.</em></strong>
现在,让我们看看它在 GitHub 上是什么样子的。



粗体和斜体文本样式
要创建块引用,我们可以使用大于号>。我们可以创建单行或多行批量报价。此外,块引号内的块引号。我们可以在块引用中添加其他文本样式,例如粗体或斜体文本样式。
Blockquotes
> The quick brown fox jumps over the lazy dog.
> The quick brown fox jumps over the lazy dog.
>
> The quick brown fox jumps over the lazy dog.
>
> The quick brown fox jumps over the lazy dog.
> The quick brown fox jumps over the lazy dog.
>> The quick brown fox jumps over the lazy dog.
>>> The quick brown fox jumps over the lazy dog.
> **The quick brown fox** *jumps over the lazy dog.*
现在,让我们看看它在 GitHub 上是什么样子的。

块引号文本样式
我们可以使用 HTML 标签<samp>和<ins>实现等宽和带下划线的样式。对于删除线样式,我们可以使用两个蒂尔达符号~~。
Monospaced
<samp>The quick brown fox jumps over the lazy dog.</samp>
Underlined
<ins>The quick brown fox jumps over the lazy dog.</ins>
Strike-through
~~The quick brown fox jumps over the lazy dog.~~
现在,让我们看看它在 GitHub 上是什么样子的。



等宽、下划线和删除线文本样式
我们可以使用一个 HTML <table>标签来创建一个盒子。
Boxed
<table><tr><td>The quick brown fox jumps over the lazy dog.</td></tr></table>
现在,让我们看看它在 GitHub 上是什么样子的。

方框文本样式
我们可以使用 HTML 标签<sub>和<sup>实现下标和上标样式。当你写一个数学公式时,它是有用的。
2 <sup>53-1</sup> and -2 <sup>53-1</sup>
现在,让我们看看它在 GitHub 上是什么样子的。

下标和上标文本样式
Subscript <sub>The quick brown fox jumps over the lazy dog.</sub>
Superscript <sup>The quick brown fox jumps over the lazy dog.</sup>
现在,让我们看看它在 GitHub 上是什么样子的。

下标和上标文本样式
我们可以在代码块前后使用一个反勾```来创建下面的视图。
A class method is an instance method of the class object. When a new class is created, an object of type `Class` is initialized and assigned to a global constant (Mobile in this case).
如你所见,单词 Class 被高亮显示。

代码突出显示
我们也可以在代码块前后使用三个反斜线`````来创建下面的视图。
public static String monthNames[] = {“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”};

代码突出显示
我们可以添加一个可选的语言标识符来突出显示语法。参考这个和这个 GitHub 文档找到所有有效的关键字。
```java
public static String monthNames[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
现在,让我们看看它在 GitHub 上是什么样子的。

语法突出显示
# 联盟
通过使用 HTML 标签,我们可以调整自述文件的内容。
```

左对齐
<p align="center">
<img src="https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimages.unsplash.com%2Fphoto-1415604934674-561df9abf539%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D2772%26q%3D80&pos_id=img-09LsuMwj-1729181654338)" width="100" height="100" border="10"/>
</p>

居中对齐
<p align="right">
<img src="https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimages.unsplash.com%2Fphoto-1415604934674-561df9abf539%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D2772%26q%3D80&pos_id=img-09LsuMwj-1729181654338)" width="100" height="100" border="10"/>
</p>

右对齐
现在,让我们对齐文本。
<h3 align="center"> My latest Medium posts </h3>

居中对齐
让我们创建一个没有标题的表格。
<table>
<tr>
<td width="33%">
The quick brown fox jumps over the lazy dog.
</td>
<td width="33%">
The quick brown fox jumps over the lazy dog.
</td>
<td width="33%">
The quick brown fox jumps over the lazy dog.
</td>
</tr>
</table>

没有标题的表格
要创建带有标题的表格,我们需要使用破折号来分隔每个标题单元格,并使用管道来分隔列。外部管道是可选的。我们可以使用任意数量的破折号和空格来增加可读性。我们可以用冒号来对齐列。对于左对齐文本,在破折号的左侧使用冒号。对于居中对齐的文本,在破折号的两侧使用冒号。对于右对齐文本,在破折号右侧使用冒号。默认情况下,使用左对齐。
| Default | Left align | Center align | Right align |
| - | :- | :-: | -: |
| 9999999999 | 9999999999 | 9999999999 | 9999999999 |
| 999999999 | 999999999 | 999999999 | 999999999 |
| 99999999 | 99999999 | 99999999 | 99999999 |
| 9999999 | 9999999 | 9999999 | 9999999 |
| Default | Left align | Center align | Right align |
| ---------- | :--------- | :----------: | ----------: |
| 9999999999 | 9999999999 | 9999999999 | 9999999999 |
| 999999999 | 999999999 | 999999999 | 999999999 |
| 99999999 | 99999999 | 99999999 | 99999999 |
| 9999999 | 9999999 | 9999999 | 9999999 |
Default | Left align | Center align | Right align
---------- | :--------- | :----------: | ----------:
9999999999 | 9999999999 | 9999999999 | 9999999999
999999999 | 999999999 | 999999999 | 999999999
99999999 | 99999999 | 99999999 | 99999999
9999999 | 9999999 | 9999999 | 9999999

不同对齐方式的表格
现在并排显示两个表格。
<table>
<tr>
<th>Heading 1</th>
<th>Heading 2</th>
</tr>
<tr>
<td>
| A | B | C |
|--|--|--|
| 1 | 2 | 3 |
</td><td>
| A | B | C |
|--|--|--|
| 1 | 2 | 3 |
</td></tr> </table>

并排显示两个表格
让我们使用 HTML <br/>标签创建一个包含多行的表格。
| A | B | C |
|---|---|---|
| 1 | 2 | 3 <br/> 4 <br/> 5 |

多行表格
两张桌子并排的另一个例子。
<table>
<tr>
<th>Before Hoisting</th>
<th>After Hoisting</th>
</tr>
<tr>
<td>
<pre lang="js">
console.log(fullName); // undefined
fullName = "Dariana Trahan";
console.log(fullName); // Dariana Trahan
var fullName;
</pre>
</td>
<td>
<pre lang="js">
var fullName;
console.log(fullName); // undefined
fullName = "Dariana Trahan";
console.log(fullName); // Dariana Trahan
</pre>
</td>
</tr>
</table>

并排显示两个表格
我们可以用四种方法创建链接。第一种是使用内嵌样式。第二个使用引用样式,第三个使用相对链接,最后是自动链接。
[The-Ultimate-Markdown-Cheat-Sheet](https://github.com/lifeparticle/Markdown-Cheatsheet)

内嵌样式
如果你不止一次地使用同一个链接,那么使用引用风格将是有益的,因为你不必每次都写链接,而且更新链接也很容易。此外,您可以使用数字作为参考文本。此外,您可以使用参考文本作为链接文本。
[The-Ultimate-Markdown-Cheat-Sheet][reference text]
[The-Ultimate-Markdown-Cheat-Sheet][1]
[Markdown-Cheat-Sheet]
[reference text]: https://github.com/lifeparticle/Markdown-Cheatsheet
[1]: https://github.com/lifeparticle/Markdown-Cheatsheet
[Markdown-Cheat-Sheet]: https://github.com/lifeparticle/Markdown-Cheatsheet

参考文体的三种变体
我们也可以用所有相对链接操作数创建相对链接,比如./和../。
[Example of a relative link](rl.md)

相对链接的示例
GitHub 可以自动从标准 URL 创建链接。
Visit https://github.com/

自动链接
我们可以使用与链接类似的技术来添加图像。


内嵌样式
![alt text][image]
[image]: https://images.unsplash.com/photo-1415604934674-561df9abf539?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=100&q=80

参考风格
此外,我们可以使用 HTML img标签来添加图像。
<img src="https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimages.unsplash.com%2Fphoto-1415604934674-561df9abf539%3Fixlib%3Drb-1.2.1%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26auto%3Dformat%26fit%3Dcrop%26w%3D2772%26q%3D80&pos_id=img-09LsuMwj-1729181654338)" width="100" height="100" border="10"/>

img 标签
我们也可以嵌入 gif 和 SVG。
<img src="https://media.giphy.com/media/qLHzYjlA2FW8g/giphy.gif" />

GIF 格式
<img src="https://img.shields.io/badge/theultimatemarkdowncheatsheet-brightgreen.svg" />

挽救(saving 的简写)
对于列表,我们可以有有序列表和无序列表。
1. One
2. Two
3. Three

有序列表
现在让我们创建一个包含子项的有序列表。
1. First level
1. Second level
- Third level
- Fourth level
2. First level
1. Second level
3. First level
1. Second level

带有子项的有序列表
要创建一个无序列表,我们可以用星号、加号或减号。
* 1
* 2
* 3
+ 1
+ 2
+ 3
- 1
- 2
- 3

无序列表
现在让我们创建一个带有子项的无序列表。
- First level
- Second level
- Third level
- Fourth level
- First level
- Second level
- First level
- Second level

带有子项的无序列表
我们也可以使用 HTML 来创建一个列表。
<ul>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
<li>Fourth item</li>
</ul>

使用 HTML 的列表
现在让我们创建一个任务列表。我们可以使用连字符后跟[ ]来创建一个任务列表,为了标记任务完成,在括号内放一个x。
- [x] Fix Bug 223
- [ ] Add Feature 33
- [ ] Add unit tests

任务列表
我们可以添加按钮来描述键盘快捷键。
<kbd>cmd + shift + p</kbd>

纽扣
<kbd> <br> cmd + shift + p <br> </kbd>

带空格的按钮
<kbd>[Markdown-Cheatsheet](https://github.com/lifeparticle/Markdown-Cheatsheet)</kbd>

带链接的按钮
[<kbd>Markdown-Cheatsheet</kbd>](https://github.com/lifeparticle/Markdown-Cheatsheet)

带链接的按钮
我们可以使用三个连字符、星号或下划线来创建一条水平线。
---
***
___

水平标尺
您现在可以使用 Mermaid 来包含图表。它支持流程图、序列图、甘特图、类图、状态图、饼图、用户旅程图等图表。这是一个饼图的例子。阅读更多关于 GitHub 的信息。
```mermaid
pie
"Movies" : 80
"TV shows" : 20

圆形分格统计图表
# 数学表达式(2022 年 7 月 19 日)
您现在可以使用 [mathjax](https://www.mathjax.org/) 来包含图。你可以在 [GitHub](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions) 上了解更多。我们可以使用`$`符号显示内联,使用`$$`符号显示数学表达式。下面是一个内联数学表达式的示例:
This is an inline math expression

内嵌数学表达式
下面是一个数学表达式块的例子:

作为块的数学表达式
# 多方面的
我们可以在一个`.md`文件中包含注释。
我们可以使用反斜杠来转义文字字符。在逃跑之前。

逃跑前
逃脱后。
* Asterisk
Backslash
` Backtick
{} Curly braces
. Dot
! Exclamation mark
# Hash symbol
- Hyphen symbol
() Parentheses
+ Plus symbol
[] Square brackets
_ Underscore

逃跑后
我们还可以在我们的`.md`文件中包含[表情符号](https://gist.github.com/rxaviers/7360908)。
:octocat:

章鱼表情符号
我们可以通过键入`@`和他们的用户名或团队名称来提及一个人或团队。
@lifeparticle

提及某人
我们还可以通过键入`#`在存储库中调出一个建议问题和拉请求的列表。

参考问题和拉式请求
# 比特桶
Bitbucket 支持 [READMEs](https://bitbucket.org/tutorials/markdowndemo/src/master/) 的降价。另外,[创建一个目录](https://support.atlassian.com/bitbucket-cloud/docs/add-a-table-of-contents-to-a-wiki/)。
# Azure DevOps 项目 wiki
Azure DevOps 支持对[项目 wiki](https://learn.microsoft.com/en-us/azure/devops/project/wiki/markdown-guidance?view=azure-devops) 的降价。
# 工具
有各种各样的 Markdown 工具可以帮助你更快地构建一个漂亮的 GitHub 自述文件。
1. 创建一个内容减价表— [GitHub](https://github.com/ekalinin/github-markdown-toc)
2. 创建一个空的减价表— [表生成器](https://www.tablesgenerator.com/markdown_tables)
3. 将 Excel 转换为降价表— [表转换](https://tableconvert.com/)
4. Sublime Text 3 的降价预览— [Packagecontrol](https://packagecontrol.io/packages/MarkdownPreview)
5. 降价预览 Visual Studio 代码— [Marketplace](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced)
恭喜你!现在你知道如何为你的下一个项目创建一个精彩的自述文件了。我希望你学到了新东西。现在来看看 GitHub 的官方文档。编码快乐!
# NLP 中的终极性能指标
> 原文:<https://towardsdatascience.com/the-ultimate-performance-metric-in-nlp-111df6c64460?source=collection_archive---------0----------------------->
## 再也不用担心语言模型的准确性了

Wynand van Poortvliet 在 [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral) 上拍摄的照片
M 当我们处理语言的时候,衡量我们模型输出的结果变得更加复杂。
对于许多基于自然语言处理的问题来说,这一点很快就变得非常清楚——在处理语言摘要或翻译时,我们如何测量基于语言的序列的准确性?
为此,我们可以使用面向回忆的替角进行 Gisting 评估(ROUGE)。幸运的是,这个名字看起来很复杂——非常容易理解,甚至更容易实现。
让我们直入主题吧。
Contents**> What is ROUGE**
# 胭脂是什么
ROUGE 实际上是一组指标,而不仅仅是一个指标。我们将从 ROUGE-N 开始,介绍最有可能使用的主要产品。
## 胭脂
ROUGE-N 测量我们的模型生成的文本和“参考”之间匹配的“n-grams”的数量。
n 元语法只是一组标记/单词。一元语法(1-gram)由一个单词组成。二元模型(2-gram)由两个连续的单词组成:
该引用是一个人为的最佳输出——因此对于自动摘要来说,它将是我们输入文本的一个人为的摘要。对于机器翻译,它将是我们输入文本的专业翻译。
对于 ROUGE-N,N 表示我们正在使用的 N 元语法。对于 ROUGE-1,我们将测量模型输出和参考之间的单字匹配率。
ROUGE-2 和 ROUGE-3 将分别使用二元模型和三元模型。
一旦我们决定使用哪一个 N——我们现在决定是否要计算 ROUGE 召回率、精确度或 F1 分数。
## 回忆
**recall** 统计在模型输出和引用中发现的重叠 n 元语法的数量——然后将这个数量除以引用中 n 元语法的总数。看起来是这样的:

用简单英语(上图)和简化符号(下图)计算单个样本的 ROUGE-N 召回指标
这对于确保我们的模型能够**捕获引用中包含的所有信息**很有帮助,但对于确保我们的模型不仅仅是推出大量的单词来匹配召回分数来说,这就没那么好了:

我们的模型可以输出我们词汇表中的每一个单词,并且每次都能得到一个完美的回忆分数
## 精确
为了避免这种情况,我们使用**精度**指标,其计算方法几乎完全相同,但我们不是除以**参考** n 克数,而是除以**模型** n 克数。

因此,如果我们将它应用到前面的例子中,我们得到的精度分数仅为 **43%** :

## f1-分数
现在我们既有了召回值又有了精度值,我们可以用它们来计算我们的 ROUGE F1 分数,如下所示:

让我们再次将它应用到我们之前的例子中:

这为我们提供了模型性能的可靠度量,它不仅依赖于模型捕获尽可能多的单词(回忆),还依赖于不输出不相关的单词(精度)。
## 胭脂-L
ROUGE-L 测量我们的模型输出和参考之间的最长公共子序列(LCS)。这意味着我们计算两者之间共享的最长令牌序列:

这里的想法是,共享序列越长,表明两个序列之间越相似。我们可以像以前一样应用我们的召回和精度计算——但是这次我们用 **LCS** 替换**匹配**:

我们的 LCS 召回计算

精度基本相同,但是我们将总的 n-gram 计数从引用切换到模型

最后,我们像之前一样计算 F1 分数
## 胭脂-S
我们要看的最后一个 ROUGE 度量是 ROUGE-S——或 skip-gram 并发度量。
现在,这个指标似乎比 ROUGE-N 和 ROUGE-L 已经介绍过的要少得多——但是了解它的作用是值得的。
使用 skip-gram 度量允许我们从参考文本中搜索连续的单词,这些单词出现在模型输出中,但是被一个或多个其他单词分隔开。
因此,如果我们采用二元模型“the fox ”,我们最初的 ROUGE-2 度量只有在模型输出中找到这个确切的序列时才会与之匹配。如果模型输出的是“棕色狐狸”,那么就找不到匹配。
ROUGE-S 允许我们在 n-gram 匹配中增加一定程度的宽大。对于我们的二元模型示例,我们可以使用 skip- **bi** gram 度量进行匹配:

我们计算召回率就像我们对 ROUGE-N 做的一样——但是我们对匹配之间出现的任何单词进行了宽大处理

这同样适用于我们的精度指标
在计算了召回率和精确度之后,我们也可以像之前一样计算 F1 的分数。
## 骗局
ROUGE 是一个很好的评估指标,但是也有一些缺点。特别是,ROUGE 并不迎合具有相同意思的不同单词——因为它测量的是句法匹配而不是语义。
因此,如果我们有两个意思相同的序列,但使用不同的词来表达这个意思,它们可以被分配一个低的胭脂分数。
这可以通过使用几个参考文献并取平均分数来稍微抵消,但这不会完全解决问题。
尽管如此,对于评估机器翻译和自动摘要任务来说,这是一个很好的指标,并且在两者中都很受欢迎。
# 在 Python 中
幸运的是,由于有了 [Python rouge 库](https://github.com/pltrdy/rouge),用 Python 实现这些指标非常容易。
我们可以通过 pip 安装库:
pip install rouge
根据参考对我们的模型输出进行评分就像这样简单:
`get_scores`方法返回三个指标,使用一个词元(ROUGE-1)和一个词元(ROUGE-2)的 ROUGE-N 和 ROUGE-L。
对于其中的每一个,我们接收 F1 分数`f`、精度`p`和召回`r`。
## 对于数据集
通常,我们会为一组预测和引用计算这些指标——为此,我们将预测和引用分别格式化为预测和引用列表——然后我们将`avg=True`参数添加到`get_scores`,如下所示:
这就是本文关于理解和实现用于测量自动摘要和机器翻译任务性能的 ROUGE 指标的全部内容。
我希望你喜欢这篇文章,如果你有任何问题或建议,请通过 [Twitter](https://twitter.com/jamescalam) 或在下面的评论中告诉我!如果你对更多类似的内容感兴趣,我也会在 YouTube 上发布。
感谢阅读!
# 参考
C.林, [ROUGE:一个自动评估摘要的软件包](https://www.aclweb.org/anthology/W04-1013.pdf) (2004),ACL
[🤖带变压器的 NLP 课程](https://bit.ly/nlp-transformers)
**除另有说明外,所有图片均出自作者之手*
# 人工智能应该更像人类的不可避免的原因
> 原文:<https://towardsdatascience.com/the-unavoidable-reason-why-ai-should-be-more-human-50e06ae21ee0?source=collection_archive---------20----------------------->
## 人工智能|观点
## 即使这迫使我们面对可怕的未来。

马修·费雷罗在 [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral) 上的照片
人工智能已经是一种先进的技术,但它可能会进化,直到它成为一个新的物种。我们称它为*智人机器*。
在 40 年代和 50 年代,科学家们对计算机和大脑产生了兴趣。认知科学和计算机科学是充满希望的新生领域,它们开启了有趣的研究可能性:控制论、人工神经网络、神经科学、人工智能……略微不同的领域来自同一个地方,但走向截然不同的未来。
一些科学家选择了认知科学,将人类作为他们研究的核心。他们认为首要任务是理解我们的大脑以及生物智能和意识的基础。
其他人认为有可能用人类的认知能力建造一个电子大脑。对他们来说,理解大脑排在第二位,不再需要遵循生物学的足迹。为什么我们会认为我们只能通过自然的途径获得智慧?生物智能被印在碳生命形式中,但用硅创造人工智能没有明显的限制。
然而,他们忽略了一个关键问题:如果我们实现了这个目标,我们的社会会发生什么?如果我们智人试图与我们的硅基同行 machina sapiens 共存,我们的文明会发生什么?
# AI 应该模仿人类生物吗?永恒的争论
大多数人工智能专家同意,人工智能既不能复制人脑,也不能完全抛弃我们的进化遗传。但是在这个协议中有分歧。没有人知道如何继续构建越来越智能的人工智能,或者如何克服深度学习的瓶颈。AI 可以很好地完成狭窄的任务,但不能概括大部分内容。它不能像我们一样推理、计划或与世界互动。这是一个很容易被攻击的目标,没有人会上当。
因为我们不知道哪条路径是正确的,所以有很多*可能的*路径。
一方面,深度学习的倡导者辩护说,我们不需要盲目地遵循生物学。他们认为基于神经网络的人工智能是获得普通人工智能的唯一途径。在去年接受《麻省理工科技评论》采访时,杰弗里·辛顿说:“我确实相信深度学习将能够做任何事情。”事实是,十年的深度学习成功支持了这些说法。从 AlexNet 到 AlphaZero,再到 GPT-3,深度学习一次又一次地重申了它在人工智能领域的统治地位。
他们相信深度学习是通往 AGI 的道路,即使它需要一些突破。自我监督学习和 transformer 架构是支持这一观点的最新论据,但还有其他不太令人信服的方面。在[发表在去年*科学*杂志上的一项研究](https://science.sciencemag.org/content/367/6473/83)中,Yiota Poirazi 和她的团队发现生物神经元甚至比我们之前认为的更复杂,而人造神经元是在假设生物神经元是“基础数学的哑计算器[的情况下构建的](https://bdtechtalks.com/2020/01/20/neuroscience-artificial-intelligence-synergies/)
另一方面,这也是为什么有人说 AI 是*与众不同的*。它不同于其他技术,因为它试图解决最复杂的挑战。人脑[被认为](https://www.bbc.com/news/uk-scotland-18233409)是“宇宙中最复杂的东西”,这并非空穴来风我们的大脑是我们想要构建的唯一实例,记住这一点似乎是合理的。
更成问题的是,我们不了解大脑,正如教授罗宾·默里爵士所预言的,“我们将无法了解。”对于其他技术,我们可以提取我们试图建模的事件背后的潜在规律和原则。飞机不会像鸟一样飞,但它们确实遵循空气动力学和流体动力学的物理定律。我们还不能为大脑做这些,因为神经科学还不够成熟。
出于这些原因,像加里·马库斯这样的人认为我们应该研究人类的大脑。“我们需要从自然中获取灵感”以在人工智能领域走得更远。加里·马库斯为人工智能的混合模型方法辩护。他声称,我们应该将深度学习的力量与更古老的范式整合起来,如符号人工智能。数据驱动和知识驱动的人工智能系统结合起来可能比其各部分的总和更有能力。
深度学习系统不像我们的大脑那样学习、观察或处理。进化给了我们各种各样的先天结构,使我们更容易与我们的世界互动。为什么不给人工智能灌输这些?否则,深度学习系统可能无法开发像常识推理、自我学习或建立世界心理模型这样的能力。
辩论的双方都持有强有力的论点,但似乎没有人注意到更大的画面。从生物学角度思考不足以解决社会困境。让我们回到我之前提到的那个缺失的问题:如果我们假装最终生活在一个跨物种的社会中,难道不是很明显我们应该让 AI 更像人,即使这是次优的解决方案吗?
# 一个社会兼容的人工智能应该是我们的首要任务
从严格的技术角度来看,上述争论是有意义的。创造新技术的最佳途径是什么?在哪个点上——或者在哪些方面——我们应该停止/开始复制生物学?这些问题的问题在于它们是一维的,而世界是多维的。科学和技术关心的是理解现实,创造有用的解决方案来改善我们的福祉,但它们仅限于此。
社会层面呢?如果我们考虑到这一挑战的心理学和社会学方面,很明显我们至少必须遵循生物学。也许对今天的“人工智能”系统来说不是。但如果我们试图构建类似人类的人工智能,这将是一个必要条件。
让我们思考一下这个问题。我们的目标是创造人类水平的智能实体。这不同于建造我们可以在一天结束后关掉的机器。人类级别的 AI 会发展意识吗?我们将如何与这些实体互动?AGI 会更像我们的智能手机还是我们的兄弟姐妹?我们是希望人工智能拥有人形形态,还是应该冒着疏远它们的风险最大化效用?
流行文化已经在许多场合探讨了这些问题。从最近的电影《T2》、《T3》或《T4》、《玛奇纳》、《T5 》,到旧书《我》、《机器人》、《T7》或《2001:太空漫游》。如果我们最终进入一个我们希望 AI 成为我们生活中有意识的一部分的时期,照顾这些方面是至关重要的。
然而,这并不容易。当今社会,当一个人感到与另一个人疏远时,会发生什么?意识形态、种族、宗教或性别的差异是一些最常见的人类冲突的原因。看似无害的失调会助长人性最野蛮的一面。
非人类的人工智能会离我们很远,任何其他人类都会感觉像家人一样。相比之下,任何人为的错位都可以忽略不计。作为个人和社会,我们如何适应一个新的、同样有能力的物种?
“我们应该遵循生物学吗?”现在感觉很肤浅。在这个层次的对话中,它忽略了要点。这场辩论应该围绕如果我们创造了一个最终与我们在社会上不兼容的人工智能,我们将面临的后果。在这个讨论中的任何一点上,我们都应该把人们的福祉放在功利之上。
我们应该在人工智能中注入生物学——以及心理学和社会学——的特征,只要我们的目标是让它们变得普遍智能。
# 情绪化人工智能的危险
但是我们不能忽视其中的风险。复制生物学意味着向人工智能灌输情感和动机,这被认为是最危险的途径之一。情绪和驱动力是我们对自己和他人造成伤害的主要原因。然而,如果我们希望人工智能像我们一样,情感就不能被排除在外。那么我们应该回答的问题是,“一个有情感的人工智能真的能超越并伤害我们吗?”
> “要接管世界,机器人就得想办法;他们必须有侵略性,有野心,并且不满足于暴力牛排。目前,根本没有理由制造具有情感状态的机器人。”— *加里·马库斯*
在他的书 [*重启人工智能*](https://www.goodreads.com/en/book/show/43999120-rebooting-ai) 中,加里·马库斯观察到智能并不能让人工智能逃脱我们的控制。这不是能力的问题,而是动力的问题。正如史蒂芬·平克所解释的,“智力是运用新方法来达到目标的能力。但目标与智力无关:聪明并不等同于想要某样东西。”
想要东西的人工智能是潜在地想要我们不希望它想要的东西的人工智能。如果一个人工智能决定它的主要目标与它当前的情况不一致,并突然产生一种未经我们同意改变某些东西的动机,会发生什么?
鉴于我们也在做同样的事情,这并非不可能。进化造就了我们这个物种。但是我们作为个体想要的往往与生存不一致。我们是愿意永远被束缚着生存,还是愿意一半时间快乐地生活?生存不是我们的首要目标,最大幸福才是。原因是我们能感觉到。快乐和痛苦是我们行为背后最强大的力量。因此,我们很乐意改变我们的遗传禀赋,以更好地实现我们有意识地定义的目标。
一个没有情感或动机的人类水平的人工智能对我们来说太陌生了,以至于不能允许毫无问题的共存。但有情感的人工智能是最可怕的人工智能类型:它可以逃脱我们的控制,并重新调整其目标,使之与我们的目标不符。似乎情感 AI 是我们首先想要的,也是最后想要的。
# 结论
* 先说清楚一点:不是所有的 AI 都需要复制大脑。机器学习和深度学习包括大量的工具、模型和技术,其中大部分距离人类大脑如此之远,以至于它们可以更好地归类为统计系统。关于基于生物学的人工智能的辩论是关于人工智能的未来,而不是现在。正是在这个意义上,人工智能需要类似于我们。
* 人工智能在大多数方面都像其他技术,但有一个方面是不同的。这是唯一可能成为我们必须共存的新物种的技术。从这个角度来看,社会争论应该比技术争论更有分量。
* 如果我们想制造类似人类的人工智能,我们需要给它注入情感和动机。然而,这是在该领域工作的大多数科学家长期担忧的第一个来源。情感是让我们想要和需要东西的东西。如果我们无法将人工智能的情感与我们的目标结合起来,它最终可能会脱离我们的控制,带来不可预见的后果。
那我来问你这个:非人类 AI 和情感 AI 哪个更危险?
## 如果你喜欢这篇文章,可以考虑订阅我的免费周报<https://mindsoftomorrow.ck.page/>**!**每周一关于人工智能的新闻、观点和见解!****
## ****在这里** **你也可以直接支持我的工作,成为中等会员** [**获得无限权限!:)**](https://albertoromgar.medium.com/membership)**
# **推荐阅读**
**</unpopular-opinion-well-abandon-machine-learning-as-main-ai-paradigm-7d11e6773d46> </heres-how-openai-codex-will-revolutionize-programming-and-the-world-e8432aafc5f7> </5-must-know-ai-concepts-in-2021-75d8c1ff938> **
# 人类无法忍受的完美表现
> 原文:<https://towardsdatascience.com/the-unbearable-perfection-of-human-level-performance-bd68d4fb4b2d?source=collection_archive---------35----------------------->
## 或者为什么鸽子能洞察机器应该如何做数学

米开朗基罗.迪.洛多维科.布罗纳罗蒂.西蒙尼创作的亚当。罗马无伴奏合唱。
他们说,机器将改变世界。它们将使人类能够实现超出我们想象的事情,解决数据解释中令人难以置信的复杂难题,并将我们带入预测疾病和可靠交易策略的未来。他们可能并不擅长所有事情,但这肯定只是时间问题。
事实证明,在人类已经非常擅长的领域,备受称赞的机器学习往往不如人类学习。深度学习的最终目的,被定义为在人类指导下,通过训练堆叠的神经元层(或感知机)来尝试解决非线性优化问题,正是试图弥合人类和机器之间的性能差距。在识别一个人、给一幅画贴标签( [ConvNets](https://cs231n.github.io/convolutional-networks/) )、感知情感、猜测情绪、解码语言或创作艺术( [RNNs](https://www.ibm.com/cloud/learn/recurrent-neural-networks) )方面和我们一样好。
但我确信这只是故事的一部分。我在某处读到过,可能是在一些昂贵的数据管理咨询公司的宣传册上,虽然在所谓的感知问题上,机器并不比人类强多少,但在理解复杂结构的信息时,它们确实是非凡的:需要在来自无数来源的数百万条数据中迭代的优化问题。对于功能强大得令人难以置信的机器来说,这肯定是真的。
然而,即使是后者也不是如此明确的情况,并且不需要太多努力就可以达到最现代机器的计算能力所能做到的上限。**在下面的文章中,我认为了解机器学习的局限性,比试图将它奉为本世纪的灵丹妙药更有趣、更有教育意义。我希望值得你的关注。**
# 机器真的擅长它们正在做的事情吗?
**有些问题在逻辑上确实无法决定**。每个时代都有它的悖论:困扰试图修补公理、程序、解释和解决方案的逻辑学家的问题。今天有一长串可计算但不可解决的问题,在这些问题中,一台配有运行算法、无限时间和内存的确定性机器无法在不陷入无限循环的情况下给你一个一致的答案。图灵的停机问题是计算理论和数学哲学中最著名的问题之一。这些都是一系列帖子的素材,希望有一天我能找到写这些帖子的能力,但现在让我们忽略悖论,假设在它们的定义或尝试性解决方案中可能有一些错误,然后继续。
**不幸的是,即使在明显可统计、可理解、可计算的问题领域,你也不需要走得太远,就能达到一台超级强大的机器实际能做的极限**。
假设你是一个旅行推销员,看着一张标有城市名称和距离的地图,试图找出去每个城市一次然后回家的最短路线。这将是一个由现代计算机解决的简单优化问题。不完全是。在数学中,这种问题被称为组合优化的 NP-hard(非确定性多项式时间困难——这也是另一篇文章的材料)问题,这意味着解决它们的成本非常非常高。2020 年,[一台日本超级计算机庆祝了涉及 22 个城市的旅行推销员问题(或 TSP)的解决](https://www.popularmechanics.com/science/a30655520/scientists-solve-traveling-salesman-problem/),超过了之前 16 个城市的记录。22 个城市,仅此而已。这很难,因为用暴力解决 TSP 意味着解决一个超多项式(或指数)复杂性的问题。优化销售人员在 22 个城市的路线需要 22 个城市!(阶乘— 22x21x20x[…]x1)步。如果一步需要机器计算 0.001 秒,那么找到答案只需要不到 360 亿年的时间。到目前为止,我们的宇宙已经存在了 140 亿年,一些物理学家预计它还会再存在 50 年(尽管这一次还没有定论)。根本没有足够的时间来帮助销售人员。

照片由 [Stefan Grage](https://unsplash.com/@stefangrage?utm_source=medium&utm_medium=referral) 在 [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral) 上拍摄
更复杂的是,**还有其他一些问题很难从头开始解决,但可以很容易地找到合适的解决方案**。其中最著名的就是宿舍问题。假设你的任务是为即将到来的 400 名大学生班级安排住宿。然而,空间是有限的,你只能在校园里主持其中的 100 个。此外,院长已经给了你一个不相容学生对的列表,你必须在你的配置中避免。虽然一开始看起来很容易,但是从头生成一个列表的任务是不切实际的(非 P),而检查一个列表是否符合指南的任务是简单琐碎的(NP)。
> 实际上,从 400 名申请者中选择 100 名学生的方法总数比已知宇宙中的原子数量还要多。
今天的数学家和逻辑学家认为,我们有很多“容易检查/难以解决”(P ≠ NP)的问题,尽管迄今为止没有人证明这种不等式成立。如果你相信你的论点,你可以在这里申请获得[100 万美元的资助。](https://www.claymath.org/millennium-problems/p-vs-np-problem)

Photo by [Lisanto 李奕良](https://unsplash.com/@lisanto_12?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)
**令人惊讶的是,事实证明人类非常擅长解决这类超级困难的优化问题**。据观察,人类能够为 TSP 生成一个[快速解决方案](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.360.9763),其性能范围在 10-20 个节点的图的计算最优值的 1%以内,在 120 个节点的(估计)解决方案的 11%以内。鸽子显然也很擅长这个。这些不太可能的超级优化者似乎被赋予了权力,而不是拥有令人难以置信的强大计算能力,这是通过空间启发式和经验强化的混合来实现的,这使他们非常有效,而无需在本质上浪费太多时间。
与神经网络的结构和机制的相似之处是显而易见的。虽然可能无法证明机器提供的优化问题的解决方案与全局最优一致(如果多维点存在),但我们已经开发了一套技术,在过程中引入足够的随机性,以改变事物,并降低陷入局部最优的风险(有太多的搜索方法可供您尝试)。事实上,我们已经训练了一台机器,让它像人类一样思考,或者更确切地说,像人类一样行动——也就是说,通过一个建立在传统(阅读监督学习)、当前享受或痛苦(阅读强化)和持续创新(阅读随机技术)基础上的经过教育的试错过程。
# 所以工程师们按照自己的形象创造了算法
经验表明**人工智能高度依赖于人类专业人员的知识,这些专业人员一生都在从事自动化的工作实践**。但正是这种对人类知识的利用,使得机器很难达到超越这些人类的性能水平。
评估模型性能的总误差可分为三个更基本的部分:
* **偏差**:模型错误或过于简化——机器无法从训练集中提取相关特征,从而在训练和测试过程中正确预测标签
* **方差**:泛化误差或过度拟合——机器在训练中预测标签方面似乎做得很好,但在对数据集进行泛化时表现不佳
* 不可约(Bayes)误差:不可避免的误差——除非一个过程是真正确定的,否则数据中总会有噪声,或者即使存在完美信息也会出现不可约误差(你读过量子物理学吗)
继续我们对分类问题的类比,人类工程师是(I)减少偏差的大师(机器建筑师和分类训练数据的提供者),评估方差的法官(最终输出质量的评估者),以及不可约误差的黄金标准(令人惊讶的是,不可约误差的最佳替代是训练的人类误差)。
# 你仍然应该担心,或者兴奋
不要误解我的意思,机器的兴起远非无关紧要。如果你(在内心深处)相信任何没有经验的学徒都可以很容易地被训练得足够好,那么机器很快就会非常接近地完成同样的任务。近到足以让你的雇主扪心自问,用我们中的一些人代替一种算法是否有意义。这是因为与人类不同,机器有几个潜在雇主会在面试中欣赏的特质:它们非常快,不需要休息,有合理的可预测的激励,不会抱怨,它们对特定任务的供应不会在整个学校周期内增加或减少,它们不想得到报酬(然而——加密人群不会同意我的观点)。
然而,我相信,理解机器如何感知和处理现实的局限性,可以告诉我们比我们如何看待自己作为人类更多的东西,以及在过去几十亿年里塑造我们的力量。最终,是我们按照自己的形象创造了他们。
# 设计文档对数据科学家不可否认的重要性
> 原文:<https://towardsdatascience.com/the-undeniable-importance-of-design-docs-to-data-scientists-421132561f3c?source=collection_archive---------6----------------------->
## [办公时间](https://towardsdatascience.com/tagged/office-hours),给有抱负的数据科学家的建议
## 用清晰的目标和沟通建立概念灯塔

来源: [Unsplash](https://unsplash.com/photos/SHA85I0G8K4)
# 问题陈述
> 我如何确保我的数据项目成功?
>
> 我如何与利益相关者沟通并实现对他们的影响?
我看到许多崭露头角的数据科学家和人工智能初创公司着手他们的新项目,专注于[创新的深度学习算法,而没有考虑](/the-cold-start-problem-with-artificial-intelligence-49938ed3f612)适当的单元测试和基本的代码健康实践。
虽然快速投入到你的项目中有时是值得的。大多数时候,它会导致没有人使用的代码。一夜成名但经不起时间考验的应用。
## 我最大的错误
> 让我们假设你收到了一个新项目。理解了问题之后,您开始编写代码,希望能够快速解决您的项目。
>
> 但是后来你意识到你引入了很多 bugs 开源软件包被破坏,由于大小而中断,由于缺乏技术文档而重复实验。绝望中,你花了几个星期排除故障。
>
> 一旦你完成了,你意识到你新建立的模型对于工程团队来说太复杂了。心怀不满,你花了一整夜来实现一个简单的模型,这个模型对团队来说已经足够了
>
> —从作者的经历来说—
如果我能更早地与我的项目领导分享我的目标,我本可以节省很多时间。
交流对问题的共同理解比解决问题本身更重要。理解什么是重要的将会是经营成功项目的决定性因素。
否则,后果可能是可怕的。
## 网飞的故事价值 100 万美元的闪亮宝石
网飞向将网飞建议均方根误差(RMSE)提高约 10%的获胜团队奖励 100 万美元。但是网飞没有采纳,因为算法太复杂,无法支持!
[结果,网飞浪费了 100 万美元来奖励一个他们无法采用的机器学习模型。](https://www.wired.com/2012/04/netflix-prize-costs/)
如果在竞赛目标上与采用的工程团队有共同的目标和统一的沟通,这就不会发生。
> 因此,为什么设计文档很重要!
# 为什么制作设计文档很重要
> 设计文档应该是灯塔。
>
> 灯塔是目标的信号。
>
> 每艘登船都需要一座灯塔,以便在黑暗中航行。
>
> 汹涌的海浪可能会分散船的注意力,使它绕道而行。但是有了灯塔,每个船长都有权力把船驶向目的地。
同样,每个数据科学项目都像是在概念的黑暗中航行。您可以构建您的分析,并在整个项目中重复您的工作。但是如果没有共同的目标和方向(例如:灯塔),你将永远不会产生真正的影响。
设计文档在以工程为中心的文化中被广泛使用,如亚马逊和谷歌。**它旨在分享所有计划的想法、进展和结果,以强调共同的目标和影响。**
**它还作为一盏指路明灯,让其他人分享知识,以了解并建立项目来满足他们的需求。**因此,这是你巩固自己对团队的巨大贡献的一项关键技能。
> 因此,创建一个设计文档就形成了一个概念性的灯塔,让你明白你应该如何克服短视,消除时间下沉,并提供共享的影响。
# 如何构建设计文档
1. **目标:**你为什么要建这个?
2. **最小可行产品:**对你的受众来说,什么是重要的?
3. **研究和探索:**有哪些时间和资源可用?
4. **里程碑和成果:**能够实现什么,已经实现了什么?
5. **TL:DR(太久没看):**有什么总结?
作为一个例子,你可以查看这个设计文档 [**收集并分析 Yayasan Merajut Hati(YMH)* insta gram 数据**](https://docs.google.com/document/d/12ridJk1BtL-alomt3XXnLG_GZ68NzP6C82Ihy3M8fA8/edit#) **。**
> **注:**我在[Yayasan Merajut Hati](https://www.instagram.com/yayasanmerajuthati/)(YMH)做志愿者,这是一个非营利组织,旨在提高疫情期间印尼年轻人的精神健康意识。这些是我为 YMH 建造的工程。
>
> * [建立 Instagram 业务的最快分析方法](/the-quickest-analytics-to-build-your-instagram-business-b7b3c5d68056)
>
> * [为 Instagram 业务访问脸书 API](/accessing-facebook-api-for-instagram-business-568cfe3efb77)

[我为 Yayasan Merajut Hati](https://docs.google.com/document/d/12ridJk1BtL-alomt3XXnLG_GZ68NzP6C82Ihy3M8fA8/edit#) 创建的样本设计文档(来源于作者)
# 目标
> 你为什么要建这个?
目标是任何项目的基础。是一个公司成功而其他公司不成功的最大原因。
## 最成功的公司都有明确直接的目标。
* 谷歌:组织世界上的信息,并使其普遍可用。
* 脸书:给予人们建设社区的力量,让世界更加紧密
* **AirBnB:** 创造一个任何人都可以属于任何地方的世界,专注于创造一个端到端的旅行平台,处理你旅行的每一部分
同样,你的目标应该是清晰和简明的。
**部分样品包括:**
* 提取 YMH 营销所需的高质量 Instagram 数据。
* 构建本科生课程推荐系统。
# 最小可行产品
> 对你的观众来说什么是重要的?
最小可行产品(MVP)定义了项目的核心价值。你依靠北极星来决定你的项目是否成功。
**MVP 显示详细描述,如:**
* [ [YMH](https://docs.google.com/document/d/12ridJk1BtL-alomt3XXnLG_GZ68NzP6C82Ihy3M8fA8/edit#heading=h.1lqdvjwrmd5t) ]建立 Instagram 功能,能够满足以下业务重点和指标。业务重点和指标包括…
* 建立推荐系统,用户可以登录,购买和增加 XX%的销售比旧模型(AB 测试)。
MVP 应该是现实的而不是理想化的。它应该是保守的而不是雄心勃勃的。如果其他的都失败了,知道你达到了你的 MVP 是一个巨大的成就。
然后,您可以进一步迭代项目,以实现您的扩展目标。
**注意**:这需要反馈以及与将要使用和维护这个项目的利益相关者的频繁沟通。一旦您拥有了共享的 MVP,只要您的项目实现了它,您就可以安全地宣布成功了。
# 研究和探索
> 有什么时间和资源可以利用?
研究和探索定义了建立你的 MVP 的方法。
**这需要开放式头脑风暴,包括:**
* 你打算用什么工具?为什么?
* 你计划用多长时间来完成这件事?
* 【对于 ML 项目】你做什么探索性数据分析(EDA)?为什么这很重要?你应该建立什么模型?为什么?
当您的解决方案未能满足 MVP 时,快速研究和探索将使您能够快速切换解决方案。
# 里程碑和成果
> 【里程碑】能实现什么?
>
> 【成果】取得了哪些成果?
里程碑和结果定义了您为实现 MVP 而计划或已经完成的实际工作。
里程碑为你的探索和研究设定了动态的短期目标。一旦你做了实际的工作,里程碑就会变成结果。
从建立里程碑开始,分解你的 MVP。一旦你完成了里程碑,记录结果。
[**在 YMH 样本**](https://docs.google.com/document/d/12ridJk1BtL-alomt3XXnLG_GZ68NzP6C82Ihy3M8fA8/edit#heading=h.1lqdvjwrmd5t) **中,我起草了以下插图作为我的里程碑/成果。**

数据架构示例的里程碑/结果([来源于作者](https://docs.google.com/document/d/12ridJk1BtL-alomt3XXnLG_GZ68NzP6C82Ihy3M8fA8/edit#))
# TL:DR →太久没看了
> 总结是什么?
**TL:DR 是快速总结结果和分享知识的好方法**。它给了你的利益相关者一块金块,让他们决定是否应该继续阅读。
**TL:DR 最大的好处就是尊重对方的时间。**它可以节省利益相关者的时间,同时让他们了解您的实际工作和影响。
***注:*** *按顺序来说,我会把 TL:DR 放在 objective 之后。这允许利益相关者直接查看摘要,以决定进一步投入时间阅读。*
# 结论:建立一个概念性的灯塔
你应该根据受众的需求来设计产品。这将迫使你[建立一个人们使用和维护的数据分析项目](/intro-to-mlops-ml-technical-debt-9d3d6107cd95)。
因此,创建一个设计文档形成了一个概念性的灯塔,以了解你应该如何导航的短视期,消除时间下沉,并提供共享的影响。
## 通过这篇文章,我希望你了解了设计文档:
1. 目标:你为什么要建这个?
2. 最低可行产品:对你的受众来说,什么是重要的?
3. 研究和探索:有什么时间和资源可以利用?
4. **里程碑和成果:**能够/已经实现了什么?
5. **TL:DR(太长不看):**有什么总结?
索利·德奥·格洛丽亚
# 来自作者的更多提示:
* [我喜欢带在线硕士学习数据科学的 5 个原因](https://medium.com/datadriveninvestor/5-reasons-why-i-enjoy-taking-online-masters-to-learn-data-science-bba05eb5641c)
* [如何构建您的终极数据科学投资组合](/how-to-build-your-ultimate-data-science-portfolios-ea0414d79a72)
* [数据分析很难…以下是你如何超越的方法](/data-analytics-is-hard-here-how-you-can-excel-aa2a99d0fad0)
* [写作分析学的隐藏宝石](/the-hidden-gems-of-writing-analytics-6db78fad5a51)
# 关于作者
我用 ML @ Google 对抗网络钓鱼。
我热爱我的工作,因为我使用先进的 ML 算法和 MLOps 来保护 Chrome、Gmail 和 Android 用户免受钓鱼攻击,窃取弱势群体的生活积蓄。
我也是《走向数据科学媒体》的撰稿人,为全球 100 多万观众的有志 ML 和数据从业者提供指导。
在我的空闲时间,我写中型文章,在 Kaggle 上编码,为铁人三项/自行车旅行训练。
最后,请通过 [LinkedIn](http://www.linkedin.com/in/vincenttatan/?source=post_page---------------------------) 、 [Medium](https://medium.com/@vincentkernn?source=post_page---------------------------) 或 [Youtube 频道](https://www.youtube.com/user/vincelance1/videos?source=post_page---------------------------)联系文森特
# 意想不到的 ML 创业解决你所有的问题
> 原文:<https://towardsdatascience.com/the-unexpected-ml-startups-solving-all-your-problems-10da71a5214c?source=collection_archive---------25----------------------->
## 2021 年:是时候把你的决策权交给机器了

图片来源:Christopher Gower / Unsplash
两年前,我在[Women of Silicon round about Conference](https://www.women-in-technology.com/)上谈到了机器学习(ML)初创公司,以及为什么它们是一种值得关注的趋势。我最近想到,我从来没有机会与更广泛的世界分享我们讨论的有趣案例,而且,唉,我不被允许分享完整的谈话记录。听起来,我被记住更多的是因为我在舞台上踩过的黄色平台(证据[在这里](https://www.youtube.com/watch?v=dP4TZMkbH74)),而不是实际的内容。因此,我决定重温这个话题,重新审视一些最初的案例以及后来崭露头角的新创业公司。
这个话题让我很兴奋,因为我是一名数据科学家。我也在一家 ML 初创公司工作,这意味着我们出售来自 ML 模型的预测(具体来说,就是关于哪些客户正在实施欺诈的预测)。值得注意的是,当产品是一个预测的时候,你公司的成功就在于那个模型的准确性。这意味着 ML 创业公司中的数据科学团队是公司的心脏。也许这就是我热爱我的角色的原因——我太喜欢成为关注的焦点了!这不是通常的数据科学问题,利益相关者决定他们想要的产品特性和项目时间框架的模型类型;相反,数据科学家概述他们需要的数据以及实现这些数据所需的工程/产品资源。
好了,我跑题了。ML 初创公司面临的独特而美丽的挑战是另一个故事,但你来这里是为了了解热门的初创公司。因此,一些最热门的 ML 初创公司(其中“最热门”与当前的资金量相关)都在自动驾驶汽车领域——预测汽车在路上的位置以及他们周围有什么的软件。预测你的诊断的医疗聊天机器人也非常热门。但是这些应用程序已经抢尽风头太久了,所以我将把重点放在一系列即将流行的更奇怪的应用程序上。
# B2C(企业对客户)
很多新的 ML 创业公司通过为客户节省时间来赚钱。例如,花大量的时间寻找一份你真正想要的新工作。当你用 [**MeetFrank**](https://meetfrank.com/) 应用程序创建一个账户时,它会询问你对哪种角色感兴趣(例如行业类型、公司价值观、期望薪资),记下你目前的技能和经验,然后预测市场上是否有适合你的工作。这是任何想被动搜索的技术人员的梦想;你不必过滤 LinkedIn 上铺天盖地而来的机会,你会偶尔收到一个刚刚上线并符合你标准的职位的通知。
如果你的目标是一份超出你能力范围的工作,该怎么办? [**JobTech**](https://jobtech.co/) 为此打造了个性化的 AI 职业教练;它会理解你的目标,预测你需要磨练的技能。我觉得有趣的是,AI 不知道如何粉饰太平。希望人们不要因为知道他们 98%的简历需要修改才能成为有吸引力的员工而生气。
ML 模型可以决定你学习的技能,但也可以决定你穿什么。 [**Stitch Fix**](https://www.stitchfix.com/) 为此创建了一个个性化的造型订阅服务:你首先要做一个小测试,确定你感兴趣的款式、尺寸和价格,然后模特预测你喜欢的衣服。这些东西会按你想要的那样定期出现在你的门前,你会把那些没用的退回去。我还注意到,他们鼓励你输入关于你生活中“当前状态”的细节,这些建议包括开始一份新工作或经历像离婚这样的生活转变。这让我这个数据科学家欣然接受了 AB 测试的想法,这种测试涉及两个相同的个人资料,一个婚姻幸福,另一个正在经历分手。我的离婚者会穿运动服还是超级时髦的裙子?
人们对健康科技和可穿戴设备的兴趣日益浓厚,这表明消费者将更容易依赖 ML 来做出更健康的生活决策。你有<https://flo.health/>**flo,这是一个周期跟踪器,它会预测你什么时候最适合怀孕。 [**自然周期**](https://www.naturalcycles.com/) 采取了相反的方法,并预测了一个稍微困难的问题,即什么时候你可以安全地进行无保护的性行为而不会怀孕。如果你有足够的勇气做你的第二个样本,[**Atlas Biomed Group**](https://atlasbiomed.com/uk)的微生物组测试甚至会根据你肠道中的细菌数量来预测你应该吃什么食物来保持健康。**
# **B2B(企业对企业)**
**现在有一波 B2B 的创业浪潮,他们把 ML 带给了通常无法接触到它的企业客户。Eigen Technologies 在金融领域就是这样做的;他们的模型着眼于一种文件类型的几个例子,比如一份贷款合同,并学习预测任何进一步的贷款合同中包含的关键信息。利用 ML 查找相关数据也是 [**Securiti.ai**](http://securit.ai/) 的基础,诞生于 GDPR 之痛开始袭来的 2019 年。客户现在有权编辑他们的一些个人信息,但他们的数据可能会分散在多个应用程序中,或者与第三方共享。Securiti.ai 的模型可以找到并预测与案件相关的数据。**
****
**抱歉,但在我的研究中讽刺太好了(图片由作者提供)**
**曼梯·里甚至被请来研究精神病学。病人不敞开心扉,或者治疗师在高工作负荷下挣扎,意味着重要的面部表情或声音提示可能会被错过。 [**刻意. ai**](https://www.deliberate.ai/) 通过相机和麦克风记录机密媒体来增强治疗师的理解,ML 可以使用这些媒体来预测患者的结果以及如何改善。**
**展望 2020 年,冠状病毒疫情给客户服务团队带来了巨大的问题;人们无法亲自去公司,所以呼叫中心不堪重负。 [**Uniphore**](https://www.uniphore.com/) 在正确的时间出现在正确的地点,建立了基于视频和语音通话预测客户意向的 ML。这使得案件的解决不需要人工代理,或者案件被发送到正确的人。再说一次,这听起来像是 AB 测试的好材料——我应该提高嗓门让经理优先考虑我吗?**
**被预测的不仅仅是顾客;自从我们都开始在家工作以来,人们对预测员工的事情更感兴趣了。员工监控软件不要求 ML 跟踪屏幕时间,但有像 [**Behavox**](https://www.behavox.com/?utm_source=google&utm_medium=cpc&utm_campaign=EN-US-Brand&_bt=432893778676&_bk=behavox&_bm=e&_bn=g&_bg=103144229640&gclid=Cj0KCQjw1PSDBhDbARIsAPeTqre8lZ5ks06HLQoyN74EEHkMcKn_feVKht9NgucHe5aBdDpcYcwtq5IaAnfEEALw_wcB) 这样的 ML 初创公司可以预测哪些员工不遵守规定,例如那些涉及内幕交易或性侵犯案件的员工。你也有 [**iamYiam**](https://syd.iamyiam.com/en/) 它最初是建立在基因标记基础上的个性化健康平台,但他们现在为企业客户提供了一个帮助了解整个团队健康状况的解决方案。相比之下, [**Yvai.ai**](https://www.yva.ai/) 预测哪些员工工作倦怠,哪些员工是公司内部的非正式领导或“影响者”。**
**<https://www.tended.co.uk/>**创造了可穿戴技术,它不仅可以检测员工的绊倒、跌倒或撞击,还可以感知何时有人来到你预设的距离内,就像新冠肺炎风格一样。Wandelbots 减少了你的员工在第一时间从事危险工作的必要性;他们的软件允许机器人学习如何根据一些演示来做操作员或专家的工作。那是我有生之年没想到会看到的另一个职业——机器人老师。****
****我们还可以恢复对 ML 模型的信心,它不仅仅是一个时间和成本的节约者;“人工智能为好”的创业公司是我认为最值得关注的。 [**Savvie**](https://www.savvie.io/) 预测面包店和咖啡馆等小型企业的销售额,目的是减少食物浪费。 [**云循环**](https://www.cloudcycle.com/) 也在解决一个影响二氧化碳排放、在建筑行业价值数十亿英镑的问题:混凝土不符合行业要求,被送去填埋。他们的模型预测生产过程中的干预,以确保符合标准。****
# ****结束语****
****我可以花几天时间去挖掘更多 ML 初创公司正在解决的古怪问题,但你会明白的。我们正在走向这样一个世界,在这个世界里,更多的决策是基于 ML 模型的预测做出的。很多时候,这是因为预测节省了我们的时间(例如找工作),或者比单纯的人类判断更加明智(例如个性化的健康建议)。在企业层面,预测提高了效率,增加了收入。****
****虽然它能解决的问题范围很大,但我不是唯一一个觉得 ML 还没学会走路就跑了的人。事实上,[计划上周被泄露](https://techcrunch.com/2021/04/14/eu-plan-for-risk-based-ai-rules-to-set-fines-as-high-as-4-of-global-turnover-per-leaked-draft/)开始在欧盟监管人工智能。使用 ML 来避免人为错误和偏见是一件好事,但是将没有预期效果的模型部署到生产中太容易了。当你看到人工智能模型开始为我们做出的一系列决定时——吃什么,什么时候做爱,你的诊断是什么,哪些员工正在犯下严重的不当行为——你可以看到你的人工智能模型中的明显错误会给人类生活带来多大的后果。****
****可解释的人工智能(XAI)和 MLOps 是两个令人兴奋的新兴领域,有助于解决这个问题,但它们是另一天的主题…****
# ****最后****
****如果你对在机器学习初创公司工作的前景感到兴奋,那么,这很方便,因为我们正在[招聘](https://www.ravelin.com/careers)(数据科学家、工程师,一切)!它也不是一般的创业公司,你会真正喜欢在这里工作;只要看看[的玻璃门](https://www.glassdoor.co.uk/Reviews/Ravelin-Technology-Reviews-E1590629.htm)(不,我们没有写机器人来给出所有热情的反馈)。请通过 [LinkedIn](https://www.linkedin.com/in/milly-leadley/) 联系我了解更多信息。我也很高兴你能深入我的文章。****
# Python 的运算符模块的未知特性
> 原文:<https://towardsdatascience.com/the-unknown-features-of-pythons-operator-module-1ad9075d9536?source=collection_archive---------10----------------------->
## 借助 Python 鲜为人知的操作符模块,使您的代码更快、更简洁、可读性更强、功能更强大

[Bilal O.](https://unsplash.com/@lightcircle?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) 在 [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) 上拍摄的照片
乍一看,Python 的`operator`模块似乎不是很有趣。它包括许多用于算术和二进制运算的操作函数,以及几个方便的帮助函数。它们可能看起来不那么有用,但是在这些函数的帮助下,你可以让你的代码更快、更简洁、更可读、功能更强。因此,在本文中,我们将探索这个伟大的 Python 模块,并充分利用其中包含的每个函数。
# 用例
该模块的最大部分由包装/模拟基本 Python 操作符的函数组成,如`+`、`<<`或`not`。当您可以只使用操作符本身时,为什么您需要或想要使用其中的任何一个可能不是很明显,所以让我们首先讨论所有这些函数的一些用例。
您可能希望在代码中使用其中一些的第一个原因是,如果您需要将运算符传递给函数:
我们需要这样做的原因是,Python 的操作符(`+`、`-`、…)不是函数,所以你不能直接把它们传递给函数。相反,您可以从`operator`模块传入版本。你可以很容易地实现包装函数来帮你做这件事,但是没有人想为每个算术运算符创建函数,对吗?另外,作为一个额外的好处,这允许更多的函数式编程。
你可能还会想,*我不需要* `*operator*` *模块来做这个,我可以只使用* `*lambda*` *表达式!。是的,但是这是你应该使用这个模块的第二个原因。这个模块中的函数比 lambdas 快。对于单次执行,您显然不会注意到这一点,但是如果您在循环中运行它足够多次,就会产生很大的不同:*
因此,如果你习惯于写类似于`(lambda x,y: x + y)(12, 15)`的东西,你可能想切换到`operator.add(12, 15)`来获得一点性能提升。
第三,对我来说,使用`operator`模块最重要的原因是可读性——这更多的是个人偏好,如果你一直使用`lambda`表达式,那么你可能会更自然地使用它们,但在我看来,一般来说在`operator`模块中使用函数比在 lambdas 中使用更具可读性,例如考虑以下内容:
显然,第二种选择可读性更强。
最后,与 lambdas 不同,`operator`模块函数是*可选择的*,这意味着它们可以被保存并在以后恢复。这可能看起来不是很有用,但是对于分布式和并行计算来说是必要的,这需要在进程之间传递函数的能力。
# 所有选项
正如我已经提到的,这个模块为每一个 Python 算法、按位和真值操作符以及一些额外的功能提供了一个函数。关于函数和实际操作符之间的映射的完整列表,参见文档中的[表。](https://docs.python.org/3/library/operator.html#mapping-operators-to-functions)
除了所有预期的函数之外,这个模块还具有实现操作的就地版本,例如`a += b`或`a *= b`。如果你想使用这些,你可以在基本版本前加上前缀`i`,例如`iadd`或`imul`。
最后,在`operator`中,你还会发现所有这些函数的*版本和*版本,例如`__add__`或`__mod__`。这些是由于遗留原因而出现的,没有下划线的版本应该是首选的。
除了所有实际的操作符之外,这个模块还有一些可以派上用场的特性。其中一个是鲜为人知的`length_hint`函数,它可以用来得到*迭代器长度的模糊*概念:
我想在这里强调一下*模糊的*关键字——不要依赖这个值,因为它实际上是一个*提示*并且不能保证准确性。
我们可以从这个模块中获得的另一个方便的函数是`countOf(a, b)`,它返回`b`在`a`中出现的次数,例如:
这些简单助手的最后一个是`indexOf(a, b)`,它返回`b`在`a`中第一次出现的索引:
# 关键功能
除了操作员功能和上述几个实用功能外,`operator`模块还包括用于处理高阶功能的功能。这两个键是`attrgetter`和`itemgetter`,它们通常与`sorted`或`itertools.groupby`等键一起使用。
为了了解它们是如何工作的,以及如何在代码中使用它们,让我们看几个例子。
假设我们有一个字典列表,我们希望通过一个公共关键字对它们进行排序。下面是我们如何用`itemgetter`做到这一点:
在这个代码片段中,我们使用了接受 iterable 和 key 函数的`sorted`函数。这个键函数必须是一个可调用的函数,它从 iterable ( `rows`)中提取单个项目,并提取用于排序的值。在这种情况下,我们传入`itemgetter`,它为我们创建了可调用的。我们还从`rows`中给它字典键,然后将这些键提供给对象的`__getitem__`,查找的结果用于排序。正如你可能注意到的,我们同时使用了`surname`和`name`,这样我们可以同时对多个字段进行排序。
代码片段的最后几行还显示了`itemgetter`的另一种用法,即查找 ID 字段中具有最小值的行。
接下来是`attrgetter`函数,它可以以与上面的`itemgetter`类似的方式用于排序。更具体地说,我们可以用它来对没有本地比较支持的对象进行排序:
这里我们使用`self.order_id`属性按照 id 对订单进行排序。
当与`itertools`模块中的一些函数结合使用时,上面显示的两个函数都非常有用,所以让我们看看如何使用`itemgetter`按其字段对元素进行分组:
这里我们有一个行列表(`orders`),我们希望通过`date`字段对其进行分组。为此,我们首先对数组进行排序,然后调用`groupby`来创建具有相同`date`值的项目组。如果您想知道为什么我们需要先对数组进行排序,这是因为`groupby`函数通过寻找具有相同值的*连续*记录来工作,因此所有具有相同日期的记录需要预先分组在一起。
在前面的例子中,我们使用了字典数组,但是这些函数也可以应用于其他的可重复项。例如,我们可以使用`itemgetter`按值对字典进行排序,在数组中查找最小/最大值的索引,或者根据元组的一些字段对元组列表进行排序:
# 方法调用程序
需要提及的`operator`模块的最后一个功能是`methodcaller`。此函数可用于调用对象上的方法,方法使用以字符串形式提供的名称:
在上面的第一个例子中,我们主要使用`methodcaller`来调用`”some text”.rjust(12, “.”)`,它将字符串右对齐为 12 个字符,并用`.`作为填充字符。
使用该函数更有意义,例如,当您有一个所需方法的字符串名称,并希望反复向它提供相同的参数时,如上面的第二个示例所示。
使用`methodcaller`的另一个更实际的例子是下面的代码。在这里,我们将文本文件的行输入到`map`函数,并且我们还将我们想要的方法传递给它——在本例中是`strip`——该方法从每行中去除空白。此外,我们将结果传递给`filter`,它删除所有空行(空行是空字符串,它们是 *falsy* ,因此它们被过滤器删除)。
# 结束语
在本文中,我们快速浏览了一个被低估的`operator`模块(在我看来)。这表明,即使只有几个函数的小模块在您的日常 Python 编程任务中也会非常有用。Python 的标准库中有许多更有用的模块,所以我建议只需查看[模块索引](https://docs.python.org/3/py-modindex.html)并开始研究。您也可以查看我以前的文章,这些文章探讨了其中的一些模块,如 [itertools](/tour-of-python-itertools-2af84db18a5e) 或 [functools](/functools-the-power-of-higher-order-functions-in-python-8e6e61c6e4e4) 。
*本文原帖*[*martinheinz . dev*](https://martinheinz.dev/blog/54?utm_source=medium&utm_medium=referral&utm_campaign=blog_post_54)
</functools-the-power-of-higher-order-functions-in-python-8e6e61c6e4e4> </the-correct-way-to-overload-functions-in-python-b11b50ca7336> [## Python 中重载函数的正确方法
towardsdatascience.com](/the-correct-way-to-overload-functions-in-python-b11b50ca7336) </scheduling-all-kinds-of-recurring-jobs-with-python-b8784c74d5dc>
# 数据科学中婴儿步骤的不合理有效性
> 原文:<https://towardsdatascience.com/the-unreasonable-effectiveness-of-baby-steps-in-data-science-621e0dee31c5?source=collection_archive---------43----------------------->
## 提高生产力的数据科学方法

西蒙·因芬格在 [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral) 上的照片
任何数据科学项目都是由多个复杂性和困难组成的,就像任何足够大的项目一样。也许您首先需要连接到一个数据库,读取数据,清理数据,为您的模型处理数据,实现模型,运行训练,保存模型,部署等等。每一步都要花很多时间,从开始做这个项目到**有视觉证据证明它可行之间的时间可能是几个小时**。你对你正在写的大多数 bug 视而不见,因为你没有对你的错误做出快速的反馈。想象一下,你花了相当多的时间处理数据和建模,但你的模型似乎不能很好地工作。你如何调试你的模型?如果你的数据和模型很复杂,那将会非常困难。你可能已经有几百行代码了,而且**一塌糊涂**。
> 与软件工程相比,数据科学尤其困难,因为您的代码可能会无声无息地失败,做出不准确的预测。
有一种**更简单、更有效的方式**来攻击任何数据科学项目:
# 1.创建极其简单的数据
你可能认为这是额外的努力/工作,但实际上,你会在不到 5 分钟内实现它,这将使你赢得在复杂数据上调试模型的几个小时。您希望使用与您的问题相兼容的数据来训练您的模型,但使用最简单的方式。如果你正在训练一个分类器,你可以操作特征,使类成为这些特征的一个明显的函数。
例如,我最近从事异常检测工作。数据庞大而复杂,我知道在建模之前,我需要花费数小时处理数据,而且很难操作和调试。所以,我创造了极其简单的数据。我生成了 S⁵的数据(规范 1 的 R⁵点)作为“正常数据”,生成了一些异常数据作为规范 1.3 的 R⁵点。编码速度极快(大约 1 分钟),我可以验证我的模型成功解决了这个非常简单的问题。
# 2.创建模型的最简单版本
写代码的时候,要意识到,不管你有多谨慎和熟练,你都会写出错误,因为不这样做太难了。在软件工程中有一个众所周知的想法,初级程序员希望在某个时候足够熟练,不再写错误,而更多的高级程序员知道这是工作的一部分,更重要的是学会如何适应写错误,而不是期望根本不写错误。
现在,如果你知道会有 bug,你希望你的模型超级简单,这样你可以更快更容易地调试。如果您的最终模型预计会有许多大而多样的层,请想办法创建一个更简单的模型。你的模型需要有足够的容量来解决你在步骤 1 的超级简单的数据上的问题,但是以最小的方式**。**
# 3.训练你的模型并迭代
<https://www.pytorchlightning.ai/> [## PyTorch 闪电
www.pytorchlightning.ai](https://www.pytorchlightning.ai/)
我在我所有的深度学习项目中使用 Pytorch Lightning,因为它非常容易和快速地建立原型。在大约 15 分钟内,我可以实现超级简单的数据,实现模型的第一次迭代,并实现 Pytorch lightning 模型,这样我就可以在几分钟内获得关于整个培训管道的反馈。现在,有两种选择:很少情况下,一切都会按预期运行,您可以增加数据或模型的复杂性,以更接近您的实际问题,但大多数情况下,您会面临一些错误和问题。**这很容易解决,因为你已经准备好了**。您将解决这些问题,然后可以开始增加模型或数据的复杂性。
# 结论
现在您已经有了整个训练管道,您可以迭代,直到您有一个关于真实数据的工作模型。这种方法有两个提高生产率的来源:
* **你制作的 bug 更加本地化,因为你得到了更多的反馈**。你可以把你的项目时间线想象成多个小的部分,当你遇到错误时,你知道错误出现在当前(小的)部分,并且更容易发现它。
* 来自真实数据和真实模型之间复杂交互的错误被**分解成多个更容易解决的小问题**。
# 剩余情节的不合理丰富
> 原文:<https://towardsdatascience.com/the-unreasonable-richness-of-residual-plot-17f9104a687a?source=collection_archive---------33----------------------->

照片由 [Unsplash](https://unsplash.com/s/photos/grains?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) 上的[实体模型图形](https://unsplash.com/@mockupgraphics?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)拍摄
## 仅使用一个图检查除一个线性回归假设之外的所有假设
在机器学习中,残差是实际目标值和拟合值之间的“差值”。残差是回归问题中的一个重要概念。它是任何回归度量的基础:均方误差(MSE),平均绝对误差(MAE),平均绝对百分比误差(MAPE),你能想到的。

重温你的记忆(作者图片)
残差在线性回归中甚至更为关键。它们包含丰富的信息,尤其是当作为残差图呈现时。通过这篇博客,我将向你展示,我们可以通过查看残差图来验证几乎所有的方法假设。
# 残差图

线性回归中的残差(图片由作者提供)
毫无疑问,残差图是显示残差的图。我们可以根据如下简单定义得出一个:
* 在简单线性回归(具有 1 个预测值的回归)的情况下,我们将**预测值**设置为 x 轴,将残差设置为 y 轴
* 在多元线性回归的情况下(预测因子> 1 的回归),我们将**拟合值**设置为 x 轴,将残差设置为 y 轴
# 线性回归假设
回想一下,线性回归有如下四个假设:
1. 预测值和目标变量之间的线性关系,意味着模式必须是直线形式(或多元线性回归情况下的超平面)
2. 同方差,即残差的恒定方差
3. 独立观察。这实际上相当于独立残差
4. 残差的正态性,即残差服从正态分布
# 使用残差图检查 4 个假设中的 3 个
我们可以通过残差图检查上面的前三个假设!
**假设 1:线性关系**
如果残差图中没有*可识别的非线性模式,则该假设有效。让我们考虑下面的例子。*

剩余地块 1(图片由作者提供)
在上面的例子中,假设被违反了,因为 U 形模式是明显的。换句话说,真实的关系是非线性的。
**假设 2:恒定方差**
如果残差相对于零水平线在残差图的整个 x 轴上均匀分布(大约相同的距离),则该假设有效。让我们考虑下面的例子。

剩余地块 2(图片由作者提供)
在上面的例子中,假设被违反了,因为方差在更大的拟合值上变得更小。
**假设 3:独立观察**
如果在残差图中的几个连续残差之间没有*或*辨别模式,则该假设有效。让我们考虑下面的例子。

剩余地块 3(图片由作者提供)
在上述情况下,假设被违反,因为在连续残差之间存在辨别模式(两者都是负斜率的线性)。
# 额外收获:使用 ggplot2 绘制残差图
在本节中,我将分享如何在 r 中使用 ggplot2 库绘制残差图。为此,我们将使用流行的 Auto-MPG 数据集(可在此处下载)。
library(dplyr)
library(ggplot2)# read data
mpg <- read.csv(‘auto-mpg.csv’)# drop rows with NA values
mpg <- mpg %>% drop_na.()# build and train linear regression model mpg = b0 + b1 * displacement
mpg_lm <- lm(mpg ~ displacement, mpg)# store as dataframe for plotting
res_df <- data.frame(displacement=mpg$displacement, residual=resid(mpg_lm))# plotting
ggplot(res_df, aes(x=displacement, y=residual)) +
geom_point(alpha=0.5) +
geom_hline(yintercept = 0, color = ‘black’) +
geom_smooth(color = ‘blue’) +
labs(title=‘Residual from Regressing MPG using Displacement’,
subtitle = ‘Data: Auto-MPG dataset’)

# 在你走之前
在这篇文章中,我们通过看残差回到基础。事实证明,残差,特别是以残差图的形式,提供了相当丰富的信息;我们可以通过查看残差图来验证 4 个线性回归假设中的 3 个。
希望在读完这篇文章后,我们能更好地理解残差的重要性。总而言之,感谢阅读,大家在 [LinkedIn](https://www.linkedin.com/in/pararawendy-indarjo/) 上和我连线吧!👋
# 机器学习的无名英雄在数据操作中
> 原文:<https://towardsdatascience.com/the-unsung-heroes-of-machine-learning-are-in-data-operations-1f28fedff967?source=collection_archive---------31----------------------->

甚至迷因也认识到建模是容易的部分。[来源](https://www.kdnuggets.com/2017/08/first-steps-learning-deep-learning-image-classification-keras.html)
# 不要睡在数据操作上
当大多数人想到深度学习从业者时,他们会想到那些使用博士期间学到的特殊能力对机器学习模型耳语的数据科学家。
虽然对一些组织来说这可能是真的,但大多数实际的深度学习应用程序的现实更加平庸。现在模型性能的最大决定因素是数据,而不是模型代码。而当数据至上的时候,**数据运营**就成了你 ML 团队最重要的部分。
# 数据操作介绍
从根本上说,数据运营团队负责维护和改进模型训练所依据的数据集。他们的部分职责包括:
* 确保数据和标签干净一致。训练集中的坏数据意味着模型将在训练时被混淆,并学习错误的东西。测试集中的坏数据意味着您不能相信您的模型性能度量是准确的。
* 将 ML 系统中的错误追溯到导致这些错误的数据点(或缺少数据点)。对错误情况的良好理解使得修复它们变得更加容易。
* 基于当前的优先级来获取、标记和添加数据到数据集:修复关键的客户问题,解决模型性能中的缺陷,或者将模型功能扩展到新的任务/领域。
数据操作团队成员通常是他们领域的专家。想象一下,一个能一眼分辨出塑料和玻璃容器的回收专家,一个能把中文翻译成葡萄牙文的翻译,或者一个能导航核磁共振成像并告诉你病人是否患有癌症的放射学家。
数据运营人员也可以来自咨询或商业背景。在处理任何操作任务时,尤其是处理数据时,有条不紊会有所帮助。对业务目标和技术能力的了解也可以告知如何最好地对数据监管进行优先排序,以改进 ML 系统。
在数据运营团队中,可以根据他们负责的数据/模型类型(例如,在自动驾驶应用程序中,不同的队友拥有雷达、激光雷达和图像检测系统)或根据他们服务的客户/地理位置(例如,一名团队成员负责北美部署,另一名团队成员负责 APAC)来分配团队成员。
数据操作团队成员通常会与离岸标签团队合作,以帮助扩展数据标签的吞吐量。离岸团队处理更简单但需要更多人工的任务。例如,调整边界框标签以精确适应各种对象,或者标记苹果和橙子的图片。相比之下,内部数据操作团队成员充当专家,他们定义标记说明,检查离岸团队的工作,并决定如何处理困难或模糊的场景。数据操作团队最适合需要少量高质量工作和相对较短周转时间的工作。离岸团队适合大量简单的工作,质量不如数量重要的任务,或者标记吞吐量比等待时间更重要的情况。
# 为什么是现在?
在 90 年代末和 21 世纪初,机器学习在许多网络公司中找到了许多应用。与手动调整的算法相比,模型可以更好地完成推荐、排名和预测等任务。
然而,这些 ML 模型是精确的和可扩展的,因为它们能够从大量的数据中学习,这些数据基本上是免费生成的。推荐和排名模型可以根据用户浏览网站时实际点击的记录数据进行训练。预测模型可以使用过去的数据预测未来,然后随着时间的推移验证这些预测的准确性。
换句话说,数据本质上是无限的,并且是自动生成的。只要数据是干净的,并且保持流动,您就可以在模型上工作。改进这些模型管道的大部分工作包括缩放数据管道和确保数据一致性。模型精度的提高主要通过特征工程和超参数调整来实现。所有数据和 ML 工程师能做的事情!
深度学习的出现引入了强大的模型,这些模型在涉及图像、音频和文本等非结构化数据的任务中运行良好。虽然[一些](https://ai.googleblog.com/2017/07/revisiting-unreasonable-effectiveness.html) [大型](https://medium.com/syncedreview/facebook-model-pretrained-on-billions-of-instagram-hashtags-achieves-sota-results-on-top-1-imagenet-ae8113bb3145) [公司](https://arxiv.org/abs/2005.14165)仍然能够在这些领域免费获得大量数据,但其他人都需要人类手动标记这些数据,然后才能在其上训练机器学习模型,这需要很长时间。
因此,组织收集和记录的数据比他们能够标注的要多。确定要标注什么数据,快速标注大量数据,然后保证数据和标签的干净和准确,这些都需要很大的努力。深度学习应用看起来更像是自动化问题,而不是像以前的模型那样是一个预测/预测问题。
仍然需要努力将您的管道扩展到更大的模型和数据集。然而,在建模方面,很容易从货架上取下最先进的预训练模型,在自己的数据集上对其进行微调,并获得相当好的性能。模型性能的提高不再来自特征工程或超参数调整。大部分收益来自于修正标记错误的数据或收集更多模型有困难的挑战场景的例子。这是数据运营团队可以做得非常好的工作!吴恩达将这种范式描述为以数据为中心的人工智能,而不是以模型为中心的人工智能。**因此,数据和 ML 工程师不再是关注的中心,数据运营经理现在最有能力通过适当的数据监管来改善他们的 ML 管道。**
# 为成功设置数据操作
## 协作,而不是替代
现代深度学习应用程序用于自动化现有的工作流程。一个团队会希望使用一个 ML 模型来完成一部分已经由人工操作人员完成的工作。然而,在细致入微或高风险的任务中(如阅读 MRI 扫描以检测癌症),建立一个你可以相信像人类专家一样准确的 ML 模型是极其困难的。
因此,许多成功的深度学习应用将数据操作团队[与 ML 模型](https://hbr.org/2018/07/collaborative-intelligence-humans-and-ai-are-joining-forces)结合起来**协同工作**。为了解释这一点,让我们想想当你带来一个新同事时你会怎么做。当一个新的人类同事开始在一个数据操作团队工作时,你给他们一些关于如何工作的基本指导,让他们在一些简单的场景中工作,然后检查他们的工作并给他们反馈如何更好地工作。随着他们的工作越来越好,可以相信他们会从事更艰巨的任务,或者在新项目上承担更多责任,并最终培训新同事。
使用人工智能模型就像带来一个“人工智能同事”当你的新人工智能同事在你的团队中开始工作时,你组装一个训练数据集来给出模型(基本指令),在一个受限制的范围内部署一个初始模型(从一些简单的场景开始),然后分析模型的失败案例,并向其训练集添加更多数据,以提高其性能(纠正性反馈导致改进)。
这种协作流程的优势在于,ML 模型可以比人工操作团队更快地处理简单的案例,同时将复杂的案例提交给人工专家进行审查。人类专家可以仔细检查模型的输出,以获得对其性能的信任,并纠正模型的失败案例。随着模型在某些任务上变得更好,人类专家可以减少他们在这些任务中的参与,并致力于扩展模型的功能以处理更复杂的情况。
如果团队让这种设置发挥作用,他们现在就有了一个人工智能同事,他的工作速度比人类运营团队快得多,不会放弃或疲倦,最重要的是,他可以积累比任何单个人类运营团队成员头脑中所能掌握的更多的知识(通过大规模和多样化的训练数据集)。所有这些都大大减少了数据运营团队的工作量!
## 工具间隙
为了与人类同事交流,数据操作团队可以使用培训材料,如文档、幻灯片或通过共享的人类语言进行直接对话。相比之下,与 ML 模型沟通要困难得多。人类无法用自然语言和一个模型对话!因此,数据运营团队通常不太了解模型在做什么,哪里做得好/不好,以及如何提高其性能。想象一下,如果你没有懈怠,你正试图用烟雾信号与同事交流!
我们所知的“MLOps”大部分都是围绕着建立数据管道、版本化模型和自动编排模型再培训的工具。这些非常适合以编程方式移动、处理和跟踪数据。它们在快速训练模型或大规模高效地提供模型推理方面也很有效。
但“MLOps”类别并不迎合数据运营团队。它迎合了数据工程师!数据操作团队既没有时间也没有工程能力来编写定制代码来完成他们的工作。如果没有好的工具,数据操作团队要么必须依靠工程师来完成基本的数据管理任务,要么必须使用不适合其用例且效率极低的通用工具。我见过团队使用电子表格和 Mac Preview 管理他们的数据集!
数据操作团队需要无代码工具来可视化和操作 ML 数据集。这种自省工具将帮助他们找到模型失败的模式,阐明为什么模型会犯这些错误,然后帮助他们编辑他们的数据集以修复这些错误。通过这种方式,他们可以高效地运行,而不需要工程团队的日常帮助,从而允许他们更快地迭代,更快地交付更好的模型。
## 组织中的数据操作
尽管数据操作团队非常重要,对系统性能有着不可思议的影响,但他们在 ML 团队中经常被视为二等公民。他们被视为繁重的劳动,是获取足够数据来训练模型的必要工具,当模型足够好时,这支劳动力队伍最终将被取代。他们获得了必须生成多少数据的配额,却不知道为什么需要这些数据,也不知道这些数据对系统性能有什么影响。当他们与客户交谈时,他们对模型的性能负责,但是当他们依赖其他团队的基础架构时,他们没有太多的杠杆来改进模型。
出现这种情况是因为 ML 团队的第一批成员通常是在开源数据集上一起构建模型的工程师。然后,他们让数据运营团队成员来“帮忙”,减少对工程师标记数据或管理标记团队的需求。这使得数据操作从一开始就处于辅助角色。
围绕数据操作团队组建 ML 团队,并让工程师支持他们的工作流,通常比反过来更有效!数据操作团队通常最了解问题域、客户需求和业务考虑。工程团队的工作应该是在不牺牲最终客户质量的情况下,自动完成数据操作工作流程中的繁重工作。因此,机器学习与其说是数据运营团队的替代品,不如说是让他们的生活变得更轻松的工具!
# 结论
AI 的大规模部署不会导致人类干预的彻底消除。取而代之的是,它将允许人类和机器一起**工作**来产生结果,而这在只靠其中一方是不可能的。
数据操作团队最终是处理模型和数据日常工作的人。它们是客户/用户需求和机器学习系统之间的桥梁,并通过不断整理训练数据在模型的日常改进中发挥着关键作用。
然而,数据运营团队往往不是为了成功而成立的。由于工具简陋,他们依赖工程师来完成工作流程中的基本任务。因为他们不是 ML 专家,所以被当作 ML 团队的二等公民。
但是,当配备了正确的工作流、正确的工具和正确的组织设置时,数据操作团队在提高模型性能方面具有不可思议的力量。它们是 ML 部署成功与否的成败因素。我觉得说数据运营团队是 ML 的无名英雄很公平!
# 任务嵌入的效用
> 原文:<https://towardsdatascience.com/the-utility-of-task-embeddings-e00a18133f77?source=collection_archive---------24----------------------->
## 训练适应性神经网络

弗朗西斯科·温加罗在 [Unsplash](https://unsplash.com/s/photos/handwritten-numbers?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) 上拍摄的照片
# 适应性网络
任务嵌入是一种使神经网络适应新任务的技术,并有望减少其他方法存在的一些问题。对于训练网络执行的每个任务,在训练过程中向网络提供任务的丰富表示(任务嵌入向量)。当嵌入被正确执行时,对于相似的任务,任务嵌入向量将是相似的。在没有额外训练的情况下,在给定新任务嵌入的新任务上,网络可以推断出它应该做什么。
扩展训练好的网络的有用性的一种流行方法是迁移学习。基本思想是,使用非常大的训练数据集训练神经网络来完成某项任务,然后使用较小的训练数据集进一步训练神经网络来执行另一项任务。例如,如果网络在稍后被训练来分类文档之前已经被预先训练来“填补”具有缺失单词的句子的空白,则网络在用于分类文档时可以表现得更好。
这种方法有一些缺点。如果迁移学习培训过程中的第二步过于广泛,那么网络将开始“忘记”最初培训的内容。当网络被要求学习更多的任务时,它忘记先前任务的可能性增加。这被称为“灾难性遗忘”。所有网络(即使是那些使用迁移学习的网络)的当前局限性在于,它们受限于有限数量的任务,并且必须被训练(或再训练)以学习新的任务。
任务嵌入可以是一种替代或补充的方法,因为它可以减少在多项任务中表现良好所需的训练次数。任务嵌入的威力用两个简单的数据集来说明——一个单变量的例子和一个 MNIST 的例子。
# 任务嵌入概念
考虑神经网络的一种方式是将其视为一台机器,该机器被训练成将一个空间中的点映射到另一个空间中的点。如果仔细训练,机器将进行归纳,这意味着它将根据一个从未见过的点与它见过的点的相似性来绘制该点。(见图 1 左部分。)

图一。神经网络学习将一个空间中的点映射到另一个空间中的点。任务嵌入允许网络学习不同的映射。*作者图片。*
在给定任务上训练的网络在面对新任务时失败,因为它不知道它需要以任何不同的方式进行映射,并且不知道如何改变它所做的映射。在任务嵌入中,我们向网络提供关于它正在执行的任务的丰富信息,同时训练它同时执行多个任务。它为每个任务学习不同的映射。(见图 1 中间部分。)当出现一组它从未见过的点,并被要求执行一项它从未接受过训练的任务时,网络在它知道的任务之间进行插值,并为新点导出一个合适的映射(见图 1 右部分。)
# 单变量例子
在本例中,要求网络在给定 x 值的情况下预测多个线性或二次方程之一的 y 值。这些方程采用以下形式:
-8*(x+1)*(x-4)+9
使用一种算法来生成方程。假设系数的范围被限制在 0 到 9,可能的等式总数是 128,304。该算法中的 9 个步骤中的每一个都进行随机选择,并且在方程生成期间进行的选择序列是该方程的向量表示。对于上面的等式,其矢量表示为
[1, 8, 1, 2, 1, 1, 4, 2, 9]
这用作给定 x 值的情况下为该方程预测 y 值的任务的任务嵌入。
为了使用任务嵌入,嵌入被连接到 x 值,然后被馈送到网络中。上述等式的 x 数据点,例如值为-5,将通过连接等式表示和 x 值来表示。例如:
[1, 8, 1, 2, 1, 1, 4, 2, 9, -5]
训练数据集由 400 个随机方程构成,每个方程有 2000 个 x-y 对。出于评估目的,训练集被强制包含四个已知方程,并被强制排除四个已知方程。
训练集用于在 2 个时期内训练具有单个 100 节点隐藏层的网络。
训练完成后,要求网络从随机生成的一组 x 值中推断出已知在该组中的 4 个方程和已知在该组之外的 4 个方程的 y 值。换句话说,网络被要求执行 8 项不同的任务,但只在其中的 4 项上接受了训练。图的顶行是训练集中的等式。第二行是训练集之外的方程。蓝色点是实际的,橙色点是预测的。(参见图 2。)

图二。任务嵌入允许神经网络很好地执行它没有学习过的任务。
作为对照,进行了相同的实验,除了不是丰富的任务嵌入,而是将单个随机数字连接到每个等式任务的训练集中的 x 值。网络能够学习任务的正确映射,但是在丰富的任务嵌入中却不能。它完全没有预测到任何它没有看到的任务。(参见图 3。).

图 3。没有任务嵌入,网络在未训练的任务上失败,在训练的任务上挣扎。
生成任务嵌入的方法产生了一个相当紧凑的表示——只有 9 位数字。如下所示,紧凑的任务嵌入会产生更好的结果。
为每个方程生成任务嵌入的一种简单方法是为描述方程的字符串中的 16 个字符中的每一个分配一个数值——这比紧凑方法多产生 1015 个状态。它悲惨地失败了,无法通过超参数调整或更多的训练来改善。(参见图 4。)

图 4。用幼稚的方法创建任务嵌入可能导致无法训练网络。
然而,使用主成分分析(PCA)压缩方法(从 16 位下降到 11 位)压缩朴素任务嵌入显著恢复了在紧凑方法中看到的保真度。(参见图 5。)

图 5。简单任务嵌入的压缩恢复了在紧凑任务嵌入中看到的保真度。
从这个简单的例子中我们可以看出:
* 如果没有任务嵌入,网络就无法完成没有经过训练的任务
* 紧凑的任务嵌入效果更好
# MNIST 的例子
MNIST [数据集](http://yann.lecun.com/exdb/mnist/)用于训练网络执行 7 项任务。在每个任务中,网络被训练来学习图像是否是指定的数字(对于数字 0 到 6)。例如,一个任务是,“这个图像是数字 4 吗?”然后,在没有额外训练的情况下,评估网络在所有十个任务(数字 0 到 9)上的表现。网络对一项任务的准确性取决于网络正确回答问题的频率。(参见图 6。)

图 6。使用 MNIST 数据集进行推断。图片作者。
通过任务嵌入,网络能够在它被训练的数字和没有被训练的数字之间获得相似的结果。在没有任务嵌入的情况下,网络对数字 7、8 和 9 能够执行的最好结果将是 10%,因为这是那些数字在测试集中的普遍程度。(参见图 7。)

图 7。对于仅在数字 0 到 6 上训练的网络,在十个数字上的分类精度。
从这个例子中,我们了解到
* 任务嵌入可扩展到更复杂的数据类型
* 基于 PCA 的压缩产生合适的任务嵌入
# MNIST 的紧凑任务嵌入
为 MNIST 示例创建任务嵌入的一种简单方法是为每个任务选择一个随机选择的图像。对于“这个图像是数字 4 吗?”,可以从训练集中随机选择标签为 4 的图像,并将其连接到该任务的所有训练和测试图像。因为 MNIST 图像是 28×28 像素,总共 784 个元素,所以任务嵌入图像将是它的两倍,1568 个元素。
基于在单变量例子中所学到的,紧凑任务嵌入学习得更快并且产生更高精度的结果。为此,应用了压缩技术。在这个例子中,主成分分析(PCA)被管理来将随机选择的图像从 784 个元素压缩到 264 个元素(减少了 66%)。然后将压缩图像连接到任务的训练和测试图像。
实际上,PCA 识别出一种线性变换,该线性变换在给定从图像中移除固定数量的像素的目标的情况下,最大化图像中保留的信息。在这个例子中,PCA 算法被提供了来自数字 0 到 6 的训练集的 1000 个图像的随机集,以便它可以建立线性变换。数字 7 到 9 被排除在外,因为网络必须在没有任何交替任务的知识或交替任务的数据的情况下被训练。产生的变换保留了 1000 个图像中图像之间 99%的变化。然后将线性变换应用于每个任务的随机选择的图像。
其他图像压缩技术可能证明同样有效,并可能具有其他优势,如更少的处理。
# 结论
使用任务嵌入可以使神经网络具有可扩展性。通过几个简单的例子可以看出,经过一系列任务训练的网络可以用来执行额外的任务,而无需额外的训练。将任务嵌入整合到迁移学习方法中可能会缓解一些灾难性的遗忘挑战。
用于构建任务嵌入的简单方法可能严重阻碍网络的学习能力,并且可能限制网络的整体准确性。压缩任务嵌入在单变量和 MNIST 例子中是可行的。似乎有足够的空间来探索压缩替代方案。
在本文探讨的例子中,作者选择了基于对数据和任务的理解来生成任务嵌入的方法。创建一个无需专家干预就能得出自己最优任务嵌入的系统,可能是一般智能的基石。这方面的一个问题是,训练数据中是否有足够的信息供系统构建自己的嵌入方法?此外,有没有一些嵌入方法对于所有可能任务的子集都很有效,但是对于某些类别的任务仍然失败?
# 心理和教育测验的有效性
> 原文:<https://towardsdatascience.com/the-validity-of-psychological-and-educational-tests-dc69421d7d4f?source=collection_archive---------30----------------------->
## 如何确保你对心理特征的测量具有有效性

由 [Celpax](https://unsplash.com/@celpax?utm_source=medium&utm_medium=referral) 在 [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral) 上拍摄的照片
在物理学中,我们经常会有一个仪器,它是物理存在的,测量物理性质。例如,测量长度的仪器利用这一特性(即长度)来测量另一个物体的长度。因此,没有必要证明这个性质与被测量对象的相同性质是一致的。
然而,在某些情况下,这一点并不清楚。例如,如果我们使用多普勒效应测量速度,那么仪器就是星系光线谱线的近似值/距离。在这种情况下,我们有一个仪器有效性的问题,因为我们需要知道谱线之间的距离与速度有关是真是假。对于这一点,我们必须从经验上证明。效度在使用间接测量的知识领域很常见。在心理社会科学(如心理学、教育学)中,发生在多普勒效应上同样的事情非常普遍,尤其是当我们使用潜在特质(如快乐、焦虑、吸引力)的概念时。
从心理学的角度来看,我们可以将潜在的特质(或结构)视为我们头脑中的特征。那些特征,例如某人的个性,不能通过直接的方法来评估。相反,我们所做的是测量一个人的行为,并推断它们来自同一个地方(即来自我们大脑的特征)。
当然,我们有很多方法来衡量潜在的特质,一种常见的方法是通过问卷/调查,例如,人们在 1(完全同意)到 5(完全不同意)的范围内回答。假设我们要测量[在工作场所的自我效能](https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1559-1816.1994.tb00552.x)。我们根据自我效能的定义开发项目,然后呢?怎么才能知道自己的考试成绩意味着什么?自我效能感是单一因素还是可以分为不同方面?这就是寻求有效性的作用,正确地衡量我们想要什么。
# 有效性历史
## 1900-1950:内容有效性的霸权
在那个时候,人格理论是新的时尚。一般来说,大多数理论(如精神分析、格式塔和现象学)几乎没有经验推理。在这种情况下,人格特征测试被认为是有效的,只要测试内容与理论上定义的特征内容相匹配。
## 1950-1970:标准效度的普及
行为主义对心理学很有影响,当然,对心理测量学也有影响。测试是作为必须预测其他行为或未来行为的行为样本进行的。如果这些测试准确地预测了未来(或另一个场合)的行为,那么它们就是有效的,成为有效性的新路径(称为标准有效性)。为什么测试预测了行为并不重要,只要他们预测到了,这就足够了。正如我们可以想象的那样,有一种从思考理论到关注统计的逃避。不是建立一个测试来测量一个潜在的特质,而是从一个项目池中选择看起来像他们想要测量的项目,基本上使用统计分析来解决他们的问题。
## 1970 —今天:结构效度的上升
在 1955 年克朗巴赫和米尔发表了一篇关于三位一体的有效性模型(内容、标准和结构)的论文后,人们对有效性的思考方式发生了变化。理论之所以回到游戏中,是因为以下因素:
1. 想要利用因素分析,在经验的基础上发展人格和智力的理论。
2. 认知过程的研究。
3. 信息处理的研究。
4. 对教育和工作环境中使用的测试结果不满意。
5. 项目反应理论的影响。
关于心理工具有效性的焦点是关于结构有效性。现在,内容和标准效度只是结构效度的一个方面。
# 那么什么是有效性呢?
T2 对效度的经典定义是“当测试测量应该测量的东西时,测试测量什么以及测量得有多好”。然而,经典的定义让它看起来像测试是或不是有效的。为了改变这种二分法范式,T4 目前对效度的定义是“理论和证据支持对考试分数解释的程度”。因此,对于使用测试的每一种背景/目的和每一种预期的解释,测试分数都必须有有效性的证据”。现在,我们可以说,每一项措施都有自己的有效程度。
# 有效性的来源
## 基于内容的证据
收集关于测试项目表示的数据,调查它们是否是他们想要测量的领域的样本。考虑到对建议构造的评估,判断项目集的范围。一般来说,这是根据专家的评估来完成的,专家根据项目与待评估方面的关系来评估项目的重要性。可以使用一些统计检验,例如一致性百分比和 Kappa 系数。
例如:在提交的论文中,Bastos 等人(2021 年)为不同的社会群体创建了一个自我感知的偏见和歧视的衡量标准。作者使用以下程序根据内容寻求有效性:
1. 现有偏见和歧视测度的文献综述。
2. 将自我感知偏见定义为认为一个人是基于其社会群体对自己的负面态度的受害者;自我感觉的歧视是指认为一个人是基于其社会群体对自己的负面和不公正行为的受害者。
3. 根据这些定义和以前的措施,作者为其他社会群体开发了新的项目。
4. 创建项目后,他们将项目发送给专家(即心理学家和心理测量学家),以便他们可以评估项目。
5. 根据同意的比例,作者选择了九个项目进行分析。
## 基于响应过程的证据
收集关于完成给定任务的心理过程的数据。通常是关于个人的反应过程,研究人员询问被评估者关于达到给定结果的认知路径。作为一个例子,我们可以看到 [Noble 等人(2014)](https://www.researchgate.net/publication/265790720_Science_Assessments_and_English_Language_Learners_Validity_Evidence_Based_on_Response_Processes) 在他们的研究中寻求这种有效性。他们发现,与非英语学习者相比,英语学习者在高风险考试中的分数较低。根据采访,他们发现
> 英语学习者与测试项目的特定语言特征的互动经常导致对项目的不同解释,从而导致错误的答案。
## 基于内部结构的证据
收集关于项目相关性结构的数据,评估相同的结构。常用的统计检验有探索性因子分析(EFA)、验证性因子分析(CFA)、探索性结构方程模型。
作为例子,我们可以使用 [Selau 等人(2020)](https://www.researchgate.net/publication/345628570_Evidence_of_validity_and_reliability_of_the_Adaptive_Functioning_Scale_for_Intellectual_Disability_EFA-DI) 的论文。作者想测量 7 到 15 岁儿童的智力残疾。他们通过 EFA 和 CFA 调查了量表的内部结构,结构如下:

图片作者。
其中项目被分为社会因素、概念因素和实践因素,这些因素由称为适应功能的高阶因素来解释。
## 基于与外部变量关系的证据
收集关于测试分数和测量相同结构或不同结构的其他变量之间的相关性模式的数据。通常,为了获得这种效度,研究人员使用测试分数与其他变量的相关性。这种有效性可以是:
1. 仪器预测评估结构能力的证据。
2. 当我们有测试测量**相同的** **构造**时,我们期望它们是紧密相关的。
3. 当我们有测量**相关构造**的测试时,我们期望它们适度相关。
4. 当我们有测试测量不同的结构时,我们期望它们是不相关的。
[Beymer 等人(2021)](https://www.researchgate.net/publication/345982659_Validity_Evidence_for_a_Short_Scale_of_College_Students%27_Perceptions_of_Cost) 开发了一个大学生成本感知量表。他们将量表中的项目与学生的感知和价值观联系起来。他们预期(并发现)“成本”与“期望值”和“价值”负相关(你可以在他们的论文中看到每个变量的定义)。
## 基于测试结果的证据
根据建立测试的原因,检查使用测试的有意或无意的社会后果,以验证其使用是否产生了预期的效果。如果测试被用于与它们被建立的原因相同的原因,它们就具有这种类型的有效性。虽然你不能预测人们会用你开发的工具做什么,但工具作者的责任需要讨论。
作为一个例子,我们可以考虑智商测量。它的目的是测量人的智力。然而,我们可以看到,在历史上,智商有时被用来为种族主义辩护。
我们可以看到,有很多步骤来确保我们的心理特征测量具有一定程度的有效性。遵循这些程序,我们有更多的信心来推断心理特征和其他变量之间的关系。在实践中,人们通常只寻求三种类型的有效性:内容、内部结构和与其他变量的关系。我认为出现这种情况有两个原因:
1. 基于反应过程和测试结果寻求效度的困难。为了寻求基于反应过程的效度,研究者需要投入更多的时间和金钱来采访足够多的参与者。根据测试的结果来寻求有效性是很困难的。作者需要思考和预测它在最近和遥远的未来的使用,一些后果可能(几乎)无法预测。
2. 作者不认为他们的工作是寻求这两种类型的有效性,因为他们都:a)不认为人们如何对待他们的工作是他们的责任;b)认为他们的测量很棒,没有任何缺陷,这可能是真的,但在得出结论之前有许多事情要考虑,这些事情保证了其他一些反应偏差不会干扰结果。
总之,我希望你现在更加相信心理学和教育研究在经验和理论基础上有一定程度的有效性。我想事情也很容易理解,谢谢你一直读到现在。
# 接触
请随时通过以下方式联系我
> Gmail:rafavsbastos@gmail.com
> 咨询和合作网站:[rafavsbastos.wixsite.com/website](https://rafavsbastos.wixsite.com/website)LinkedIn:[linkedin.com/in/rafael-valdece-sousa-bastos/](https://www.linkedin.com/in/rafael-valdece-sousa-bastos/)
# 参考
米(meter 的缩写))N. Baptista 和 A. E. de Villemor-Amaral,*compêndio de avalia o psicolóGICA,* 2019,Editora Vozes。
长度 Pasquali,*Psicometria:teoria dos testes na psicologia e na educao,* 2017,Editora Vozes Limitada。
R.V. S. Bastos,F. C. Novaes,J. C. Natividade,《偏见和歧视自我认知量表:有效性和其他心理测量性质的证据》, 2021 年,提交给同行评审的手稿。
# 学位对有抱负的数据科学家的真正价值
> 原文:<https://towardsdatascience.com/the-value-of-a-degree-for-aspiring-data-scientists-8c42a261e502?source=collection_archive---------26----------------------->
## [办公时间](https://towardsdatascience.com/tagged/office-hours)
## 以及如何在没有这些的情况下获得成功

[瓦西里·科洛达](https://unsplash.com/@napr0tiv?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)在 [Unsplash](https://unsplash.com/s/photos/graduation?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) 上的照片
"我需要研究生学位才能得到一份数据科学家的工作吗?"
我经常被问到这个问题的一些版本。
这是一个合理的假设——考虑到 MSc。或者博士学位都列在招聘岗位的要求里。
作为一名博士辍学生,我想用一个有力的*不*来回答。作为一名研究生,我有一段不太理想的经历。它根本没有让我为就业市场做好准备。
但是完整的答案有点复杂。
我不认为研究生学位能让你为就业市场做更好的准备——至少,不足以证明时间和金钱上的成本。是的,你会学到很多。但是你可以从免费的在线课程中学到同样多的东西——如果不是更多的话(有一个好的导师也有帮助)。
然而,拥有一个学位——越高越好——会让你在就业市场上占得先机。这是因为教育作为一个信号对雇主来说是有价值的。布莱恩·卡普兰在反对教育的案例中提出了这样的观点:
> 大学毕业生的收入溢价飙升至 70%以上。…如此有利可图的投资怎么会浪费呢?答案是一个单词… **发信号**。即使学生在学校学到的东西毫无用处,如果他们的学业成绩提供了关于他们生产力的信息,雇主也会很乐意支付额外的费用。
卡普兰的观点是,高等教育不会产生更好的工人。它只是揭示了就业市场重视的预先存在的特征——智力、责任心和一致性。
对雇主来说,这些特质的结合才是有价值的。没有学位,很难对这三者都发出信号。例如,你可以通过技术面试来测试候选人的智力,但测试他们的认真程度和顺从程度要困难得多。布莱恩·卡普兰的来信:
> 你不可能一眼就发现一个人真正的职业道德。你当然不能问“你的职业道德有多好?”期待坦诚……信号不一定是确定的,总比没有强。
那么,你需要研究生学历才能在数据科学领域找到工作吗?
嗯,不。你不需要它。但这很有帮助。
这不一定会让你成为一名更好的员工,但这将是你进入职场的一个有用信号。
# 代替学位做什么
有一个比学位更好的信号——实际工作经验。
如果你已经在其他地方做过类似的工作,这是一个很强的信号,表明你知道自己在做什么。 [SharpestMinds](https://www.sharpestminds.com) 的学员经常报告说,当他们寻找第二份工作时,求职变得容易多了。第一个是障碍。
然而,技术提供了一个变通办法。对于某些类型的技能,你可以不被雇佣而获得经验。我在[的博客文章](/want-to-break-into-data-science-start-building-db5ed24a7d77)中为*向数据科学迈进*提出了这个观点:
> 对于许多职业来说,你需要找到一份工作来开始积累工作经验。但是当涉及到数据科学和机器学习时,有一个奇妙的区别——在被雇用之前,你可以获得大量的经验。怎么会?靠**造东西。**
通过项目组合的工作证明,可以帮助表明你作为数据科学家的能力。但是记住,你也要表现出一致性和责任心。你想表明你能遵守规则和惯例。并且你有把事情做好的愿望——用心和勤奋。所以不要只是把 MOOCs 和 bootcamps 的一堆 Jupyter 笔记本和 capstone 项目扔在 GitHub 上,然后就收工了。对你建造的东西多加小心。
你可以通过关注项目的细节来表现出责任心。笔记本适合探索和原型制作,但不适合迭代和协作。多做一点,编写干净的模块化代码。将您的文件组织到一个合理的文件夹结构中。
为您的项目准备一份好的自述文件——包括运行代码和为代码库做贡献的说明。如果我可以克隆你的回购协议,并让它在我的机器上运行,而没有太多的头痛,你会从我这里得到主要的加分。
注意硬编码的路径和键。让环境容易重现。拥有一个 requirements.txt 对于大多数爱好项目来说已经足够好了,但是仍然表明你在环境可复制性上花了一些心思。
以上很多情况也可以表明你是从众的。您应该表明您采用了最佳实践,并且了解如何使用通用工具和框架。看看一些流行的开源库,模仿它们的项目结构和文档。让你的代码符合 [PEP8](https://www.python.org/dev/peps/pep-0008/) 风格指南。写好的[提交消息](https://chris.beams.io/posts/git-commit/)。
一个完整的学位作为一个信号是有用的,因为它需要多年才能完成。它向潜在雇主表明,你可以启动一个长期项目,并坚持到底。这就是为什么拥有一个维护良好的项目的投资组合比拥有几十个废弃项目和原型的投资组合更有价值。
建立端到端的东西,并投入持续的工作。像对待产品一样对待它。你希望向雇主发出信号,表明你可以将目标设定在一个问题上——一个模拟实际商业问题的问题——并长期坚持下去。构建一个好看的前端。与世界分享。定期捐款以表明你没有放弃它。
超越“初始提交”。
# 数据分析对领导者和管理者的价值
> 原文:<https://towardsdatascience.com/the-value-of-data-analytics-to-leaders-and-managers-eaf4e6e769a3?source=collection_archive---------30----------------------->
## 在数据科学和数据成为“新石油”的时代,数据分析对当今的领导者和管理者有什么价值?他们如何利用这种能力获得持续的竞争优势?

亚历山大·辛恩在 [Unsplash](https://lincolncollege-my.sharepoint.com/s/photos/big-data?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) 上的照片
## 利用数据分析对公司有什么好处?
有必要先问一问利用数据分析的公司是否能够获得一种使他们与众不同、超越竞争对手的能力。
事实证明,有大量证据证实这个问题的答案是“是”,包括 Wegener & Sinha 的一份报告显示,使用数据分析的公司成为顶级财务表现者的可能性是其他公司的两倍,麦肯锡公司的另一份报告显示,数据分析公司的税前利润比其他公司增加了 20%。
除了这两个例子,还有大量的研究和证据支持这样一种观点,即接受数据分析将改善业务成果并带来竞争优势。
## 战略利益是什么?
有一种传统观点认为,具有良好数据分析成熟度的公司在每次会议开始时都会查看公司数据仪表板,每个决策者都可以立即访问大量详细描述公司业绩细节的电子表格。
这可能有一定的道理,但在更高的层面上,拥有成熟数据分析能力的公司的领导者和经理知道如何问和回答正确的问题,从而给予他们独特的洞察力和做出正确决策的能力,以推动公司业绩。
众所周知,维克多·基亚姆“非常喜欢剃须刀,他买下了这家公司”,但事后看来,这个决定是一个被称为“替代”的例子,这是一个著名的心理效应,对数据驱动的公司产生了影响。
在企业收购过程中,有许多问题应该被提出,但在提出“雷明顿公司的股票被低估了多少?”Victor 似乎已经回答了“我个人有多喜欢它的一种产品?”。
在数据分析公司中,替代效应可以简单地通过寻找将告知决策的数据和信息来解决。在 Remington 的例子中,所需的主要数据可能是历史股票市场表现和销售趋势,而不是单一的样本产品调查,这将导致正确回答与收购决策相关的正确问题。
除了避免用一个不同的问题代替被问的问题,数据分析领导者和公司更有可能在第一时间提出正确的问题。
在“可乐大战”期间,两家领先的公司之一生产了一种新的、有吸引力的玻璃瓶,并在销售方面领先于其主要竞争对手。竞争对手迅速成立了一个工作组,设计和生产一种更有吸引力的瓶子,以赢回顾客。
在这个任务中失败后,团队从这个问题后退一步问,“什么是正确的问题?”以及“我们需要什么数据?”。事实证明,正确的问题是“我们如何卖出更多的可乐?”,与客户需求相关的正确数据和答案是开发普通的旧 2 升塑料瓶,从而提高销售额和利润。
这是一个提出正确问题的经典例子,数据分析领导者和公司更有可能意识到这一点,并以改善其结果的方式提出业务挑战。
## 数据与直觉
在《思考的快慢》中,诺贝尔奖获得者丹尼尔·卡内曼提出了许多反对纯粹直觉决策的论点,并为使用数据分析来增强、通知和支持重要的商业决策提供了有力的证据。
罗杰·费德勒在网球中可以凭直觉正手击球;他不需要考虑中风或在任务之前或期间处理任何想法,它只是自动发生。然而,罗杰可以快速执行 1000 个与镜头相关的决定,并获得即时、准确的反馈,以判断他的决定是对还是错。
现在考虑一个高级的商业决策,比如公司合并。领导者很可能会在职业生涯中做出一些如此重大的决定,即便如此,指示成功或失败的反馈在许多年内都不会为人所知。
第一个例子非常适合直觉,第二个例子要求直觉与准确、一致、及时和适用的数据相结合,以三角分析和验证领导团队的想法和观点。
数据分析并不意味着领导者和管理者的直觉应该被忽略或不重要,但它确实提供了一种宝贵的方式来检查直觉,如果两种观点不形成三角关系,就可以提出关于哪种观点是正确的搜索问题。
## 留给领导者和管理者的角色是什么?
有证据表明,精通数据的公司的表现明显优于“没有数据的人”,研究表明,直觉决策存在缺陷,决策者的角色是什么?人工智能算法最终会完全取代经理吗?
这种方法不仅会引起严重的士气和道德问题,而且现有证据强烈表明,决策者不仅要发挥作用,而且他们的作用对于从数据分析中获取商业价值至关重要。
我最喜欢的数据科学引语来自 Mike Schmoker 博士,他说:“只有当我们收集的数据能够通知和激励那些有能力做出改变的人时,事情才能完成”。
我对这句著名的数据引语的解释是,我们可以拥有顶级的数据科学家、最准确、最及时和最一致的数据、最视觉震撼的图形和图表以及最好的机器学习模型,但如果领导者和管理者不利用它们来影响和告知关键的商业决策,所有这些都是徒劳的。
在数据术语中,有三种主要的数据分析类型:
“描述性分析”从时间上回顾已经发生的事情,并将它们记录在图表和报告中。
“预测分析”使用历史数据和统计技术来预测未来可能发生的事情。
“规范分析”采用前两者的输出和结果,并将其应用于商业决策,以推动和优化业务成果。
说明性分析是最重要的一步,因为没有它,那些复杂而聪明的描述性和预测性模型将被束之高阁,不会对业务成果产生任何影响。
为了实现所强调的好处,包括最高的四分之一财务业绩和 20%的收入增长,领导者和经理必须充分参与,知道向数据专家询问什么问题,然后使用数据分析产生的洞察力来制定高质量的决策,这将是未来文章的主题。
## 结论
我们探讨了获得成熟数据分析能力的公司可以获得哪些好处,战略好处是什么,数据如何补充和增强直觉决策,以及领导者和经理如何在将所有潜力转化为已实现的业务好处方面发挥关键作用。
“VRIO”框架表明,一项业务能力必须是有价值的、稀有的、昂贵的,以供其竞争对手模仿,公司必须组织起来从中获取价值,如果这些事情都成立,公司将实现持续的竞争优势。
如果领导者和管理者可以影响他们的公司获得并发展通过这四项测试的数据分析能力,那么就有很大的机会获得持续的竞争优势,然后数据可能真的会成为新的石油。