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

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

对 2020 年的 20 个奇怪而具体的技术预测

原文:https://towardsdatascience.com/20-tech-predictions-for-2020-d08cbfaa050e?source=collection_archive---------14-----------------------

[在此插入已经过度使用的“2020 愿景”笑话]

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

道格·祖巴在 Unsplash 上的照片

参加一项运动

本文最初是为《T2》《T4》撰写的,这是一份对当今技术挑战进行深入分析的在线杂志。 点击此处进入

就其本质而言,技术的未来很难预测。然而,这不应该阻止我们去尝试,因为…嗯,这很有趣!正如我对 2018 年和 2019 年的预测所示,我似乎也相当擅长这个。那么,2020 年我们会遇到什么呢?以下是我对此事的想法。

1)流动利润参与成为常态

较大的流媒体公司(网飞、Hulu、亚马逊……迪士尼(?))将开始与电影公司分享部分利润,而不是直接购买目录。这将迫使工作室提供更高质量的内容来获得经常性收入,同时允许流媒体公司更好地平衡他们的账目。这也意味着公司可能会变得越来越交织在一起,并将在不久的将来(2021/2022 年)导致一系列垂直整合。

2)苹果收购一家娱乐公司

很多人声称苹果将在 2020 年收购迪士尼或网飞。那些人错了,他们不理解 A)简单的数学和 B)文化在并购中的重要性。你知道哪家公司最适合苹果吗? HBO,凭借其优质的形象和内容(它也急需从已经开始破坏其内在价值的 AT & T 中拯救出来)。收购一家娱乐公司将是明智之举,因为苹果的收入目前停滞不前。像大多数公司一样,它也开始意识到娱乐是下一个大事件。

3)微软进行创纪录的收购

他们度过了一个伟大的 2019 年,这让投资者的期望极高。他们还幸运地处于一个可以满足这些期望的地方:该公司没有像其他一些大型科技公司那样受到那么多的反垄断压力,其多元化的业务意味着如果市场变得更糟,它不太可能受到巨大打击。事实上,2020 年,微软的股票很可能会上涨 20%。

4)两次首次公开募股大获成功

减税和繁荣的生态系统带来的好处不足以重复 2019 年知名科技股的辉煌,以及相应的高投资/选择性盲目。2020 年,投资者将开始寻找知名度稍低、市盈率较低、但具有长期增长潜力的股票。像 AirBnB滴滴出行这样的公司,实际上是盈利的选择 2020 年上市,会在股市上大赚

5)优步关闭 UberEats

UberEats 的 4 岁生日将是它的最后一个生日。这不会是因为运输公司的分公司特别不赚钱吧(其实做的还不错!),而是因为优步只是一家运输公司。随着它遇到越来越多的法律麻烦和挑战,以及食品配送领域的竞争加剧,其首席执行官将宣布是时候专注于基础工作了,并将把 UberEat 卖给出价最高的人。这也将确保在不进一步依赖外部资金的情况下偿还优步堆积如山的债务。

6)网络犯罪重创公共机构

网络犯罪是一个利润导向的行业。因此,我们将看到针对易受攻击目标的攻击增加:市政当局、学校、高等教育机构和研究机构。原因如下:

  • 这些行业拥有大量高度敏感的数据
  • 他们有多个黑客入口
  • 他们资源有限,修补速度缓慢
  • 这些行业的资金通常会在下一年得到保障,这意味着明天的问题会用昨天的解决方案系统地解决。

正因为如此,网络保险将在 2020 年成为必备。

7)滴答被过度讨论

随着脸书慢慢变成一个墓地(无论是思想上还是数字上),Tick-Tock 将成为最新的平台,让许多老年人非常困惑,从而非常愤怒。原因有三:

  • 这是一个中国平台
  • 它被用来创造和提升流行文化
  • 过去它被用来传播政治信息

因此,它的毒性足以在 2020 年竞选期间解决*(很少有公司能够梦想的自由营销)。因为欧洲总是落后一年(如果不是更久的话),到 2020 年底,我们将会看到一些“原创”的“思想片段”出现在欧洲的主要报纸上。***

免费的人工智能助手在网上激增

Alexa 和 Siri 是另一个时代的遗物(抱歉,如果你只是在圣诞节得到了一个)。随着自然语言处理算法变得更容易理解,并在市场中被过度稀释,它们可能会成为品牌的另一个功能,而不是其本身的一项服务。这将导致人工智能助手的民主化,通过网络可以免费使用。

9)亚马逊推出医疗保健服务

2019 年,亚马逊宣布推出亚马逊护理,这是一项新的试点医疗保健服务,最初向其西雅图员工提供。但你可以肯定的是,这种以员工为导向、受地域限制的模式不会持续太久。这有两个原因:亚马逊拥有强大的计算能力和独特的人工智能专业知识,而医疗保健产生了大量数据,这些数据目前没有得到充分利用。

不会有糟糕的结局,对吗?

10)深度造假导致大公司股票下跌

Deepfakes 变得非常非常容易制作。因此,一个 CEO 对一头猪做出不敬的事情的视频出现只是时间问题。那个视频会是假的,但这无关紧要,因为社交算法被调整为让有争议的内容传播得比真相更快。在真相大白之前,倒霉的高管们的股票会暴跌。

11)技术帮助残障员工成长

只要我们愿意去思考,科技就不会本质上是邪恶的,它能以非常切实的方式帮助我们。例如,很有可能士兵穿着外骨骼是乏味的技术废话(对美国来说,一个高中辍学生的生活比一套这样的衣服便宜)。但公司使用完全相同的西装来增加员工数量是完全合理的:失业率低到足以迫使以前被关在门外的员工进入,公司必须接纳他们,让他们享受自己的才华。期待 2020 年关于机器人套装、人工智能眼镜和增强型家庭办公室的讨论。

12)广告接管智能音箱

智能音箱很可能在 2020 年成为抢手货。这不是新闻,本身也不值得预测。然而,人们忽略了一个事实,即这给了广告商一个全新的平台,就像电视支出创下历史新低,广告拦截器开始发挥作用一样。这里重要的是,世界范围内的法规太少,无法阻止他们以最肮脏的方式使用它。这将开始一场定义 2020 年代的战斗:隐私之战。人们很可能会输掉这场战斗,即使他们正在赢得反对面部识别的战斗:面部识别显然太邪恶了,消费者使用案例太少,而语音激活的设备几乎让所有人受益。

13)国际活动中讨论的人工智能疏忽

在 2019 年的大部分时间里,人工智能监管会谈是在以技术为导向的论坛上举行的,而不是在法庭和总统办公室。不再是了。2020 年,世界各地的政府将觉醒并意识到,让公司大规模地为人民做决定对一个国家及其宪法来说是不健康的。如前所述,面部识别很可能是最后一根稻草。

14)联邦快递被收购

联邦快递是濒临灭绝的物种的一部分。它既不整合,也不众包劳动力。证据是在 2019 年 12 月,当时亚马逊宣布其卖家不能再使用它来运送他们的产品。这相当于在公司里膝盖上挨了一枪。随着它的库存慢慢减少,它最终将被一家美国大型零售商收购。这也将是一笔不错的交易:联邦快递将获得更多的配送地点,并节省最后一英里的费用,而零售商将在物流上花费更少的钱。

15)亚马逊达到财务成熟期

多好的短语啊,艾玛莱特?多年来,亚马逊只专注于股东回报的增长(2328.9 亿美元的收入,100.7 亿美元的净收入简直令人发指)。随着公司耗尽扩张空间,需要强大的后盾来抵制反垄断运动,它将向股东支付最高的股息。

16)加密货币卷土重来

但不是那种有趣的嬉皮士。巨大的,公司发行的,私人控制的那种。中国也将引领这种回归,这意味着 2020 年的加密货币将与 2017/2018 年的情况截然相反。恭喜你,密码兄弟,你打破了牢不可破的系统

17)懈怠变得无关紧要

微软用团队杀死了 Slack,只是它还不知道而已。然而,市场确实如此,因为这家奇特的企业信息公司目前的股价比 IPO 价格低 46%。【Slack 不可能活过 2020 年,因为大多数大公司都在整合微软的 Office 365 套件。Slack 很快就会被称为终极潮人信息平台,所有向员工支付乒乓球拍和麦粒的市中心初创公司都在使用它。

18)机器人流程创新成为大新闻

我们正在慢慢制造越来越好的机器人,它们将很快成为少数行业的主食(首先是零售和运输)。由于客户通常是不可预测的怪人,机器人将首先用于改善和加速各种过程,如最后一英里的交付或货架堆叠

hyperloop 首次成功

对埃隆·马斯克来说,2020 年(以及接下来的几年)很可能是这样的:

  • 超回路开启了它的第一条路线,
  • 结果是使用/操作成本太高,
  • 随着创始人专注于自己真正的爱好(火星和迷因),该公司慢慢从公众视野中淡出。
  • hyperloop 的基础技术被出售,并在世界各地用于改善公共交通。

20)对“数字双胞胎”的兴趣激增

2018 年,我将数字双胞胎归类为“非常模糊但非常令人兴奋”。后者与今天相关,但前者不那么相关。Digital twins 集成了机器学习和软件分析,以创建互联物理资产的数字副本,这些资产会随着其物理副本的变化而更新和变化,从而在对象的整个生命周期中提供各种见解。到 2020 年,预计将有 210 亿个连接的传感器和终端,在不久的将来,数字双胞胎将为数十亿件事物存在,即使只是为了在维护和修理方面节省数十亿美元的潜在成本。

上述许多情况看似不可避免,而且往往对整个社会有害。然而,最重要的是要记住,技术是由我们所有人创造、实施和塑造的,我们对它如何影响我们有真正的发言权。这可能小到在 Twitter 上向一家公司发送一条不赞成的消息,也可能大到当一个政客没有把我们的最佳利益放在心上时,就把他赶下台。我们的行动很重要,而确保这些预言成为现实或者不成为现实取决于我们*。***

2019-20 NHL 统计仪表板

原文:https://towardsdatascience.com/2019-20-nhl-statistics-dashboard-881e470ed202?source=collection_archive---------48-----------------------

季后赛前对顶级球员的互动观察

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

Anders krgh jrgensen 在 Unsplash 上拍摄的照片

正如我在之前的帖子中提到的,我决定利用隔离期间的空闲时间来学习新的方法和应用程序,以处理和呈现所有类型的数据。对我来说幸运的是,Tableau 非常慷慨,在有限的时间内免费提供他们的整个电子学习平台,所以我决定充分利用这个机会,使用 Tableau Public 完成 Tableau 数据分析师课程(专业服务对于在家休闲使用来说太贵了)。Tableau 对于探索和制作有意义的数据洞察力来说,确实是一个非常强大和可定制的体验。

我的大部分数据项目都围绕着金融经济学和商业数据,但随着 NHL 赛季最终计划重新开始,我想在我的研究中增加一些多样化,以及除了专注于人类已知的最佳运动 NHL 曲棍球之外还有什么更好的方式(不是说我有偏见,因为我从会走路起就开始玩这项运动了…但我完全有偏见)。我的第一个仪表板只包含了攻击性统计数据的细目分类,使用了一个单独的仪表板、四五个工作表和一些仪表板操作。但是,任何数据探索者都知道,总会有更多的信息需要传达。

最终产品是我的第一个完整的 Tableau 出版物。这个仪表板实际上由三个独立的仪表板组成,单个球员的原始进攻明细,单个球员的防守明细,以及团队级别统计数据的团队级别比较。我利用了更多的仪表板、动态可视化的参数动作和自定义函数,来制作一个交互式的深度视图,看看球员们目前的位置(或滑冰…哈哈),从统计上来说,是在 NHL 于 8 月份恢复季后赛之前。不幸的是,目前还没有办法将 tableau dash 嵌入到 Medium 中,但是可以通过以下链接找到 dashboard:

https://public.tableau.com/profile/andrew.cole#!/viz home/NHL summary 19-20/TeamComparisonDash

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

仪表板中团队级别比较统计数据的快照。

如果你碰巧在玩它,请随意评论,推荐,你喜欢的东西,你讨厌的东西。就像我说的,这是我在 Tableau 上的第一个完整产品,要变得更好的唯一方法是确定我需要在哪里变得更好!

最后一件事…加油黑鹰队!

2019 小说《冠状病毒:人们的想法》

原文:https://towardsdatascience.com/2019-novel-coronavirus-peoples-thoughts-8c06c3caf20e?source=collection_archive---------18-----------------------

使用 Twitter 对 2019 年新型冠状病毒爆发进行简单的情感分析

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

图片来源:NIAIDonFlickr(CC0)

免责声明: 本文旨在适应、学习和理解一个情感分析及其潜在用途。这不是任何官方研究的一部分,研究结果也不适合任何形式的决策。

由于著名的冠状病毒 (nCov-19) ,公众产生了相当大的恐慌。因此,在这篇文章中,让我们来看看公众的恐慌程度和(一些人)使用人们发布的推文的积极程度。

下载数据

在这个实验中,我们将使用标签为**#冠状病毒、#COVID19 和#冠状病毒爆发**的推文。从 3 月 1 日开始,有 1000 条推文被删除。这些将作为一个json字符串保存到一个名为data.json的文件中,以便于解析。

此外,我们将使用来自 http://www.cs.jhu.edu/~mdredze/datasets/sentiment/的 的数据进行培训。我使用了一个数据集,其中的商品评论从 1 星到 5 星不等。我下载了**processed _ stars . tar . gz文件,将子文件夹中的所有all_balanced.review文件提取并聚集到单独的路径data/processed_stars_all**

通过一点点编码,我们可以轻松地从 twitter 获取数据。在这篇文章中,我已经下载了 1000 条推文。代码应该是这样的:

预处理数据

因为我们是从公共来源下载数据,所以我们必须使用一些预处理,以便为下游分析保留有用的措辞。很少有预处理自然语言内容的常用技术。

符号化

这里我们将文本分解成句子,即句子分词**,并将句子再次分解成作品,即单词分词。在本文中,我们将立即执行单词标记化,因为推文大多比典型的社交媒体内容短。**

停用词的删除

英语由几个停用词组成,这些停用词在句子中增加意义,但在上下文中没有意义。例如像is are was has等词语。不要为我们的用例增加价值。

词汇标准化

在这个过程中,我们摆脱了单词的形式,从而保留了单一的表征。比如说; 可玩 等。可以将 简化为 并保留核心意思。

这种正常化有两种形式。

  1. 词干 —这就是我们去掉词缀(前缀和后缀)的地方。与单词“ play ”相关的例子就属于这一类
  2. 这就是我们使用上下文感知进行词干提取的地方。例如,知道一个单词是名词还是动词对词干有很大的影响。比如说; 烘干机 可能会变成 烘干机 而实际上它是一个名词。在本文中,为了简单起见,我们将跳过引理满足。

训练模型

机器学习分类的起点之一是朴素贝叶斯分类器**。在本文中,我们将使用一个多项式朴素贝叶斯分类器(MNB) 。术语多项式很重要,因为我们的训练数据集由评论星(1-5 星)组成,因此有 5 个可能的标签。**

输入

我们的输入是压缩文件中的行的形式feature:<count> …. feature:<count> #label#:<label>.第一步,我将创建句子,并以 TF-IDF 格式传输它们。这种格式通常可以补偿出现在多个文档中的常用词。这些词通常信息量较少,因为它们的丰度很高。为了查询简单,我将这些数据存储在一个pandas数据帧中。

训练和预测

下面是我们分析的完整代码。我将在代码下面解释这个过程,这样你可以很容易地理解。

可以通过将我们的数据拟合到模型中来进行训练。在我们的例子中,text_tf = tf.fit_transform(data[‘sentence’]) line 做到了。我们通过在text_tf_tw = tf.transform(sentences_processed_tw)中将 twitter 数据转换成 TF-IDF 形式来执行预测。注意,我们在这里使用预处理的 tweet 文本。这种转换将使用我们在培训中使用的单词语料库。因此,新词或推特用户的俚语不会对我们的分析产生任何影响。我们在predicted_tw = clf.predict(text_tf_tw)行做预测。

这个模型只有大约 70%的准确性,这不是很好,但对于学习和发现来说是一个很好的模型。包含更多社交媒体术语的更大数据集确实会提供更好的训练和准确性。

结果的解释

正如您可能已经在我的代码中注意到的,我们简单地绘制了一个直方图,并使用核密度估计(KDE)图来查看分布的性质。它看起来像下面。

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

柱状图

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

KDE 归一化直方图

在该图中,x 轴上的 1-5 对应于恒星或阳性性质。因此,1 表示消极情绪,5 表示积极情绪。我们可以清楚地看到,人们有消极或积极的想法,这清楚地代表了社会的两极分化性质(也可能不是)。

可能的进一步扩展

虽然除了文本之外,我没有使用任何其他信息,但我们可以结合时间序列数据和位置信息,以说明谁有不好的想法,以及恐慌可能如何在各国蔓延。在这个领域进行认真的探索将会带来有趣的商机,比如销售口罩(我很确定企业正在这么做)。

我相信您已经很好地阅读并看到了大数据的潜在力量!

感谢阅读。如果你觉得这很有趣,请留下你的想法。

干杯!

2019 年:新加坡有记录以来最热的一年

原文:https://towardsdatascience.com/2019-singapores-warmest-year-on-record-6b9ab1c42e11?source=collection_archive---------43-----------------------

2019 年,这个城市国家的年平均气温达到 28.44 摄氏度,比 2016 年的纪录高出 0.01 摄氏度

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

资料图片:蔡金汉

2019 年,全球气温记录大幅下降,科学家宣布,这一年是自 1880 年有记录以来第二热的一年。2010-2019 年也是现代最温暖的十年

新加坡也不例外,2019 年的年平均气温达到 28.44 摄氏度,成为有记录以来最热的一年。根据 T4 国家环境局(NEA)的数据,2019 年也是自 1869 年以来第三干旱的一年。

让我们仔细看看 2019 年的主要天气趋势,以及它们与前几年的对比:

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

通过繁荣创造的线图竞赛

数据和笔记本

这篇文章的原始数据来自新加坡气象局的网站,该网站有 1980 年以来的公共气象记录。1980 年至 1982 年的许多数据点缺失,因此这里的图表比较期仅限于 1983 年至 2019 年。

天气数据被编辑和重组为两个独立的 CSV 文件,以帮助可视化过程。你可以在这里下载,在这里下载

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

与这篇文章相关的两个笔记本已经被上传到这个项目的 Github repo。这里有(数据准备),这里有(部分图表)。

图表 1: 2019 年,按年平均温度排名

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

除了令人担忧的上升趋势之外,图表 1 中令人震惊的是,迄今为止最热的 10 年中有一半来自过去十年——2019 年(第一)、2016 年(第二)、2015 年(第五)、2010 年(第七)和 2014 年(第十)。

2019 年和 2016 年创下的气温纪录也超过了 1997 年和 1998 年的纪录,当时新加坡和世界都感受到了厄尔尼诺效应对的冲击。

根据 NEA 的数据,新加坡 2019 年的年平均温度比 1981-2010 年的长期平均温度高 0.9 摄氏度。

图表 2:温暖的夜晚

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

不仅仅是白天更暖和。根据天气记录中的每日最低温度,夜间温度也在 2019 年创下新高。

图表 2 中排名前 5 位的年份中有 4 年来自过去十年的后 5 年,这是全球变暖加速的又一个明显迹象。

图表 3: 2019 年,有记录以来第三个最干旱的年份

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

不出所料,2019 年也是有记录以来最干旱的年份之一。2019 年,新加坡樟宜气候站记录的全年降雨量仅为 1,367.5 毫米。

根据 NEA 的数据,这一数量比 1981-2010 年的长期平均水平低 37%,使 2019 年成为自 1869 年以来有记录以来第三干旱的一年。

2010 年至 2019 年的十年平均气温为 27.95 摄氏度,超过了 2000 年至 2009 年的 27.75 摄氏度和 1990 年至 1999 年的 27.65 摄氏度。但通过绘制 10 年间隔的年度天气模式图,更容易看出这些变化。

让我们比较一下新加坡在过去 40 年(2019 年、2009 年、1999 年和 1989 年)末期的天气模式。

图表 4:2019 年、2009 年、1999 年和 1989 年各月气温变化对比

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

图表 4 中的红色粗线显示了 2019 年的月平均气温如何普遍超过了 2009 年、1999 年和 1989 年的类似时间点,只有少数例外,如 2009 年 6 月。

其他引人注目的趋势包括:

  • 1 月份平均气温的大幅上升,从 1989 年的 26.5 摄氏度上升到 2019 年的 27.97 摄氏度,上升了 1.47 摄氏度
  • 在 1989 年、1999 年和 2009 年,在熟悉的 6 月至 7 月高峰之后,月平均气温开始下降。但在 2019 年,月气温与年中趋势相反,反而升至 7 月至 9 月期间的新高。2019 年 8 月和 9 月的月平均气温分别为 29.12 摄氏度和 29.03 摄氏度,是新加坡这两个月的最高气温。

图表 5:比较 2019 年、2009 年、1999 年和 1989 年的月降雨量变化

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

在绘制类似的降雨量而非平均气温图表时,我们可以看到年中趋势的类似变化。在 1989 年、1999 年和 2009 年,6 月西南季风到来后,月总降雨量有所增加。

但在 2019 年,7 月至 9 月的月降雨量降至新低。2019 年 12 月是四年来降雨量最多的一年,但后期的激增不足以弥补今年其他更干燥的月份。正如我们在图表 3 中看到的,2019 年是新加坡有史以来第三干旱的一年。

新常态?

2019 年没有打破任何单日天气记录。例如,1998 年 3 月 26 日,在过去 37 年中记录的最高日最高温度为 36℃。在 2019 年,记录的最高日最高温度是 3 月 12 日,当时樟宜气候站的水银柱达到了 34.8 摄氏度。

同样,2019 年最大的日降雨量仅为 92.2 毫米(10 月 27 日)。这还不到 2011 年 1 月 30 日创下的 216.2 毫米降雨量纪录的一半。

但是总体来看,从上面的图表中可以清楚地看出,新加坡的天气模式已经进入了一个高温少雨的新常态。这不仅会导致更大的个人不适,还会产生相当大的政策影响。

首先,随着家庭更频繁、更长时间地使用风扇和空调,我们可以预计能源消耗将会上升。更干燥的天气意味着新加坡将不得不更多地依赖再生水和海水淡化厂来满足其需求,这反过来又进一步增加了能源的使用。

进入新的十年,还不清楚未来几年新加坡天气模式的变化速度会加快多少。但是套用作家欧内斯特·海明威的话来说,不受欢迎的变化往往会“逐渐地,然后突然地”发生。

和往常一样,如果您发现代码中有任何错误,请 ping 我@

推特: @chinhon

领英:【www.linkedin.com/in/chuachinhon

如果你对研究新加坡的天气数据集感兴趣,这里是我使用相同记录的早期项目:

2019 —伯特和变压器年

原文:https://towardsdatascience.com/2019-year-of-bert-and-transformer-f200b53d05b9?source=collection_archive---------8-----------------------

一篇关于 2019 年 BERT 和 NLP 项目的短文

BERT 论文于 2018 年底发布,之后在 2019 年,我们看到了自然语言处理(NLP)和自然语言理解(NLU)领域的大量活动,从 BERT 在谷歌的搜索生产中使用到其他几个架构,这些架构显示出了比 BERT 更好的结果。BERT 在情感分析、问题回答、句子相似度等多项自然语言处理任务中表现出色。我在 2019 年 1 月使用 BERT 预训练的权重进行了一个项目,所以这可能是因为我在这一领域工作,但我在任何地方都会看到一些关于 BERT 的参考资料——比如中型文章、iOS 上的 BERT、BERT 的硬件加速、Kaggle 比赛、受 BERT 启发的更大模型等。我也认为芝麻街的名字与伯特的流行有一定关系,尽管开创名字潮流的功劳归于来自人工智能艾伦研究所ELMO 论文(深度语境化的单词表达)。BERT 使用双向变压器和许多其他架构,这是在 BERT 也使用了某种形式的变压器之后出现的,基于论文“注意力是你所需要的全部”。

BERT 之前的一些主要 NLP 项目的时间表:

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

一些主要 NLP 项目的时间表

2013 年发布的 Word2Vec 模型仍然非常受欢迎,它通常是任何 NLP 问题中的第一个尝试。快速文本手套嵌入也非常有用。

语言模型

ELMO— Elmo 使用双向 LSTM。预训练的 Elmo 重量可以从这里下载。要使用 Elmo 嵌入,可以使用 AllenNLP 库、 Tensorflow hubFlair 库。

ULMFiT —杰瑞米·霍华德和塞巴斯蒂安·鲁德的 ULMFiT 论文描述了为特定任务微调语言模型的技术,它使用了 LSTM 的。你可以在这里找到如何使用 ULMFiT 使用 fastai

上述两篇论文出现在 BERT 之前,没有使用基于变压器的架构。

BERT —原文是这里,还有一个很好的教程,里面有 Jay Alammar 的插图这里。预训练的重量可以从官方 Github repo 这里下载。BERT 也可以作为 Tensorflow hub 模块使用。有各种各样的其他库,也可以很容易地使用预训练的嵌入来微调它们,稍后会在本帖中提到。下面的时间线是 2019 年之后出现的一些主要论文。谷歌甚至开始在产品中使用 BERT 来改善搜索结果。

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

BERT 之后的项目时间表

Transformer-XL2019 年 1 月发布的 Transformer-XL 通过使用一种允许学习超出固定长度上下文的架构,对 Transformer 进行了改进。

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

《变形金刚》与《进化金刚》的对比— 来源

进化变压器——大约与 Transformer-XL 同时,进化变压器发布,这是一种通过进行基于进化的神经架构搜索(NAS)开发的变压器架构。

GPT-2 —继伯特之后,我认为另一个获得最多新闻报道的项目是 OpenAI 的 GPT-2 ,因为它能够生成几乎类似人类的句子,而且 OpenAI 最初决定不发布最大的模型,因为担心该模型被用于制造假新闻等。近 10 个月后,他们发布了最大的型号。你可以通过拥抱脸https://talktotransformer.com/https://transformer.huggingface.co/玩模型。我想如果它换个名字,甚至是一个芝麻街角色,它会更受欢迎:)

厄尼厄尼 2 —目前厄尼 2.0 在 GLUE 排行榜上排名第一。 Github 回购。

XLNET

RoBERTa —本文公正地衡量了 BERT 的各种超参数的影响,并表明原始 BERT 模型训练不足,通过更多的训练/调整,它可以超越最初的结果。目前,RoBERTa 的结果在 GLUE 排行榜上排名第 8!

Salesforce CTRL — CTRL 模型有 16 亿个参数,并提供控制人工文本生成的方法。

ALBERT —本文描述了参数缩减技术,以降低内存缩减并提高 BERT 模型的训练速度。阿尔伯特·雷波拥有预先训练好的砝码。艾伯特基本模型有 12M 个参数,而伯特基本模型有 110M 个参数!

大鸟

基准测试

评估这些语言模型的方法之一是 Glue Benchmark,它包括评估模型的各种 NLP 任务,如分类、QA 等。在其发布时,BERT 位于该表的顶端,但在短短一年内,它已移动到第 19 位(截至 2020 年 1 月 2 日)。

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

截至 2020 年 1 月 2 日的 Glue 基准排行榜— 来源

现在有一个强力胶基准测试,由更难的语言理解任务组成。

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

截至 2020 年 1 月 2 日的强力胶基准排行榜— 来源

对于评估问答系统 ( S 坦福德估计AnsweringDataset)是常用的,BERT 和后来的基于 transformer 的模型也在这里名列前茅:

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

截至 2020 年 1 月 2 日的 SQuAD 2.0 排行榜— 来源

还有各种其他排行榜,如 ORBOpenBookQA 等关于https://leaderboard.allenai.org/的排行榜,并且在大多数排行榜中都提到了伯特!

其他 BERT 相关项目

蒸馏伯特——更小的伯特使用来自 Huggingface 的模型蒸馏,博文此处

威震天-LM——Nvidia 的高效训练超大型语言模型的项目。

BioBERT——由 DMIS 实验室在生物医学领域训练的基于 BERT 的模型。

德语伯特

CamemBERT —基于脸书罗伯塔建筑的法语语言模型。

BERT 硬件加速——谷歌使用 TPU 更快地训练大型 BERT 模型,其他公司如graph core(code)和 Habana 也展示了他们的定制 SoC 如何加速 BERT 推理和训练。

video Bertvideo Bert是一个跨模态(或多模态)深度学习的例子,其中模型以自我监督的方式从视频中学习。

ViLBERT —学习联合视觉和语言表征的视觉和语言 BERT 模型。

NLP 库

下面是一些我认为在 NLP 领域工作的人必须知道的库

Spacy — Spacy 是一个流行且快速的库,用于各种 NLP 任务,如标记化、词性等。它还带有预先训练好的模型,用于命名实体识别(NER)等。最近它通过 spacy-transformers 增加了对基于 transformer 的语言模型的支持,这个库使用了 Huggingface transformer 库。

这是第一个提供 BERT py torch 实现的库,最初它被称为“PyTorch-pretrained-bert”。后来,他们增加了更多的模型,如 GPT-2,XLNET 等,现在这个库就叫做“变形金刚”。在不到一年的时间里,它已经成为最受欢迎的 NLP 库之一,并使得使用 BERT 和其他模型变得非常容易。使用他们的另一个库(【https://github.com/huggingface/swift-coreml-transformers】)你可以在 iOS 上使用 BERT,GPT-2 等!

AllenNLP —这是艾伦人工智能研究所的 NLP 图书馆,建在 PyTorch 的顶部。

Flair —也是一个 NLP 库,带有 NER、POS 等模型,也支持 BERT、ELMO、XLNET 等嵌入。

gluonlp—它是基于 Apache MXNet 之上的 NLP 工具包,是首批包含预训练 BERT 嵌入的库之一。它有很多有用的例子/教程

希望在 2020 年,自然语言处理领域会有更多的创新和突破。要了解更多关于自然语言处理和人工智能的知识,你可以在 twitter 上关注我——https://twitter.com/MSuryavansh

[## 使用迁移学习进行小数据的自然语言处理

使用较小的数据集实现高文本分类准确率。

blog.insightdatascience.com](https://blog.insightdatascience.com/using-transfer-learning-for-nlp-with-small-data-71e10baf99a6) [## 比以往更好地理解搜索

如果说我在谷歌搜索工作的 15 年中学到了什么,那就是人们的好奇心是无止境的…

www.blog.google](https://www.blog.google/products/search/search-language-understanding-bert/) [## 开源 BERT:自然语言处理的前沿培训

自然语言处理面临的最大挑战之一是训练数据的短缺。因为 NLP 是一个…

ai.googleblog.com](https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html) [## 了解如何让 BERT 变得更小更快

在这篇博文中,我们将讨论如何让像 BERT 这样的大型模型变得更小更快。

blog.rasa.com](https://blog.rasa.com/compressing-bert-for-faster-prediction-2/) [## ALBERT:一个用于语言表达自我监督学习的 Lite BERT

自从一年前 BERT 问世以来,自然语言研究已经采用了一种新的范式,利用了大量的…

ai.googleblog.com](https://ai.googleblog.com/2019/12/albert-lite-bert-for-self-supervised.html)

2020 年人工智能预测:我们在 2019 年做对了什么,2020 年有什么

原文:https://towardsdatascience.com/2020-ai-predictions-what-we-got-right-in-2019-and-whats-in-store-for-2020-4ef07173c67c?source=collection_archive---------36-----------------------

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

有时你在人工智能中得到它的权利…有时你没有。

在 2018 年底,我坐下来,戴着我的诺查丹玛斯帽子,推测未来一年人工智能的主要趋势是什么。2019 年,关于人工智能已经做了很多事情,写了很多东西——从世界末日场景(失业隐私)到人工智能为赢得围棋、扑克和星际争霸的游戏而构建。

但是抛开炒作不谈,有哪些预言成真了呢?2019 年 AI 有过哪些真实、有形、有用的应用?2020 年将会发生什么?

以下是概要:

我认为,2019 年将是各组织根据自己的数据建立专门的人工智能系统的一年。

这个预言肯定实现了。你可以“下载人工智能”来解决现实世界问题的想法是一个巨大的误解。相反,人工智能需要专门针对企业拥有、理解并最终使用的独特数据集。让企业能够快速构建、部署和迭代定制的人工智能应用程序一直是 2019 年的关键,也将是未来一年的中心主题。

2020 年,用户友好且价格实惠的人工智能平台将对企业挖掘自己的数据来构建定制的人工智能解决方案至关重要,使人工智能更适用于更广泛的应用。随着企业学习如何让人工智能为他们工作,对人工智能的理解和有用性将显著增长,将末日预言和理论思考远远抛在身后。

2019 年,我预计该行业将团结起来,围绕人工智能培育全球经济。

这就是我错的地方。我想象 2019 年,行业领袖和国家将走到一起,意识到人工智能有潜力帮助解决世界上一些最紧迫的挑战,并以多种方式造福社会。我设想了一个 2019 年,在那里,作为一个社会,我们打开了许多领导人工智能革命的国家之间对话的大门。

出现了相反的情况。2019 年,人工智能超能力的形成导致了两极分化。大公司没有走到一起,而是开始收集和挖掘个人信息,他们考虑的是金钱,而不是全球利益。

虽然人工智能和它的建筑师(科学家和工程师)信守了他们建造更多有用技术的承诺,但并不是每个人都把伦理放在首位。希望志同道合的人工智能公司将在 2020 年走到一起,建立一个由道德和以人为本的思想指导的人工智能行为准则。我相信这是可以做到的。

展望未来,人工智能需要在边缘生活和学习。

今天大多数人工智能系统都是在这样一个前提下诞生的,即学习发生在集中式云位置,迫使公司存储甚至可能放弃所有数据的所有权。作为一个推论,组织能够访问他们的数据的唯一方式是向大型云提供商支付巨额费用。

好吧,2019 年已经向我们表明,许多企业正在对放弃他们的数据说不,不得不 ping 云,并完全采用这种工作方式。

2020 年,客户将需要可以在边缘训练、部署和改进的人工智能,以便在生成数据的地方进行处理,最大限度地减少延迟问题、隐私问题和巨额云费用。对于工业和制造业应用来说尤其如此。越来越多的制造商将转向边缘,以保持其数据的所有权,并减少对云的依赖。因此,对云的依赖将仅限于某些用例或特定场景。

好消息是,随着我们进入 2020 年,越来越多的企业正试图将人工智能作为其商业战略的一部分。坏消息是,许多人已经失败或者没有达到他们想要的指标。

我对 2020 年的希望是,减少围绕人工智能琐碎应用的努力,更多地强调更小、更专注但真实的人工智能应用,这些应用能带来明显的好处和投资回报。也许没有人工智能在下一场比赛中击败人类的声势,企业可以开发节省资金、提高效率和改善我们生活质量的应用程序。

【https://www.forbes.com】本文原载于

巴西 2020 年选举:候选人分布分析

原文:https://towardsdatascience.com/2020-elections-in-brazil-an-analysis-of-candidate-distribution-e1d1aa2a1969?source=collection_archive---------76-----------------------

当涉及到他们的政治候选人时,巴西人得到了公平的代表吗?

这是一个关于巴西 2020 年选举候选人的简单 EDA(探索性数据分析),选举市长和市议员。在我工作的时候,选举还没有举行。我们将关注这两个职位候选人的性别和种族分布。有关所用代码的详细信息,请查看本 jupyter 笔记本。用于此分析的候选数据可以在这里找到,种族分布数据可以在这里找到。

性别分布

首先,让我们看看这些职位候选人的性别分布。当然,完美的分布(代表总体人口的分布)应该是男女各半。下图显示了所有职位候选人以及每个职位候选人的绝对和相对性别分布情况。

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

作者图片

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

作者图片

上述图表显示了巴西各地候选人政治代表性的性别差异;尽管妇女占人口的 50%,但她们仅占候选人总数的 33.2%,因此在候选人中代表不足。这种差距在市长候选人的分布上甚至更大(市长是一个更重要的角色,女性仅占 17%)。现在,我们将通过分析每个州在性别代表性方面的概况来进一步了解。

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

作者图片

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

作者图片

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

作者图片

上述图表显示,在考虑所有职位的候选人时,各州之间的性别差异似乎没有太大差异,与全国范围内观察到的差异接近;然而,在观察市长候选人的分布时,我们可以看到,一些州的男性和女性候选人之间的不对称程度比其他州更大。例如,在圣卡塔林纳州,男性市长候选人占候选人总数的 87%以上。

种族分布

接下来,我们将分析候选人中的种族分布。为了做到这一点,我们必须获得巴西人口的种族分布数据。这个数据是从 IBGE(巴西地理和统计研究所)收集的官方数据,可以在这里找到。以下图表显示了所有职位和每个职位候选人的绝对和相对种族分布情况,还有一个具体图表显示了整个人口的比例分布情况。

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

作者图片

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

作者图片

从上面可以看出,所有候选人的种族分布似乎与人口分布没有太大差异。但在市长候选人方面,情况并非如此:61.3%的候选人是白人,而整个人口中只有 45%的人自称是白人。另一方面,棕色人种只占这个职位候选人的 32%,却占了总人口的 43.4%。黑人代表也不足,仅占市长候选人总数的 5.12%,而占人口比例的大约两倍(10.1%)。

现在,我们将进一步分析并分别可视化每个州的种族分布。

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

作者图片

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

作者图片

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

作者图片

同样,上面的图表显示了在考虑任何角色的候选人时类似于国家场景的行为,白人有时在一些州甚至略有不足(而在其他州略有过多)。然而,当我们看市长候选人时,这种情况发生了变化,白人在所有州都明显过多,唯一的例外是阿克里州和阿马帕州。

结论

从性别分布来看,我们可以看到两个职位的候选人中男性和女性之间存在明显的差距;然而,对于市长职位的候选人来说,这种差距要大得多。另一方面,市议员候选人的种族分布似乎遵循民族构成,而市长候选人的情况却并非如此,白人明显过多。一旦选举开始,不妨重新审视这项工作,分析其结果,并与候选人库的分析进行比较。

2020 年美国大选:我们如何使用数据科学来展示拜登和特朗普的广告策略?

原文:https://towardsdatascience.com/2020-us-elections-how-we-use-data-science-to-unfold-ad-strategies-of-biden-and-trump-with-200095dd369a?source=collection_archive---------54-----------------------

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

封面由 Jay Kachhadia 设计,配有 Canva(背景图片由 Unsplash 提供)

2020 年美国大选正在全面展开,由于全球疫情对美国的打击如此之大,这是美国非常关键的一年。美国每四年举行一次选举,这是决定这个国家命运的一件大事。作为一名研究助理,我在攻读数据科学硕士学位的两年里一直从事于照明项目。尽管该项目最初起源于 2014 年各州州长选举期间。这个项目经过这些年的发展,现在已经变成了一个社交媒体选举分析平台。它帮助记者跟踪候选人的竞选策略。这个项目背后的策划者是詹妮弗·斯特罗姆-格里杰夫·海姆斯利,以及他们整个照明团队。该团队由社会科学家、行为科学家、语言科学家、数据工程师和机器学习工程师组成。

什么是启发性的?

Illuminating 是一个计算新闻学项目,旨在增强记者报道美国政治竞选的能力。它的目标是通过提供一个有用而全面的在线竞选宣传内容和特点的总结来帮助记者,而不仅仅是计算赞或转发。Illuminating 提供了一个交互式数据库,可以通过候选人在脸书和推特上的免费竞选账户以及他们在脸书和 Instagram 上的付费广告,轻松快速地跟踪候选人在社交媒体上的言论。

用于照明的技术(旧)

由于这个项目很老,用于照明的技术非常简单和可靠。我们曾经用内部开源工具来推动我们的 twitter 和脸书收集,这些工具基本上是访问 API 和收集数据的脚本,以及其他一些使用 SVM(支持向量机)来标记数据的脚本,以将内容分类到各种类别,并将它们推送到我们以前的 MySQL 数据库中。所有这些过程过去都在我们的服务器上运行(相信我,我们有许多服务器用于收集,以确保我们不会错过任何东西)。听起来很简单!但这并不是因为我们必须确保我们所有的收集器全天候运行,我们没有得到任何异常数据。

驱动下一代照明 2020 的新技术

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

照明收集和标记架构(使用 Canva 构建)

阿帕奇气流

我们一直在研究如何让这种基础设施具有弹性并且完美无瑕。所有这些都使用开源技术,我们有一个非常直接的选择: Apache Airflow 。多亏了 Airbnb,Airflow 在行业中被广泛用于创建数据管道和机器学习管道!

我们在服务器上部署了 Airflow,这些服务器完全用 Python 托管数据管道和机器学习管道(我喜欢 Python❤).这是全自动的,令人惊叹。2019 年夏天在 ViacomCBS digital 实习的时候接触到了 Airflow,瞬间爱上了它。虽然它有一个陡峭的学习曲线,但完全值得。

伯特

SVM 在自然语言处理分类任务方面表现不错。尽管如此,我们不得不提高我们的游戏水平,并尝试一些语言领域中最受欢迎的分类算法。当时有一个明显的赢家:**伯特。**我们使用了一个预先训练好的 BERT(来自变压器的双向编码器表示)基本模型(12 层,768 个隐藏,12 个头,110M 个参数),它是在维基百科和英语教科书上训练的,感谢 Google!我们根据我们的分类任务微调 BERT 的最后一层。

MongoDB

我们从 SQL 数据库 MySQL 切换到 NoSQL 数据库 MongoDB 。为什么是 MongoDB?由于其处理大量非结构化数据的能力,它具有更大的优势。它神奇地更快了。人们正在体验真实的 MongoDB 性能,这主要是因为它允许用户以对工作负载更敏感的不同方式进行查询。我们的基础设施上有数百万甚至数十亿条记录,涵盖自 2014 年以来的所有选举,其中包括来自 Twitter、脸书和 Instagram 等社交媒体平台的数据。

当前架构和数据收集

“照亮 2020”目前专注于总统候选人的政治广告,并用我们之前开发的代码簿对其进行分类。我们使用 Apache Airflow 来推动我们的数据管道,从脸书广告库 API 收集流媒体广告数据。该数据库每 4 小时更新一次新指标和新帖子,并由我们的机器学习模型进行标记。该数据包含来自脸书和 Instagram 的广告,适用于所有拥有有效脸书和 Instagram 账户的总统候选人。我们从主要候选人页面以及特朗普和拜登竞选团队在其他附属页面上购买的广告中提取广告及其元数据。我们不会为代表候选人的其他实体做广告,例如政治行动委员会。我们只收集那些参加辩论时间足够长的候选人的数据。脸书广告库 API 提供范围内每个广告的花费和印象数据,包括最小和最大数量。我们几乎自动化了从收集到机器学习再到用 Apache Airflow 采样数据的所有事情。

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

我们的气流有所有的管道(旧图像,你可以在这里看到每天的时间表)

在气流世界中,管道被称为 Dag(有向无环图)。每个管道都由多个任务组成,这些任务涉及通过我们的各种机器学习模型进行数据收集和标记,以便随时了解类别、礼貌和主题,并将所有内容推送到我们的 MongoDB 服务器。

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

我们的广告收集渠道/DAG 的快照

我们基本上在数据库中维护各种元数据,这基本上自动化了我们的流程中的一切。当我们在候选人的信息收集中添加一个投放日期时。它会自动阻止气流管道收集这些候选者,这意味着管道被智能地编程。

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

我们数据库中候选人信息的快照

在将数据推送到我们的 MongoDB 之后,我们从那里为我们的照明网络应用提供燃料。

照亮 2020

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

照亮登录页面

“照亮 2020”是 2020 年总统竞选广告分析的一站式商店,目前专注于拜登/特朗普的广告策略。这是一个绝对的发电站!你可以在这里获得更多关于我们广告分类类型的信息

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

消息类型和消息音调分类

我是锡拉丘兹大学信息研究学院的一名硕士生,从事这个关于数据工程和机器学习基础设施的伟大学术研究项目。

来看看《照亮 2020》吧!

你可以在 https://illuminating.ischool.syr.edu 的参观照明。该项目得到了约翰 s .和詹姆斯 L. 奈特基金会、哥伦比亚大学数字新闻 Tow 中心、计算和数据科学中心以及锡拉丘兹大学信息研究学院BITS 实验室的支持。当谈到 2020 年选举的广告分析时,它绝对是一个发电站,它会让你大开眼界。请投票选出 2020 年的最佳,因为这将决定这个国家的未来。

在 gmail dot com 的[myLastName][myFirstName]上提问,或者在 LinkedIn 上联系。

数据科学训练营体验的 2020 愿景

原文:https://towardsdatascience.com/2020-vision-on-a-data-science-bootcamp-experience-b1464244cb4c?source=collection_archive---------41-----------------------

关于 Metis Bootcamp 的远程学习体验——预、中、后

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

美国农场工人迁移的数据可视化

以上是我在本科建筑论文项目中完成的第一批数据可视化之一。每个点代表 500 个人。我本来在图上有一个键,但是当时我的教授鼓励我把它去掉——这是一个糟糕的选择!这最终让我想到了为农民工家庭设计的移动校舍。

我从哪里来

这是一个建筑师/城市设计师/研究人员如何过渡到数据科学的故事。我遇到的大多数人认为架构师没有资格成为数据科学家,但是我相信对于像我这样的人来说,这是一个完全自然的转变。原因有两个:

  1. 数据科学和架构都是数学、科学和艺术的混合体。
  2. 数据科学和架构是技术学科,只有对非技术受众有用时才会大放异彩。

我可以在这里进行更深入的探讨——也许这是另一篇文章——但我进入数据科学职业的主要动机是将我的职业生涯更多地转向科学而不是艺术,并填补我在 AEC(建筑、工程和施工)行业和人工智能之间看到的差距。老实说,我受到了哈佛大学 GSD 毕业生斯塔尼斯拉斯·夏鲁的生成设计作品的启发,它为我打开了一扇门,让我可以选择多种途径来填补这一空白。

训练营前

会话

我哥哥也是一名数据科学家,当我在丹麦攻读城市规划和社会变革博士学位时,他让我开始思考数据可视化。我和他讨论了我正在考虑做一个数据科学训练营,他建议我应该先开始学习编程和教育自己,这样当我去训练营时,我就不是第一次看到这些材料了。这通常是我在考虑转型时从多个渠道得到的建议。这被证明是非常明智的建议。

准备

David Malan 教授的哈佛 CS50 课程是我开始学习编程的第一门课程,在将理论分解成代码方面非常出色。我看了一下 Insight 研究员的职业转型准备材料,并开始跟随我自己的一些选择。我从多伦多的一些教授那里学会了 python 编程,也学习了谷歌 Python 课程,从吴恩达学会了机器学习基础,从 Mode Analytics 学会了 SQL。还听了 OCDevel 的机器学习指南播客和其他一些比较理论化的 AI 书籍。我看了一些微积分、统计和概率的复习资料,这并不太难,因为我在 T4 的高中教育是为那些痴迷于数学的人设计的。我对这些工具的力量、它们的潜力以及我使用它们的能力感到非常兴奋。但是,我觉得我会从加速训练营体验中受益,因为:

  • 我还没有完成一个端到端的独立数据科学项目。
  • 我知道还有很多东西要学,我需要帮助把所有的工具放在一起。
  • 我也想有一个真正的社区来加速我的成长。

训练营选择

我申请并被大会和 METIS 接受了他们的第一个在线实时队列。我与 GA 和 Metis 的毕业生交谈过,老实说,我并不觉得这两个项目有很大的不同,除了在 Metis,你可以端到端地做更多的项目,这正是我想要的。我住在洛杉矶,但是每天大概要开一个小时的车去大会的校园,所以我选择了 METIS 项目。我也听说了关于 Metis 的一些非常好的事情,真诚地喜欢他们的招生过程和他们提供的大幅折扣,因为这是他们提供的第一个在线直播课程。我对远程程序有一些担心:

  1. 与我的同事和导师建立有意义的联系
  2. 职业服务能够将我与当地雇主联系起来
  3. 能够与讲师进行足够的一对一交流

在训练营期间

你可以在 Metis 的网站上阅读课程和时间表,所以我不会在这里用这些来烦你。在整个训练营中,我最担心的三个问题基本上都解决了。我认为第二点非常正确,但是我从一开始就知道梅蒂斯拉的联系是有限的。

在线平台中的社会化物流

现场在线群组由大约 10 人组成,但我们与芝加哥的现场群组保持联系。我们的在线直播小组成员大部分位于加利福尼亚和纽约。令我惊讶的是,我能够与我的同学和导师建立牢固的关系。我认为这其中的关键是每天的结对编程练习,以及下午的站立练习,在那里我们互相更新进展并寻求障碍的帮助。我与在线直播和面对面的人都建立了持久的联系。我喜欢在线学习体验的自主程度,因为我觉得我可以专注于工具和项目。

一个又宽又深的领域

我们有三位导师,在整个训练营中,很明显他们每个人都有自己对数据科学的特殊兴趣和经验——一位是 NLP,另一位是统计学,还有一位是推荐器和神经网络——但他们都有兴趣教我们他们知道什么以及他们是如何知道的。在训练营期间,在反思了给我们上课的高级数据科学家之后,我感到平静,因为我不需要深入了解所有事情,数据科学在实践中可以有非常不同的专业,每个人都有自己的专业知识和才能。

关注业务用例

令人惊讶的是,除非你要求,否则老师不会检查你的代码,而是对你的大部分陈述进行评分。我很惊讶演示文稿被强调了这么多,但我认为这是有意义的,因为代码、建模和度量只是让您编写关于您的模型的业务用例的故事的工具,通过演示文稿,这个故事变得更加清晰。我发现令人惊讶的是,对问题的探索和思考会提高模型的性能——通常比模型调整更有效。我还发现,即使是最简单的模型也能非常有效地运行。项目的重点不是拥有得分最高的最佳模型,而是为机器学习模型构建一个应用程序,了解模型的内部工作方式,并能够评估与您正在解决的业务问题有关的指标。

利用我的优势

在训练营期间,我擅长将机器学习工具的应用概念化到商业用例中,并且是制作清晰的图形吸引人的演示文稿的大师。我的团队包括擅长用画面讲故事的专业人士,拥有漂亮代码的程序员,或者擅长脑筋急转弯的数学家。我们在需要改进的地方互相帮助。我认为我们团队所代表的丰富经验对我们的每一次成功都很重要。每个人都有可以提供和学习的东西。

插曲

你可以看看我在训练营期间做的项目:

  1. 电子设计自动化(Electronic Design Automation)

[## 优化纽约街头团队

营销|数据科学| MTA 十字路口数据+地理数据

medium.com](https://medium.com/@anupamagarla/optimizing-nyc-street-teams-4f5e3bd89105)

2.回归

[## 预测动画电影的表现

客户演示

towardsdatascience.com](/predicting-animated-film-performance-fc32e3611c71) [## 预测动画电影表现的数据管道

实施线性回归预测动画电影表现的技术演示。

towardsdatascience.com](/predicting-animated-film-performance-5d25748b7481)

3.分类

[## 国会选举中的选区翻转预测

预测国会选区党翻转

towardsdatascience.com](/district-flip-forecasts-in-congressional-elections-47324c71e7ab)

4.自然语言处理

[## 为家长构建基于内容的儿童图书推荐系统

睡前故事崩溃的解决方案

towardsdatascience.com](/building-a-content-based-childrens-book-recommender-for-parents-680e20013e90)

5.激情工程

[## 用机器学习探测洛杉矶的后院房屋

在 METIS 数据科学进行的项目 5/5 沉浸式解决我自己制造的一个商业问题

towardsdatascience.com](/prospecting-las-backyard-houses-with-machine-learning-8fdc191e1cf)

在训练营表现出色

几件事让我在训练营表现出色:

  1. 准备

我参加的关于编程和机器学习的免费在线课程,以及我在这一学科上所做的研究,都给了我帮助。课堂上讨论的大部分术语和概念,我都不是第一次听到了。我认为这种准备让我能够从容应对每一周,每周最多花 50 个小时在项目和讲座上。我知道其他人工作得更多,但我知道自己的极限,我对质量比对数量更感兴趣。

2。提问

我特别注意深入思考我对材料的任何疑问并提出来。

3。通信

定期与讲师和我的同事交流进展和挑战。我经常从我的同伴那里得到帮助,或者至少是一个共鸣板,这让我比独自思考时进步得更快。我也喜欢视觉和语言交流,这是作为一名数据科学家应该具备的重要技能。

4。承诺、专注和时间限制

我是一个职业生涯中期的过渡者,我在生活中比大多数同龄人走得更远,所以我需要做出承诺,更加专注,我做到了。我的导师帮助我制定了一些策略,比如对我的工作流程的不同部分进行时间限制和优先级排序,创建一个 MVP,然后在此基础上进行构建。

5。练习

一开始,我在上课前有规律地骑自行车(太平洋标准时间早上 7 点开始!),这给了我很多精力和注意力。随着课程的进行,我没有时间那样做,但我仍然在一周内得到了几次乘坐。

训练营结束后

训练营结束还不到一个月,所以我以后肯定会有更多的话要说。然而,我确实觉得我的生活中有一个很大的空白,没有那样的日常结构,没有每天掌握一门全新的技术!

求职

我课程的最后几周是在新冠肺炎封锁期间,所以行业(除了互联网媒体公司)正在这个不确定的时期喘口气。这不是找工作的理想时机,但我的同学中有些人已经找到了数据科学/工程职位。找工作比我想象的要困难得多,尤其是因为我的大多数关系都在一个刚刚开始使用人工智能的领域。我希望在训练营之前或期间做的一件事是,开始培养与当地数据科学行业的联系——参加聚会和黑客马拉松——特别是在避难所到位协议之前。然而,好处是网上有太多的聚会。对我来说,我有兴趣将人工智能引入 AEC 行业,并计划利用这个不确定的时期建立该领域的技术技能,并与洛杉矶当地志同道合的人建立联系。

外卖

我觉得在 METIS 的经历让我充满力量,我不怕接受新技术或职业抱负。这是一次美妙的经历,不同于我经历过的任何其他教育经历(我也有过一些经历——文学学士、硕士、博士)。我认为我的团队中的每个人在离开训练营时都更好地了解了他们对什么样的数据科学感兴趣,他们的优势在哪里,以及如何利用这些优势。我会把这种经历推荐给任何对职业、时间和金钱有独特兴趣的人。

AWS 云安全的 21 项最佳实践

原文:https://towardsdatascience.com/21-best-practices-for-aws-cloud-security-cfdfb217330?source=collection_archive---------27-----------------------

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

KOBU 机构Unsplash 上拍摄的照片

亚马逊网络服务或 AWS 云安全是当今网络安全环境中的一个至关重要的主题。越来越多的企业采用云服务并转向 AWS。鉴于目前的形势,毫无疑问,亚马逊网络服务(AWS)正在向 AWS 用户提供最好的安全功能,以完全保护他们的基础设施。

但是安全是 AWS 和用户的共同责任。您可能已经实现了基本的 AWS 安全实践。然而,由于您的 AWS 云基础设施中会定期启动和修改大量资源,因此您可能会错过一些 AWS 云安全最佳实践。

什么是 AWS?

亚马逊网络服务(AWS)是一个被广泛采用的全面而安全的云平台,提供全功能服务,如计算能力、内容交付、数据库存储和其他功能,以帮助全球企业。AWS 为软件开发人员和企业提供了许多解决方案和工具,如云视频编辑工具等,以帮助他们扩展工作和发展。

AWS 分为不同的服务,每个服务都可以根据用户的需求进行配置。它允许用户通过在云中运行 web 和应用服务器来托管动态网站;使用 Oracle、MySQL 或 SQL Server 等托管数据库存储信息。并将文件安全地存储在云上,以便他们可以从任何地方访问它们。

除了 AWS 提供的大量好处,还有维护安全性的责任,以确保您的数据在云中是安全的。

让我们进一步了解 AWS 云安全最佳实践,以及如何实施这些实践来确保增强的安全性。

AWS 云安全的最佳实践

1.将您的策略放在第一位,并确定它是否支持各种工具和控件。

围绕着是应该先把工具和控制放在适当的位置,还是先建立安全策略,有很多争论。虽然这看起来像是一个潜在的讨论,但答案要复杂得多。通常,建议首先建立安全策略,以便在访问工具或控件时,可以评估它是否支持您的策略以及支持程度如何。

此外,它允许您将安全性融入到所有组织功能中,包括那些依赖 AWS 的功能。首先实施安全策略对持续部署也有很大帮助。

例如,如果您的公司使用 Ansible、Chef 等配置管理工具来自动化软件补丁和更新,那么拥有一个强大的安全策略将有助于您从第一天起就对所有工具实施安全监控。

2.实施清晰、一致的云安全控制和程序。

最近的大多数 S3 攻击都与包含敏感信息并被设置为“公开”的 S3 桶漏洞有关但是,S3 存储桶默认设置为“私有”,这意味着只有特定的特权用户才能访问这些存储桶。

为了确保 S3 存储桶或云中数据的安全,创建一套清晰、一致的安全控制和程序。这些应该定义可以存储在云中的数据类型,建立一个层次结构来对敏感数据进行分类,并确定谁应该能够访问它们。

3.对所有层应用安全性。

确保将安全性应用于所有层。基础架构中只有一个防火墙是不够的。相反,在您的所有虚拟网络上安装虚拟防火墙来控制和监控网络流量,以保护您的基础架构及其运行的操作系统。你可以很容易地从 AWS 市场安装这些防火墙。

4.利用本机云安全资源。

通过在你的应用中部署像 Amazon CloudFront 这样的工具,你可以保护你在世界任何地方托管的网络应用。有一系列原生的 AWS 安全工具,如 AWS Shield、Guard Duty 和 Cloud Watch,可以帮助您保护您的云环境。

此外,标准合规框架,如亚马逊机器映像(AMIs)和 ISO/IEC 27000 系列,预先配置了各种内置的合规元素,可以为您提供重要的前端工作。

5.发展安全文化。

维护安全应该是一项自上而下的工作,组织的每个成员都有责任。尤其是在今天,T2 缺乏网络安全专业人员,很难找到精通最新技术和工具的人。

无论您是否有专门的安全团队或根本没有 infosec 员工,都要确保对所有员工进行安全重要性以及他们如何为加强组织的整体安全做出贡献的培训。

6.监控用户对数据库的访问。

监视用户对数据库的访问并确定他们的目的是很重要的。例如,规划所有管理任务,以确保在迁移到云中后实施细粒度或最低权限的访问控制。

此外,如果您的应用程序使用外部数据源,请考虑使用数据完整性验证和动态数据加密等控件来维护数据完整性和机密性。

7.配置密码策略。

密码破解、暴力攻击和凭据填充是网络罪犯用来针对组织及其用户的一些最常见的安全攻击。拥有一个强有力的密码策略对您组织的安全性至关重要,因为它可以显著降低安全漏洞的几率。

考虑创建一个密码策略,描述密码创建、修改和删除的一组条件。例如,实施多因素身份认证、多次登录尝试失败后自动锁定,或者在特定时间段(例如 60 天)后更新密码策略。

8.使用密码生成器工具创建复杂、安全的密码。

一旦有了强有力的密码策略,就可以使用密码生成器来创建不太可能被攻击者破解的复杂安全的密码。

AWS 允许您在 IAM 密码策略部分实施复杂密码策略。与您的出生日期或姓名相比,混合使用大小写字母、数字和特殊字符将有助于您创建相对更安全的密码。

9.加密敏感信息。

加密您的敏感信息对保护您的数据大有帮助。在 AWS 中启用加密是非常容易和简单的,特别是如果您选择了他们的本地加密,它为 API 和 AWS 服务提供了 HTTPS 和端到端 SSL/TLS。

如何加密敏感数据?

您还可以使用可伸缩密钥管理在一个位置创建、定义、轮换和审核您的加密密钥。对于客户端加密,使用带有 EBS、RDS 和 S3 的 AWS 加密或带有文件和 blobs 的 Azure Secure Server Encryption(SSW)。确保通过 SSL 存储在 S3 上的数据具有加密的端点,以保护传输中的数据。

10.不要使用过期的证书。

请随时更新您的 SSL/TLS 证书,因为旧版本可能与 AWS 服务不兼容,这可能会导致自定义应用程序或 ELB 出错,从而影响您公司的整体安全性和工作效率。

11.定期备份您的数据。

每个组织都必须创建其数据的定期备份。在 AWS 中,您的备份策略取决于您现有的 IT 设置、数据的性质以及行业要求。

如何在 AWS 中备份数据?

AWS 提供灵活的备份和恢复解决方案,保护您的数据免受网络盗窃和安全漏洞的侵害。您可以使用 AWS Backup,它提供了一个集中的控制台来管理和自动化跨 AWS 服务的备份。

它集成了 Amazon RDS、Amazon EFS、Amazon DynamoDB、AWS Storage Gateway 和 Amazon EBS,能够定期备份关键数据存储,如数据库、文件系统和存储卷。

12.使用 EBS 加密。

Amazon EBS encryption 提供了一个简单的加密解决方案,不需要您为 EBS 资源构建、维护和保护自己的密钥管理基础设施。

加密发生在托管 EC2 实例的服务器上,并确保传输中的数据和静态数据及其附加 EBS 存储的安全性。使用 Amazon EBS encryption,您可以加密 EC2 实例的数据卷和引导。

13.锁定您的根帐户凭据。

Root 帐户凭证使用户能够完全访问系统中的资源,但是,这使得系统容易受到安全漏洞的攻击。

实施一个身份和访问管理(IAM)管理员用户来定义和管理各个网络用户的访问权限和角色,而不是使用 root 帐户访问密钥。此外,使用多因素身份认证(MFA)来增强安全性,因为它增加了一层额外的保护。

14.让您的 AWS 政策和实践保持最新。

保护 AWS 云基础设施的一个重要方法是创建每个人都可以遵循的一致的安全策略。通过实施清晰简明的安全实践,您可以保护您的 AWS 云环境免受分布式拒绝服务(DDoS)攻击、未经授权的使用/访问、恶意软件、黑客和其他风险。

确保您记录了所有 AWS 策略和流程,并将它们存储在一个公共位置,如内部网络上的共享驱动器,每个人都可以访问它们。使用最新的云安全方法定期更新本文档,以确保您的所有员工、第三方供应商、贸易合作伙伴和利益相关方保持一致。

15.使用漏洞报告。

随着网络安全攻击数量的增加,现在对企业来说,评估其基础设施并确定可能使其数据面临风险的漏洞至关重要。在 AWS 中,建议用户避免输入密码、点击链接或通过看起来可疑的电子邮件下载附件。

如果用户检测到可疑活动或电子邮件,该怎么办?

用户可以直接向亚马逊的系统举报可疑邮件。这不仅会提醒 AWS 您组织的潜在云安全漏洞,还会建立安全文化并在用户中产生意识。

您还可以向联邦调查局地方办公室、互联网犯罪投诉中心或美国特勤局等机构报告潜在的黑客和网络钓鱼欺诈。

16.确保您的所有服务器都打了补丁。

请确保您修补了所有 AWS 云服务器,即使它们不可公开访问。有许多工具可以帮助您自动化和管理修补 AWS 云服务器的过程。

我们利用亚马逊的维护窗口,定期循环我们的实例,以确保我们有最新的更新。然而,确保语言运行时也是最新的也很重要——在我们的情况下,这意味着最新的补丁节点和干净的 npm 版本,”蜘蛛纸牌挑战的联合创始人 Darshan Somashekar 说。

例如,AWS Systems Manager 修补程序管理器使您能够自动化和管理与 AWS 安全和其他类型的更新相关的实例。使用 Patch Manager,您可以将补丁应用到一系列 Amazon EC2 实例、虚拟机(VM)以及您的本地服务器。

17.使用密钥策略来控制对 cmk 的访问。

AWS KMS 中的每个 CMK 都有一个相关联的密钥策略,用于确定密钥权限的使用和管理。默认密钥策略允许用户定义主体,并允许帐户中的 root 用户定义 IAM 策略。

为了确保最佳的 AWS 安全实践,请根据您公司的要求修改默认密钥策略。此外,实施最低权限访问,将用户的访问权限限制在他们执行合法业务功能绝对需要访问的资源。

18.实施强大的网络安全协议和策略。

通常,人们有一个主要的观念,因为 AWS 提供了企业级的基础设施,所以安全性得到了保障。虽然 AWS 网络提供了重要的安全控制,并使组织能够配置防火墙端口和访问控制等设置,但仅此还不足以完全保护您的网络。

高级恶意软件可以通过 SQL 注入攻击、网络流量、僵尸网络和跨站脚本攻击您的 AWS。此外,如果 AWS 的一个虚拟服务器受损,可能会影响在相同环境中运行的其他易受攻击的服务器。

你如何保护你的 AWS 免受网络攻击?

为了确保更好的安全性,集成一个“共享责任模型”,该模型定义了除亚马逊安全之外的您的责任。例如,实现数据完整性认证、服务器端和客户端加密、网络流量验证、认证和加密。

在流程的早期引入您的安全团队,以确保从第一天起就注意安全。不要认为 AWS 云安全会干扰您组织的敏捷性。

19.选择区域来管理网络延迟和法规遵从性。

AWS 提供每个地区所在的州和国家的信息。确保根据地区管理网络延迟和法规遵从性。

20.监控用户对 AWS 管理控制台的访问。

AWS 管理控制台就像站点上的高级仪表板,从这里您可以完全控制和管理所有 AWS 资源和实例。AWS 管理控制台提供的一些关键功能是创建新的虚拟机、删除任何当前的虚拟机或修改其他 AWS 服务。

进入这个控制台就像拥有一个王国的钥匙。确保监控用户对 AWS 管理控制台的访问,并检测未经授权的访问。

21.对平台组件使用 ami。

使用 Amazon 机器映像(AMIs)来启动一个实例,而不是从头开始配置 Linux 服务器或 WordPress 机器。单个 AMI 可以帮助您使用相同的配置启动多个实例。

您还可以使用不同的 ami 来启动具有不同配置的实例。使用 AMI 将有助于您节省设置 AWS 安全配置工作所需的时间和精力,并降低风险。

最后的想法

当您转向 AWS 云基础架构或扩展您现有的 AWS 时,您将需要更深入地了解 AWS 基础架构的安全性。用户还需要了解最新的变化,以采用更好、更全面的安全措施。这些只是一些 AWS 安全最佳实践,您可以实施它们来维护 AWS 生态系统的强大安全性。

关于作者:

Steve Kosten 是 Cypress Data Defense 的首席安全顾问,也是“Java/JEE 中的 SANS DEV541 安全编码:开发可防御应用程序”课程的讲师。

来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指导方针 发表文章,但我们并不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

21 个数字函数将加速您的数据分析过程

原文:https://towardsdatascience.com/21-numpy-functions-that-will-boost-your-data-analysis-process-1671fb35215?source=collection_archive---------23-----------------------

举例说明

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

SpaceX 在 Unsplash 上拍摄的

注:除非另有说明,所有图片均由作者创作。

数据科学的一切都始于数据,数据有多种格式。数字、图像、文本、x 光、声音和视频记录只是数据源的一些例子。无论数据以何种格式传入,都需要转换成数字数组进行分析。

处理数字数组的最重要的工具之一是 NumPy,它是 Python 的一个科学计算包。

在本帖中,我们将介绍 20 个函数和方法,它们将有助于您的数据分析过程。

1。数组

它用于从头开始创建一个数组或将一个列表或熊猫系列对象转换为一个数组。

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

2。阿兰格

它在指定的增量范围内创建一个数组。

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

前两个参数是下限和上限(上限是唯一的)。第三个参数是步长。

3。林空间

它在指定范围内创建一个具有等距元素的数组。

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

前两个参数决定了下限和上限。与 arange 函数不同,upper bound 是包含性的。第三个参数指定在该范围内需要多少个等距元素。

4。独特的

它返回数组中唯一元素的数量。我们还可以使用 return_counts 参数查看每个元素在数组中出现的次数。

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

5。Argmax 和 argmin

它们返回沿轴的最大值和最小值的索引。

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

axis=1 的 Argmax 将返回每行中最大值的索引。axis=0 的 Argmin 将返回每列中最小值的索引。

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

6。Random.random

它创建一个在 0 和 1 之间随机浮动的数组。同样的操作也可以用 random_sample 函数来完成。

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

7。Random.randint

它创建任意形状的整数数组。

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

前两个参数决定了界限。如果只通过一个界限,则认为是上限,下限取为 0。

8。Random.randn

它返回标准正态分布的一个或多个样本(即零均值和单位方差)。

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

让我们也绘制这些值来观察标准的正态分布。

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

9。Random.shuffle

它通过打乱数组的元素来修改数组的顺序。

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

10。重塑

顾名思义,它改变数组的形状。必须保持整体大小。例如,形状为 3x4 的数组可以转换为形状为 2x6 的数组(大小为 12)。

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

您还可以在一个维度中指定大小,并为另一个维度传递-1。Numpy 将推断形状。

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

整形还用于增加数组的维度,这是处理机器学习或深度学习模型时的常见做法。

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

11。Expand_dims

它扩展了数组的维度。

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

轴参数允许选择通过哪个轴进行扩展。axis=1 的 Expand_dims 等效于 shape(-1,1)。

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

12。Count _ 非零

它返回数组中非零元素的计数,这在处理高度稀疏的数组时会很方便。

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

13。Argwhere

它返回数组中非零元素的索引。

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

例如,第一行中的第二列为零,因此 argwhere 函数不会返回它的索引([0,1])。

14。零、一、满

这实际上是三个独立的功能,但它们的功能非常相似。它们用 0、1 或特定值创建数组。

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

默认数据类型是 float,但可以使用 type 参数将其更改为整数。

15。眼睛和身份

眼睛和身份都创建具有指定维度的身份矩阵。**单位矩阵,**表示为 **I,**是对角线上有 1 而其他位置都有 0 的方阵。

单位矩阵的特殊之处在于它在相乘时不会改变矩阵。在这个意义上,它类似于实数中的数字 1。

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

矩阵的是与原矩阵相乘时给出单位矩阵的矩阵。不是每个矩阵都有逆矩阵。如果矩阵 A 有逆,则称之为可逆或非奇异。

16。拉威尔

Ravel 返回一个扁平数组。如果你熟悉卷积神经网络(CNN),汇集的特征映射在馈送到完全连接的层之前被展平。

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

第二行连接在第一行的末尾。Ravel 函数还允许使用 order 参数进行列级连接。

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

17。Hsplit 和 Vsplit

它们垂直(vsplit)或水平(hsplit)拆分数组。

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

a 是一个形状为 4x4 的数组。水平拆分将产生两个 4x2 的数组。

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

如果垂直拆分,则生成的数组将具有 2x4 的形状。

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

18。Hstack 和 Vstack

它们水平地(按列)和垂直地(一行一行地)堆叠数组

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

19。转置

它转置一个数组。在二维数组(即矩阵)的情况下,转置意味着交换行和列。

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

20。Abs 和绝对

abs 和 absolute 都返回数组中元素的绝对值。

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

21。一圈又一圈

它们都将浮点数舍入到指定的小数点位数。

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

我们只介绍了使用 NumPy 可以完成的部分操作。但是,这些是您在典型的数据分析和操作过程中可能会用到的操作。

NumPy 被证明是一个非常灵活和高效的科学计算库。它是许多 Python 库(如 Pandas)的基础。

感谢您的阅读。如果您有任何反馈,请告诉我。

为数据科学面试做准备的 22 个统计问题

原文:https://towardsdatascience.com/22-statistics-questions-to-prepare-for-data-science-interviews-d5651a8b3c56?source=collection_archive---------5-----------------------

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

Clem Onojeghuo 在 Unsplash 拍摄的照片

自信的钉钉数据科学访谈,第 2 部分

在我之前的文章中,我讨论了为面试做准备的机器学习问题:

[## 准备面试的 20 个机器学习相关问题

自信地完成面试

towardsdatascience.com](/20-machine-learning-related-questions-to-prepare-for-interviews-93bcba72f911)

在接下来的三篇文章中,我将提出一些概率练习题,并为数据科学面试准备案例研究和行为问题。请点击此处查看:

[## 数据科学面试的 12 个概率练习题

自信地完成数据科学面试,第 3 部分

towardsdatascience.com](/12-probability-practice-questions-for-data-science-interviews-2ec5230304d9) [## 在数据科学面试中组织您对案例研究问题的回答

自信地完成数据科学面试,第 4 部分

towardsdatascience.com](/structure-your-answers-for-case-study-questions-during-data-science-interviews-a14a02d21e6c) [## 为数据科学面试准备行为问题

自信地完成数据科学面试,第 5 部分

towardsdatascience.com](/prepare-behavioral-questions-for-data-science-interviews-96e97f13be15)

在这篇文章中,我将提出你在面试中可能会遇到的 22 个基本统计学问题。

1、什么是假设检验?

假设检验是一种统计推断的方法。基于从调查或实验中收集的数据,假设零假设为真,计算从数据中观察统计数据的概率(p 值)。然后,您决定是否拒绝比较 p 值和显著性水平的零假设。它被广泛用于测试一种效应的存在。

2、什么是 p 值?

P 值是在零假设为真的情况下观察到数据的概率。较小的 p 值意味着拒绝零假设的可能性较大。

3、什么是置信度?

假设检验中的置信水平是当零假设为真时,不拒绝零假设的概率;

P(不排斥 H0|H0 为真)= 1 - P(排斥 H0|H0 为真)

默认置信度设置为 95%。

4、什么是置信区间?

与点估计相反,置信区间是通过统计推断获得的参数的区间估计。其计算方法如下:

[点估计- cvsd,点估计+ cvsd]

其中,cv 是基于样本分布的临界值,sd 是样本的标准偏差。

在置信区间中解释置信是至关重要的。例如,如果我说等车时间的 95%置信区间是[5 分钟,10 分钟],我实际上在说什么?请点击这里查看我的文章,了解更多详情:

[## 如何解释置信区间中的置信

你有多自信?

medium.com](https://medium.com/an-idea/how-to-interpret-the-confidence-in-confidence-interval-3f3b37794089)

5、什么是统计力?

统计功效测量当零假设为假时拒绝零假设的概率:

P(拒绝 H0|H0 是假的)= 1- P(不拒绝 H0|H0 是假的)

默认统计功效设置为 80%。

6、什么是 I 型错误,什么是 II 型错误?

I 型错误是 p(拒绝 H0|H0 为真),是假阳性(感谢 Koushal Sharma 捕捉到这里的错别字),是⍺,是负一的置信水平;

第二类错误是 P(不排斥 H0|H0 是假),是假阴性,是β,是 1 减统计功效。

在 I 型误差和 II 型误差之间有一个权衡,这意味着如果其他一切保持不变,为了减少 I 型误差,我们需要增加 II 型误差。

如果您对将 I 型错误和 II 型错误与机器学习模型中的分类度量联系起来感兴趣,请阅读我的文章了解更多详细信息:

[## 模型评估分类度量的最终指南

将机器学习模型与假设检验相结合。别扯头发了,读读这篇文章。

towardsdatascience.com](/the-ultimate-guide-of-classification-metrics-for-model-evaluation-83e4cdf294d9)

7、什么是中心极限定理(CLM)?

中心极限定理 指出,无论总体的原始分布是什么,当从总体中抽取随机样本时,随机样本的均值或和的分布接近正态分布,均值等于总体均值,随着随机样本的变大:

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

图片来自维基百科

8、什么是大数定律?

大数定律 表示,随着试验次数变得足够多,试验的平均结果会变得更接近期望值。例如,当你掷一枚公平的硬币 1000 次时,你有一半的机会看到正面,而不是只掷 100 次。

9、什么是标准误差?平均值的标准误差是多少?

统计的标准误差是其抽样分布的标准偏差或该标准偏差的估计值。

使用 CLM,我们可以通过使用总体标准差除以样本大小 n 的平方根来估计均值的标准差。如果总体标准差未知,我们可以使用样本标准差作为估计值。

10、如何选择一个实验的样本量?

样本大小与样本的标准误差、期望的置信水平、功效和效果大小密切相关。样本大小随着样本的标准误差、置信水平和功效的增加而增加,或者随着样本的效应大小的减小而增加。请看这篇文章背后的直觉:

[## 样本大小与标准误差、功效、置信水平和效应大小有什么关系?

使用图表来展示相关性

towardsdatascience.com](/how-is-sample-size-related-to-standard-error-power-confidence-level-and-effect-size-c8ee8d904d9c)

11、什么是自举?

自举 是重采样技术之一。给定一个样本,你重复从它的 中随机抽取其他样本,并替换 。当样本量很小时,以及当您需要估计经验分布时,Bootstrapping 非常有用。我们可以使用 bootstrapping 来估计中位数的标准误差。请阅读下面的文章了解更多详情:

[## 如何估计中位数的标准误差:自助策略

在这篇文章中,我将讨论我们可以用来估计中位数的标准误差的方法。我会先…

towardsdatascience.com](/how-to-estimate-the-standard-error-of-the-median-the-bootstrap-strategy-ed09cccb838a)

12、什么是样本偏倚?

样本偏差是指用于统计推断的样本不能很好地代表整个总体。这是因为几个原因:

1、抽样偏倚:非随机抽样;

2、选择偏倚:样本不代表全部人群。例如,当你想估算所有成年人的平均收入时,在大学里通过一项调查;

3、回答偏差:要么是因为回答太少,要么是因为只有某些类型的受试者会回答调查。例如,针对教授教学技能的调查可能只有喜欢或真正讨厌教授的学生做出回应;

4、存活偏差:由于忽略了没有通过筛选过程的受试者而产生的偏差。

13、如何检测离群值?

异常值是与其他观察值显著不同的观察值。检测异常值与定义差异是一样的。最直接的方法是绘制变量,并找到远离其他数据点的数据点。为了量化差异,我们可以使用四分位数和四分位数间距 (IQR)。IQR 是第三个四分位数减去第一个四分位数(Q3-Q1)。异常值是任何小于 Q1-1.5 * IQR 或大于 Q3+1.5*IQR 的数据点。

如果数据遵循正态分布,异常值是 Z 值大于 3 或小于-3 的点。

14、什么是贝叶斯推断?

贝叶斯推断是一种统计推断方法,其中 贝叶斯定理 用于随着更多证据或信息变得可用而更新假设的概率。贝叶斯定理陈述如下:

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

其中 P(A)是先验信念,P(B)是证据,P(B|A)是 A 发生时事件 B 发生的条件概率。

关于贝叶斯统计的更多细节,请参考我的一篇文章:

[## 贝叶斯统计终极指南

towardsdatascience.com](/the-ultimate-guide-to-bayesian-statistics-ed2940aa2bd2)

15、什么是最大似然估计(MLE)?

最大似然估计是利用贝叶斯定理通过最大化似然函数来估计参数。根据贝叶斯定理:

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

其中 P(θ)是参数的先验分布;P(y|θ)是描述当我们有参数θ时观察到数据点 y 的可能性的似然函数;P(y)是证据,通常用来归一化概率。最大化 P(θ|y)是寻找最优θ的目标,其中我们最大化给定所有数据点 y 的θ的条件概率。在实践中,一旦我们知道分布,我们就可以很容易地计算 P(y|θ)。因此,我们通过最大化关于θ的似然函数 P(y|θ)来解决优化问题。

16、利用贝叶斯定理求解 下列问题:

1、50%接受第一次面试的人会接受第二次面试

你的朋友中有 95%的人得到了第二次面试机会,他们觉得第一次面试很成功

你的朋友中有 75%没有得到第二次面试机会,他们觉得第一次面试很好

如果你觉得你第一次面试很好,你获得第二次面试的概率有多大?

解决这类问题的关键是仔细定义事件。假设你的朋友很好地代表了整个人口:

  • 我们把对第一次面试感觉良好定义为事件 A,把收到复试事件 B 定义为;
  • 根据 1,P(B)=0.5,这样 P(不是 B)就是 1 减 P(B),也是 0.5;
  • 根据 2,P(A | B)= 0.95;
  • 根据 3,P(A |不是 B) = 0.75。
  • 给定 P(B),P(A|B),P(A |非 B),P(B|A)是什么?

根据贝叶斯定理:

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

因此:

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

17、相关性和因果性的区别是什么?

相关性是两个变量之间的关系,它可以是正的、负的、零的或很小的相关性,取决于以下等式的符号和大小:

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

X 和 Y 之间的相关性

其中:

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

X 和 Y 的协方差

Cov(X,Y)是两个变量的协方差,Cor(X,Y)通过 X 和 Y (Sx,Sy)的标准差归一化,使得相关性可以在-1 和 1 之间。当相关性等于-1 时,X,Y 具有完美的负相关性,当相关性等于 1 时,它们具有完美的正相关性。当相关性的绝对值接近零时,X,Y 相互之间的相关性很小。

因果关系更难捕捉,它是 X 和 Y 之间的关系,X 导致 Y 发生,反之亦然。例如,在一项研究中,你可能观察到人们每天吃更多的蔬菜更健康,吃蔬菜和健康水平之间显然有正相关。然而,如果仅仅基于这些信息,你不能声称吃更多的蔬菜会使你更健康,这是在陈述因果关系。您可能会观察到这种关系,因为您的研究中的受试者有其他健康的生活方式(省略变量),可以提高他们的健康水平,吃蔬菜只是他们的健康习惯之一。寻找因果关系需要额外的信息和仔细的建模。更多细节,我有一篇讨论因果推理的文章:

[## 因果推理:什么、为什么和如何

验证决策过程

towardsdatascience.com](/causal-inference-what-why-and-how-d7336b0081ec)

18、什么是辛普森悖论?

辛普森悖论指的是在多个群体中观察到的趋势或关系在群体组合时消失或逆转的情况。为什么会有辛普森悖论的快速答案是混杂变量的存在。我有一篇文章用一个例子解释了辛普森悖论:

[## 所谓的“辛普森悖论”

我们因为失去了它而变得更好

medium.com](https://medium.com/the-innovation/the-so-called-simpsons-paradox-6d0efdca6fdc)

19、什么是混杂变量?

混杂变量是与因变量和自变量都相关的变量。例如,在检查吸烟和死亡率之间的因果关系时,年龄是一个混杂变量,因为随着年龄的增长,死亡率增加,吸烟率下降。不能控制年龄会造成统计推断中的辛普森悖论。

20、什么是 A/B 测试,什么时候可以用,什么时候不可以用?

A/B 测试是对 A 和 B 两个变量进行随机实验。通过统计假设测试或“双样本”假设测试,A/B 测试是一种比较单个变量两个版本的方法,通常通过测试受试者对 A 变量和 B 变量的反应,并确定两个变量中哪个更有效。它通常用于改善和优化用户体验和营销策略。

不是每个实验都可以通过 A/B 测试进行:

  • A/B 测试不利于测试长期效果
  • A/B 测试只能比较两个版本,但不能告诉你缺什么
  • 当市场存在网络效应时,不能使用 A/B 测试。例如,你不能在同一市场上提高某些消费者的价格,同时降低其他消费者的价格,因为这将扭曲市场需求。

21、什么是 PMF/PDF?

概率质量函数 ( PMF )是给出离散随机变量恰好等于某个值的概率的函数。PMF 对连续随机变量不起作用,因为对于连续随机变量 P(X=x)=0 对于所有的 x∈R .相反,我们通常可以定义概率密度函数(PDF) 。PDF 是概率的密度而不是概率质量;

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

x0 处的 PDF

22、总结重要分布。

我有一篇文章总结了最重要的分布,包括它们的假设、PDF/PMF、模拟等。请点击此处查看:

[## 数据科学中必须知道的七种统计分布及其模拟

假设、关系、模拟等等

towardsdatascience.com](/seven-must-know-statistical-distributions-and-their-simulations-for-data-science-681c5ac41e32)

这是所有 22 个基本的统计问题。帮助这篇文章帮助你准备你的面试或者刷新你在统计课上的记忆。感谢您的阅读!

这是我所有博客帖子的列表。如果你感兴趣的话,可以去看看!

[## 我的博客文章库

我快乐的地方

zzhu17.medium.com](https://zzhu17.medium.com/my-blog-posts-gallery-ac6e01fe5cc3) [## 阅读朱(以及媒体上成千上万的其他作家)的每一个故事

作为一个媒体会员,你的会员费的一部分会给你阅读的作家,你可以完全接触到每一个故事…

zzhu17.medium.com](https://zzhu17.medium.com/membership)

24x5 人工智能股票交易代理预测股票价格|实时交易

原文:https://towardsdatascience.com/24x5-stock-trading-agent-to-predict-stock-prices-with-deep-learning-with-deployment-c15570720ae9?source=collection_archive---------4-----------------------

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

乔丹·怀特菲尔德Unsplash 上的照片

如果你最近关注股票市场,你会注意到新冠肺炎带来的剧烈波动。它一天涨一天跌,这是人工智能很容易预测的。如果有一个拥有人工智能能力的股票交易代理人来买卖股票,而不需要每小时监控,那岂不是很棒?

所以我决定创造一个机器人来交易。你会看到许多从 CSV 读取并创建神经网络的模型,LSTM,或深度强化模型(DRL)。然而,这些模型最终会出现在沙盒环境中,并且在真实环境中使用起来往往很棘手。所以我创造了人工智能管道,实时交易。毕竟,谁不想在股市里赚钱呢?所以让我们开始吧。下面是我们将遵循的实施流程。

  1. 羊驼经纪人账户
  2. 用于 API 交易的羊驼毛 python 包
  3. 收集数据、EDA、特征工程
  4. 人工智能模型与训练
  5. AWS 云托管代码并获得预测
  6. 创建一个 lambda 函数和 API
  7. 自动交易股票

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

工作流程

羊驼经纪人账户:

目前,大多数经纪公司提供零交易费。然而,并不是所有的经纪公司都有 API 选项来交易。羊驼提供免费交易用 python API 进行交易。一旦您创建了一个帐户,您将有纸交易和现场交易的选择。我们可以在纸上交易中测试策略,并在现场交易中实施。这只是实时交易的一个关键变化。

用于 API 交易的羊驼毛 python 包:

如果能有本地环境,可以安装 pip 包。安装后,您可以选择纸上交易或现场交易。

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

基于您的选择,您可以获得 API 和密钥。

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

现在,这些键将在我们的代码中使用。

import alpaca_trade_api as tradeapiapi = tradeapi.REST('xxxxxxxx', 'xxxxxxxxxx',base_url='[https://paper-api.alpaca.markets'](https://paper-api.alpaca.markets'), api_version='v2',)

收集数据并转换

获取数据

使用羊驼的一个好处是你可以从多边形 API 中获得历史数据。时间范围可以是分钟、小时、天等。创建数据框后,图表应如下所示。

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

特征工程

像任何数据科学项目一样,我们需要创建与数据集相关的要素。实现的某些部分是从这篇文章中引用的。我从上面的数据集中建立了大约 430 多个技术指标。特征包括动量,趋势,波动,RSI 等。

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

已经为每一天创建了特征。它可以很容易地创建为每小时或任何其他时间段。对于我们将要创建的一些模型,如 DRL LSTM,我们可能需要使用原始数据集。

创建标签和特征是我们必须创建逻辑来训练模型的地方。目前,我使用了本文中的逻辑。

然而,创建逻辑可以根据您的需要进行更改。执行无监督学习时,不需要创建标签。

最后,需要对数据进行缩放。神经网络在缩放数据中工作得更好。第一个函数将使用训练数据拟合 scaler 对象,下一个函数用于缩放任何数据集。

# scale train and test data to [-1, 1]
def transform_scale(train):
    # fit scaler

    print(len(train.columns))
    scaler = MinMaxScaler(feature_range=(-1, 1))
    scaler = scaler.fit(train)
    # transform train
    return scaler# scale train and test data to [-1, 1]
def scale(dataset, scaler):
    # transform train
    dataset = scaler.transform(dataset)
    print(dataset.shape)
    return dataset

一旦我们创建了模型,我们必须准备好数据作为数据加载器。下面的函数将执行它。

def _get_train_data_loader(batch_size, train_data):
    print("Get train data loader.")

    train_X =    torch.from_numpy(train_data.drop(['labels'],axis=1).values).float()

    train_Y = torch.from_numpy(train_data['labels'].values).float()

    train_ds = torch.utils.data.TensorDataset(train_X,train_Y)return torch.utils.data.DataLoader(train_ds,shuffle=False, batch_size=batch_size)

人工智能模型

在本节中,我们将创建不同类型的模型。但是,这些模型对于时间序列数据集来说可能并不完美。我想展示如何使用具有完整管道的深度学习模型。

全连接深度 NN

这里我们将创建一个完全连接的深度神经网络。模型本身并不花哨,我也不指望它能表现得更好。此外,它也不是一个适合时间序列数据的模型。我使用这个模型只是为了使用我们所有的功能,并且为了简单起见。

然而,我们正从一个基本模型开始,以完善我们的管道。在下一节中,我将展示如何创建其他类型的模型。我们的 model.py 看起来像下面这个。

import torch.nn as nn
import torch.nn.functional as F# define the CNN architecture
class Net(nn.Module):
    def __init__(self, hidden_dim, dropout =0.3):

        super(Net, self).__init__()
        # Number of features
        self.fc1 = nn.Linear(427, hidden_dim)

        self.fc2 = nn.Linear(hidden_dim, hidden_dim*2)

        self.fc3 = nn.Linear(hidden_dim*2, hidden_dim)

        self.fc4 = nn.Linear(hidden_dim, 32)

        self.fc5 = nn.Linear(32, 3)

        self.dropout = nn.Dropout(dropout)

    def forward(self, x):

        out = self.dropout(F.relu(self.fc1(x)))

        out = self.dropout(F.relu(self.fc2(out)))

        out = self.dropout(F.relu(self.fc3(out)))

        out = self.dropout(F.relu(self.fc4(out)))

        out = self.fc5(out)

        return out

在创建了模型和所需的转换之后,我们将创建我们的训练循环。

我们将在 AWS Sagemaker 中训练我们的模型。这完全是一个可选步骤。模型可以在本地训练,模型输出文件可以用于预测。如果你在云端训练它,下面的代码可以用来训练。

您还需要一个具有 Sagemaker 设置的 AWS 帐户。如果你需要更多的信息或帮助,请查看我以前的文章,使用 AWS Sagemaker | PyTorch 设置部分训练 GAN 并生成人脸。

一旦您拥有了所有需要的访问权限,您就可以开始拟合模型了,如下所示。下面的命令将把所有必要的代码和数据打包,用所需的容器创建一个 EC2 服务器,并训练模型。

from sagemaker.pytorch import PyTorch#Check the status of dataloader
estimator = PyTorch(entry_point="train.py",
                    source_dir="train",
                    role=role,
                    framework_version='1.0.0',
                    train_instance_count=1,
                    train_instance_type='ml.p2.xlarge',
                    hyperparameters={
                        'epochs': 2,
                        'hidden_dim': 32,
                    },)

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

一旦您训练了模型,所有相应的文件将在您的 S3 桶。如果您在本地训练您的模型,确保您在相应的 S3 存储桶位置有文件。

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

AWS 云托管代码并获得预测

作为我们的下一个设置,我们将在 AWS Sagemaker 中部署模型。在 SageMaker 中部署 PyTorch 模型时,您需要提供 SageMaker 推理容器将使用的四个函数。

  • 这个函数和我们在训练脚本中使用的是同一个函数,它告诉 SageMaker 如何从 S3 桶中加载我们的模型。
  • input_fn:这个函数接收发送到模型端点的原始序列化输入,它的工作是反序列化输入,使输入可用于推理代码。在这里,我们将每天或每小时从羊驼 API 创建新数据。
  • output_fn:这个函数获取推理代码的输出,它的工作是序列化这个输出,并将其返回给模型端点的调用者。这就是我们交易的逻辑。
  • predict_fn:推理脚本的核心是进行实际预测的地方,也是您需要完成的功能。将使用基础数据进行预测。它有三种结果买入、卖出和持有。

下面是加载模型和准备输入数据的代码

以上代码中需要注意的几点:

  1. 模型和缩放对象需要在 S3 桶中。
  2. 我们已经收集了许多天或几个小时的数据。这是 LSTM 类型网络所必需的。
  3. 输入内容是股票代码。我们可以调整多个符号的代码。

在下面的代码部分,我们将创建输出并预测函数。

上述代码中需要注意的几点

  1. 我们有三个等级购买、出售或持有。预测需要是这三者之一。
  2. 我们需要关注预测和返回的内容。
  3. 只有在资金充足(或资金有限)且数量有限的情况下才交易。

部署类似于训练模型。

from sagemaker.predictor import RealTimePredictor
from sagemaker.pytorch import PyTorchModelclass StringPredictor(RealTimePredictor):
    def __init__(self, endpoint_name, sagemaker_session):
        super(StringPredictor, self).__init__(endpoint_name, sagemaker_session, content_type='text/plain')model = PyTorchModel(model_data=estimator.model_data,
                     role = role,
                     framework_version='1.0.0',
                     entry_point='predict.py',
                     source_dir='../serve',
                     predictor_cls=StringPredictor,)# Deploy the model in cloud serverpredictor = model.deploy(initial_instance_count=1, instance_type='ml.m5.large')

如果你想测试这个模型,你可以执行下面的代码。这表示工作流程正在运行,你可以输出你的预测,并在发行的股票行情自动收报机上交易股票。

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

预测端点名称

您也可以从截图中的上述代码中获得端点名称。

创建一个 Lambda 函数和 API

这里将通过创建 Lamda 函数和 API 来完成管道。

创建一个λ函数

在 AWS lambda 服务中创建 lambda 函数。记得从上面的截图中更新端点名称。

API 网关

从 AWS API 网关服务中,创建一个 Rest API。然后命名并创建 API。

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

从操作下拉列表中创建帖子并部署。一旦创建好了,API 就准备好了。如果需要,您可以在任何 UI 中使用它。

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

最后,我们有 Rest 端点,在这里我们可以创建 post 请求。可以用 Postman 或任何其他工具测试端点。如果不需要端点,可以通过跟随这个链接来调度 lambda 函数。

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

干杯!你可以在羊驼门户看到股票的买卖。预测是从我们的模型中预测出来的,实时数据被输入到模型中。

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

科林·沃茨Unsplash 上拍摄的照片

结论

我们已经训练了一个深度学习模型,并实时使用该模型的输出进行股票交易。我还是觉得有提升的空间。

  1. 我在这里使用了深度神经网络模型。你在这里不需要任何模型。您可以简单地使用您的逻辑并创建管道。
  2. 可以执行更好的特征工程和那些特征的选择。
  3. 不同的模型架构(如 LSTM 或 DRL)需要针对时间序列数据集进行测试。
  4. 需要对训练数据进行回溯测试。在本文中,我没有涉及回测。
  5. 该模型可以以频繁的间隔重新训练。AWS Sagemaker 提供了一个没有太多麻烦的选项。

如果对本文有足够的兴趣,我将写一篇后续文章,通过回溯测试实时添加对特定股票的情绪分析,并添加其他模型架构。

来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指南 发表文章,但我们并不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

放弃

这篇文章完全是信息性的。本笔记本中的任何内容都不构成任何特定安全性的建议。所有交易策略使用风险自担。

有问题吗?评论?请在评论区留下您的反馈。

查看其他文章

  1. 24x7 实时加密交易|购买 Doge 或任何使用情绪加密的产品
  2. 利用赚钱+ AI |甘形象生成

获取代码

请订阅我的 简讯 获取我的文章和其他更新的免费工作代码。

如果您喜欢,请:

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

利用网络数据提取发展业务的 25 招

原文:https://towardsdatascience.com/25-hacks-to-grow-your-business-with-web-data-extraction-4f1d36a43a11?source=collection_archive---------22-----------------------

我们都知道如今数据有多重要。这不是为什么的问题,而是我们如何最大化网络数据的价值以获得最大利益的问题。 Web 数据提取 是从任意网站获取数据,并将其转换为 CSV、Excel 等结构化格式的过程。通过自动化整个过程,你可以节省花在杂务上的宝贵时间,专注于真正重要的事情。

我概述了最流行的 25 种通过网络数据提取来发展业务的方法。我相信它会给你一个提升,激发一些想法。

营销

内容营销:

为你的下一篇博客文章构思出卓越的想法来超越你的竞争对手是很难的。不要浪费时间一页一页地浏览谷歌搜索结果。您可以将包括谷歌搜索结果在内的所有信息提取到一个电子表格中。接下来,大致了解一下哪个主题更有可能获得排名,以及它们的标题和描述是什么样子的。

竞争监控:

竞争监测通常需要同时从多个网站获取数据。为了跟上进度,您可能还需要定期提取信息。像 Octoparse 这样的网络抓取工具可以自动完成整个数据提取过程。

销售线索生成:

线索对任何企业的生存都非常重要。如果你准备扩大规模,需要更多的线索是岌岌可危的。不要再为无法转化的线索烧钱了。数据提取工具可以抓取网站上的数据。

搜索引擎优化监控:

通过提取关键词相关的结果和排名来监控 SEO 工作。网络数据提取使你能够理解为什么和如何你的竞争对手可以超越你的职位。

品牌监控:

维护你的网上形象可能很乏味,因为你必须整天盯着屏幕。把麻烦留给数据提取工具。它可以实时获取正面和负面的帖子和评论。此外,它还能帮助您及时发现诈骗短信

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

照片由唐恩应变Unsplash

电子商务和零售:

价格情报:

提高价格很难留住顾客,但降低边际成本、提高利润是必要的。你的产品最理想的价位是多少?这就是 web 数据提取的用武之地。您可以从不同的来源提取相同信息下的价格。接下来,关注别人部署的定价策略。他们有促销活动吗?他们降价了吗?

地图合规性:

当你在不同的商店和国家有多个分销渠道时,很难管理他们如何给你的产品定价。在 web 数据提取的帮助下,制造商可以提取产品和价格信息。因此,更容易发现谁违反了地图。

产品智能:

发现最畅销的产品具有挑战性。Web 数据提取自动化了提取产品列表和类别的过程,这提供了对畅销产品的洞察。此外,收集产品信息将有助于我们做出良好的产品分类决策。

数据科学:

自然语言处理:

我打赌你对 NLP 这个术语很熟悉。在大多数情况下,NLP 被用作分析客户情绪的手段。Web 数据提取是提供连续数据流的最佳方式,以满足洞察算法的需求。

机器学习训练模型:

机器学习现在是个热门词汇。基本上,这意味着我们把一堆数据扔进模型。然后,模型将研究这些模式并构建自己的逻辑。分配给它的数据越多,它生成的结果就越准确。在这方面,web 数据提取是在短时间内从多个来源大规模提取有价值数据的理想方法。

预测分析:

Web 数据抽取在预测分析中起着重要的作用,因为它收集数据来预测和预报趋势。精确的预测有助于企业预测未来市场,发现不可预见的风险并获得竞争优势。

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

照片由 Unsplash 上的 h heyerlein 拍摄

股票和金融研究:

新闻聚合:

在报纸上收集和保存新闻文章是一项严峻的任务。您可以使用数据提取工具来收集新闻文章。更好的是,您可以通过从不同的博客获取 RSS 提要,为您的读者创建一个包含最新信息的利基提要。

对冲基金:

对冲基金行业是网络数据提取的早期采用者,以评估投资风险和潜在的商业机会。时至今日,投资公司倾向于花更多的钱来获取数据以指导投资决策。

财务报表:

将来自许多资源的财务报表收集到一个结构化的格式中可能是一项相当艰巨的工作。手动浏览成千上万的论文进行分析会降低您的速度。在财务部这种快节奏的工作环境下是行不通的。Web 数据提取用于自动将财务报告收集成可用的格式,以便及时做出重要的投资决策。

市场研究:

进行彻底的市场调研,帮助营销团队进行更有效的规划。Web 数据提取使从多个社交媒体网站获取数据变得更加容易,从而获得洞察力并推动您的营销策略。

数据新闻:

难的不是写新闻报道,而是发现真相。这就是数据驱动型记者值得关注的地方。他们用科学的方法来分析数据和信息。网络数据提取使记者能够用收集到的信息创建自己的数据库,使他们能够从互联网上发现新的故事。

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

弗瑞德·卡尼在 Unsplash 上的照片

学术:

我们都有过这种经历——从谷歌学术搜索一页一页,只是为了收集足够的信息来写作业。Web 数据提取使这一过程变得轻松,因为您可以将相关信息提取和收集到一个电子表格中。看看这个 抓取模板 可以从谷歌学术网站上即时获取信息。

风险管理:

在风险管理方面,你需要大量的记录和调查报告。在这种情况下,很难创建一个法律数据库来进行背景调查。最简单的方法是提取犯罪记录、制裁名单、公司注册等。手头的信息越完整,提前降低的风险就越多。

保险:

网络数据提取有助于保险公司在撰写保单前收集替代数据来评估风险。此外,他们还可以分析潜在趋势,调整保险套餐,以提供更好的服务。

其他:

房地产列表:

房地产经纪人可以利用 web 数据提取工具从不同的网站提取房产列表。它使代理人能够获得周围财产信息的全貌,以更好地衡量房子的价值。这为他们提供了最新的知识,帮助他们达成更多交易。

工作公告板:

想创建一个工作聚合网站吗?尝试 web 数据提取。你可以从公司的招聘栏里收集招聘信息。你想要多少就有多少。

政府

网上有很多公开的记录,但不能下载。Web 数据提取可以将包括统计报告、新闻稿、表格内容在内的信息转换为 excel 表格,以供进一步分析。

旅游和酒店

在网上检索登机和航班信息是一项艰巨的工作,因为它们的价格很大程度上受可用性的影响。为了在顾客的预算范围内提供满足他们旅行体验的最佳旅游套餐,使用 web 数据提取来收集更新的信息是至关重要的。

体育博彩

你是梦幻足球迷吗?或者体育博彩。你应该试试 web 数据提取刮博彩网站 比较赔率。任何人都会喜欢低风险赌博,不是吗?在提取数据之前,请注意他们网站的法律合规性。如果你不确定,可以查看我的博文: 网页抓取合法

制药数据

自动将所有类别的药物收集到信息存储库中的结构化信息中。或者获取所有制药公司的信息以获得销售或营销团队的竞争优势,web 数据提取可以轻松地获取数据。

这些只是 web 数据抽取应用的一些例子。事实上,web 数据抽取的潜力是巨大的,因为它被设计成自动地从因特网上检索 web 数据。最好的部分是 数据提取工具 通过简单的拖拽和点击使这个过程变得更加容易。查看 2020 年最佳 10 大数据提取工具为您的企业赋能!

原载于 2020 年 3 月 10 日http://www . data extraction . io

25 种热门的新数据工具以及它们不做的事情

原文:https://towardsdatascience.com/25-hot-new-data-tools-and-what-they-dont-do-31bf23bd8e56?source=collection_archive---------10-----------------------

“等等,工具 X 和工具 Y 一起工作吗?我认为他们很有竞争力。”

如今,在快速增长的数据生态系统中,有数十种新工具。他们一起以令人兴奋、高效且通常令人惊讶的方式重塑数据工作。未来十年数据格局的种子已经播下,并且正在疯狂生长。

事实证明,培养一个新的生态系统是很麻烦的。

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

照片通过 Unsplash

困惑

混乱的一个症状是,许多这些工具被认为是有竞争力的,即使它们不是。

认为存在虚假竞争并不奇怪,因为:

  • 工具之间有很多重叠的功能。部分原因是因为工具和产品需要“剔除”基本功能——有时在不是它们主要关注的领域;
  • 增长轨迹和品类边界仍不确定;
  • 没有一个单一的工具是普遍存在的,即使是在一个特定的领域;
  • 创业者在向风投推销产品时,会被激励去讲述一个“大故事”。

所以这种困惑是很自然的。

也不好。对于试图专注的工具构建者来说是坏消息,对于试图评估市场的投资者来说是坏消息,对于试图利用最好的新工具选项构建高效数据堆栈的数据科学家和工程师来说尤其糟糕。

澄清时间

这篇博文是莎拉·卡坦扎罗(合作伙伴,Amplify Partners)阿部恭(超导/远大前程联合创始人)本人(数据委员会&数据社区基金创始人)开始清理混乱和纠结的合作。它起源于初创企业社区中人们的对话,他们厌倦了“等等,你们不是竞争对手吗?”-风格问题。

我们遇到的这些问题足以让我们认识到这种模式。我们已经看到了它们对采用和协作的不幸拖累。现在是时候做点什么了。

你的工具不能做什么?

为了着手解决这个问题,我们联系了数据生态系统中的许多企业家和开源维护者,并问了两个问题:

1.你的工具最擅长什么?

2.你的工具不能做什么?

我们将搜索范围限制在开源项目和 B 轮融资前的公司。回答保持简洁明了,并且为了清晰起见进行了编辑。

下面列出了所有参与的工具,按照它们响应的顺序排列。

生态系统的混乱不会在一夜之间消除,但我们希望这篇文章是一个好的开始。

工具和答案

  1. 远大前程/超导:远大前程擅长测试数据系统,并从这些测试中创建文档。远大前程也做数据剖析。Great Expectations 是高度可插拔和可扩展的,并且是完全开源的。它不是管道执行框架或数据版本控制工具。
  2. Databand : Databand 是一款 DataOps 解决方案,在监控生产管道和检测工作流代码、数据或系统层面的问题方面表现独特,并帮助工程师分析问题的根本原因。Databand 不是管道编排、数据质量测试或数据版本控制的单点解决方案。
  3. Dolt /Liquidata: Dolt 是一个带有 Git 版本的 SQL 数据库。您可以像在 Git 中一样提交、区分、克隆、提取、分支和合并 SQL 数据库。Dolt 是一种独特的共享数据的好格式。Dolt 不是为特定的数据用例设计的,比如特性存储或数据转换。Dolt 是一个通用数据库,可以应用在这些用例中。
  4. 贝叶斯:贝叶斯是一个可视化的、探索性的数据分析工具。它通过推荐的可视化方式引导您,并通过基于叙述的交互式报告实现简单、可解释的见解共享。贝叶斯不是商业智能仪表板,也不是程序员的基于代码的笔记本。
  5. Hex : Hex 是一个计算型的笔记本平台,独特擅长分享。用户可以连接到数据,开发他们的分析,然后轻松地构建一个全交互的、漂亮的应用程序,组织中的任何人都可以使用。Hex 不是一个 ML 工程平台或图表工具。
  6. Sisu Data : Sisu 是一个前瞻性的分析平台,特别适合快速探索复杂的企业数据,并帮助分析师解释关键业务指标为什么会发生变化。Sisu 可以在几秒钟内测试数亿个假设,并引导用户找到影响最大的变革驱动因素。Sisu 不是一个预测或建模工具,也不是一个描述性的仪表板。
  7. Ascend:: Ascend 特别擅长用少得多的代码构建、运行和优化纯云数据管道。Ascend 将数据链接到生成数据的代码,通过自动维护、数据分析、沿袭跟踪、成本优化以及与数据库、仓库、笔记本和 BI 工具的轻松集成,实现声明式数据管道。Ascend 不是通用的 Spark 解决方案,而是顶层的数据工程平台。
  8. Dataform : Dataform 在帮助您管理数据仓库中的数百个数据集方面是独一无二的。Dataform 帮助团队将原始数据转化为一套定义明确、经过测试并记录在案的数据集,用于分析。数据表单不是提取工具。
  9. DataKitchen : DataKitchen 是一款 DataOps 流程工具,能够为复杂的数据科学和分析世界带来持续部署、可观察性、测试和环境管理。DataKitchen 自动化分析创建/部署工作流、管道执行、代码/数据测试和管道监控/维护。DataKitchen 不是数据科学、ETL 或专用编排工具。
  10. 通气管是一个以编程方式构建训练数据集的平台。在 which 中,用户不用手工标注数据,而是编写标注函数,which 使用基于理论的建模技术将这些函数结合起来。浮潜不是无监督学习;它是一个人在回路的平台,专注于从根本上加速用户如何将他们的领域知识注入 ML 模型。
  11. Transform (stealth): Transform 正在构建一个指标存储库,确保企业能够以一种标准化的、格式良好的、有组织的方式获取指标定义,以简化分析,并自信而快速地做出决策。Transform 不是数据管道框架或商业智能工具。
  12. Materialize : Materialize 特别擅长在流数据之上执行和维护 PostgreSQL 查询(包括连接),在高吞吐量的情况下,以毫秒级延迟保持这些查询的最新状态。Materialize 不是时序数据库或另一个流微服务平台。
  13. Data Hub /LinkedIn: DataHub 是一个由元数据驱动的搜索和发现应用程序,旨在提高人工智能和数据科学的生产力。它具有独特的流优先分布式元数据架构,这使它在 LinkedIn 的人员和大数据规模上取得了成功。它不是数据集成或处理工具,也不是运行数据质量检查的协调器。
  14. 提督:提督是一个工作流程编排工具,允许你使用纯 Python API 定义任务流,并使用现代的、可扩展的基础设施轻松部署它们。Prefect 为您提供了构建健壮管道所需的语义,例如重试、日志记录、缓存、状态转换回调、失败通知等等,而不会妨碍您的代码。Prefect 不是一个无代码工具或基础设施提供商。
  15. Mara/项目 A: Mara 非常擅长将 SQL、Bash & Python 脚本编写到管道中。从命令行或通过 web 用户界面运行管道。本地执行,不用排队,不用工人,不用魔法。Mara 不是一个调度、数据移动或依赖性检测工具。
  16. dbt /Fishtown Analytics: dbt 擅长在数据仓库中创建、维护和记录基于 SQL 的业务逻辑的 Dag。dbt 不是一个通用的作业编排器。
  17. 警惕:警惕是唯一擅长于快速和大规模地创建高质量的、带有概率标签的训练数据,而不需要大量的人类标签员。观察让你通过反馈快速建立、测试和原型化模型。它不是一个管理标签服务或分析工具。
  18. Preset 是一个基于 SaaS 的数据探索和可视化平台,由 Apache Superset 的开发者开发。预设是关于可视化和数据消费,它不是一个计算或编排平台。
  19. Kedro : Kedro 擅长数据和 ML 管道的软件工程最佳实践。Kedro 使用可再现的分析工作流、I/O 抽象和管道建模,实现了从实验到生产的无缝过渡。Kedro 不是一个工作流程编排器或实验跟踪框架。
  20. Toro Data : Toro 非常擅长帮助团队部署对数据的监控,建议监控哪些内容,并且无需编写和部署代码就能轻松完成。Toro 不清理或转换数据,也不控制管道/工作流。
  21. 泰克顿:泰克顿非常擅长策划和服务功能。Tecton 不是数据处理引擎(如 Spark)或模型管理工具。相反,它利用现有的数据处理引擎来处理原始的批处理/流/实时数据,将其转换为功能,并部署这些功能用于培训和服务。
  22. Dag ster/Elementl:Dag ster 是一个数据编排器,它非常擅长为本地开发、测试、部署和运营构建数据应用程序。Dagster pipeline 组件以任何语言或框架创作,并通过公共元数据和工具组合形成统一的数据应用程序。Dagster 不是处理引擎,也不是数据仓库/对象存储。
  23. Select Star : Select Star 是一个解决数据发现问题的数据目录和管理工具。它在帮助您了解您的数据方面有着独特的优势—您拥有哪些数据,数据存储在哪里,数据的结构如何,以及数据的使用情况如何。Select Star 不提供 SQL 客户端或 ETL 处理。
  24. 蒙特卡洛:蒙特卡洛是一个数据可靠性平台,包括数据监控、故障排除和事故管理。蒙特卡洛不是一个测试框架、管道或版本控制工具。
  25. Flyte 在迭代开发可伸缩的、容器原生的和可重复的管道方面是独一无二的,这些管道连接不同的分布式系统,同时将数据流置于前端和中心。Flyte 不是一个机器学习平台,但可以成为其中的核心组件。

开始对话

我们编制这份清单有两个目的。一方面,我们要赞扬这些了不起的工具、创始人和 OSS 领导人,他们推动了我们数据工具生态系统的发展。另一方面,我们希望在社区中围绕清楚地理解这些工具的有意限制展开有益的对话。没有人能把每件事都做得比所有人都好;甚至是创新者!

我们希望这篇文章对我们的现代数据工具生态系统“野生花园”有所启发。当我们用心培育它时,愿它继续茁壮成长。

2020 年你应该尝试的 25 个鲜为人知的 Java 库

原文:https://towardsdatascience.com/25-lesser-known-java-libraries-you-should-try-ff8abd354a94?source=collection_archive---------7-----------------------

对 Java 和 JVM 软件开发有很大帮助的库

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

图片由 StartupStockPhotos 来自 Pixabay

25 年前,詹姆斯·高斯林创造了 Java,永远改变了编程语言的版图。与许多其他编程语言不同,Java 在其整个生命周期中都享有很高的流行度和业界的高需求。

Java 有一个引人注目的核心库,它提供了许多基本功能。由于它的高普及性,存在许多成熟而强大的 Java 库。作为一名务实的软件开发人员,我更喜欢解决业务问题。为了解决常见的或重复出现的问题,我更喜欢使用成熟的库,而不是重新发明轮子。

在之前的一篇博文中,我列出了每个 Java 开发人员都应该知道的 10 个最重要的第三方 Java 库:

[## 每个 Java 开发人员都应该知道的 10 大库

Java 和 JVM 软件开发中基本 Java 库的精选列表

towardsdatascience.com](/top-10-libraries-every-java-developer-should-know-37dd136dff54)

在这篇文章中,我想介绍另外 25 个 Java 库来庆祝 Java 的 25 周年。这些库是成熟的,可以为您在 Java 软件开发中可能面临的常见问题提供久经考验的解决方案。

请注意,我不包括那些我在以前的帖子中已经列出的库。另外,我在这里主要列出了库,没有列出框架。

1.RxJava

reactive Extensions(react vex)是一种流行的软件开发范例,用于处理异步和事件驱动的编程。RxJava 是使用 Observables 的反应式扩展的 Java VM 实现。它扩展了 Observer 模式,通过以声明的方式在事件/数据序列上添加可组合的操作符来支持事件驱动的编程。它还隐藏了底层的复杂性,如线程、线程安全、同步和并发数据结构。

如果想用 Java 做反应式编程,那是必备库。

链接:

[## react vex/rx Java

RxJava 是反应式扩展的 Java VM 实现:一个用于组成异步的和基于事件的…

github.com](https://github.com/ReactiveX/RxJava)

2.OkHttp

HTTP 是目前使用最多的应用层协议。有许多优秀的基于 Java 的 HTTP 客户端库。但是 OkHttp 是 JVM 中最简单但功能强大的 Http 客户端库。它为用 Java 开发 HTTP 客户端提供了流畅、简洁的 API。

它还支持一些高级特性:连接池、GZIP 收缩、响应缓存、现代 TLS 特性等等。

链接:

[## square/okhttp

有关文档和 API,请参见项目网站。HTTP 是现代应用程序联网的方式。这是我们交换的方式…

github.com](https://github.com/square/okhttp)

3.米巴蒂斯

在大多数软件开发项目中,我们需要存储数据。虽然有许多类型的数据存储,SQL 仍然是最常用的数据存储类型。作为一名 Java 开发人员,我们需要将 Java 对象与 SQL 表相匹配。实现映射的一种方法是使用 ORM(例如 Hibernate)。但是当您想要完全控制对象-表映射(例如,性能)时,有许多用例。在这些情况下,您可以直接使用 JDBC 并编写 SQL 查询。另一种方法是使用 MyBatis 将 Java 对象映射到存储过程或 SQL 语句。它提供了基于注释或基于 XML 描述符的映射。

比起普通的 JDBC,我更喜欢 MyBatis,尤其是在大型项目中,因为它改善了关注点的分离。

链接:

[## mybatis/mybatis-3

MyBatis SQL mapper 框架使得在面向对象的应用程序中使用关系数据库变得更加容易…

github.com](https://github.com/mybatis/mybatis-3)

4.HikariCP

HikariCP 是这个列表中第二个与数据库相关的库。建立 JDBC 连接是资源昂贵的。如果每次访问数据库时都创建一个新的连接,并在完成后关闭它,这会严重影响应用程序的性能。更不用说未能正确关闭连接或允许无限制数据库连接会导致应用程序崩溃。

使用连接池意味着在每次请求连接时重用连接,而不是创建连接。HikariCP 是 JVM 中一个非常快速但轻量级的数据库连接池。它也非常可靠,是一个“零开销”的 JDBC 连接池。

链接:

[## brettwood ridge/hikar ICP

快速、简单、可靠。HikariCP 是一个“零开销”的生产就绪型 JDBC 连接池。大约 130 kb……

github.com](https://github.com/brettwooldridge/HikariCP)

5.龙目岛

在现代,Java 经常被批评为一种冗长而臃肿的编程语言。与其他流行语言(JavaScript、Python、Scala、Kotlin)相比,开发人员需要用 Java 编写大量样板代码。尽管 Java 在 JDK 15 中引入了记录以减少 Java 中的样板代码,但它不是 LTS 版本。幸运的是,一个库已经可以显著减少 Java 中的样板代码:Project Lombok。通过添加一些注释,可以生成 getters、setters、hashcode、equals、toString、Builder 类。此外,它还提供了空指针检查、记录器等等。

链接:

[## rzwitserloot/龙目岛

Project Lombok 是一个 java 库,可以自动插入到您的编辑器和构建工具中,为您的 java 增添趣味。从不…

github.com](https://github.com/rzwitserloot/lombok)

6.VAVR

Java 终于在版本 8 中发布了期待已久的通过 Lambda 和 Streaming 的函数式编程。如果你习惯于函数式编程或者想要深入函数式编程,你可能会发现 Java 的函数式编程有所欠缺。相比其他很多函数式编程语言(Haskell,Scala),Java 就显得苍白无力了。VAVR 是一个可以填补 Java 中函数式编程特性空白的库。它提供了持久集合、错误处理的功能抽象、并发编程、模式匹配等等。

链接:

[## Vavr

Oracle 和 Java 是 Oracle 和/或其附属公司的注册商标。其他名称可能是他们的商标…

www.vavr.io](https://www.vavr.io/)

7.Gson

多年来,JSON 已经成为事实上的数据交换格式。在 Java 中,也存在一些优秀的库来处理 JSON。其中一个是杰克逊,我在以前的文章中提到过。另一个优秀的库是谷歌的 Gson。不像 Jackson,它是一个极简主义的库,只支持 JSON。它提供数据绑定、广泛的通用支持、灵活的定制。Gson 的一个主要优点(或者缺点取决于您的喜好)是它不需要注释。

链接:

[## 谷歌/gson

Gson 是一个 Java 库,可以用来将 Java 对象转换成它们的 JSON 表示。它也可以用来…

github.com](https://github.com/google/gson)

8.jsoup

如果你正在用 Java 开发你的应用程序,并且需要处理 HTML,你应该使用 jsoup。这是一个 Java 库,用于处理现实世界中的 HTML。它为获取 URL、提取和操作数据提供了一个非常方便的 API。它实现了 WHATWG HTML5 规范,并使用最好的 HTML5 DOM 方法解析 HTML。它支持从 URL/字符串解析 HTML,查找和提取数据,操作 HTML 元素,清理 HTML,输出 HTML。

链接:

[## jhy/j 组

jsoup 是一个用于处理真实世界 HTML 的 Java 库。它提供了一个非常方便的 API 来获取 URL 和…

github.com](https://github.com/jhy/jsoup)

9.移转

如果您正在开发一个企业级应用程序,它至少应该是云就绪的。使您的应用程序云就绪的第一步是将您的应用程序容器化,即,将您的 artifactory 二进制文件放入 Docker 映像。对 Java 应用程序进行 Docker 化是一件有点繁琐的工作:你需要对 Docker 有深入的了解,你需要创建一个 Dockerfile,你还需要 Docker Daemon。对 Java 开发者来说幸运的是,Google 已经使用现有的工具创建了一个开源的 Java 容器。您可以使用 JIB 作为 Java 库来构建优化的 Docker 和 OCI 映像。

[## 谷歌集装箱工具/三角帆

你最喜欢 Jib 的什么?有哪些需要改进的地方?请通过一分钟的调查告诉我们。你的…

github.com](https://github.com/GoogleContainerTools/jib)

10.(发)丁当声

Tink 是 Google 列表中另一个方便的 Java 库。密码学和安全性在软件开发中变得越来越重要。加密技术用于保护用户数据。正确实现加密需要大量的专业知识和努力。Google 的一组密码学家和安全工程师编写了多语言密码库 Tink。它提供了易于使用但难以误用的安全 API。Tink 通过不同的原语提供加密功能。它提供对称密钥加密、流式对称密钥加密、确定性对称密钥加密、数字签名、混合加密和许多其他加密功能。

链接:

[## 谷歌/tink

Tink 是一个多语言、跨平台的开源库,它提供了安全、易于使用的加密 API

github.com](https://github.com/google/tink)

11.Webmagic

如果你从事网络爬虫工作,你可以自己编写爬虫,既费时又繁琐。在 Java 中,Webmagic 是一个优秀的网络爬虫库,涵盖了爬虫的整个生命周期:下载、URL 管理、内容提取、持久化。它提供了一个简单而灵活的核心、注释支持、多线程和易于使用的 API。

链接:

[## code4craft/webmagic

一个可扩展的爬虫框架。它涵盖了爬虫的整个生命周期:下载、url 管理…

github.com](https://github.com/code4craft/webmagic)

12.ANTLR 4

如果您致力于解析和处理数据,那么 ANTLR 库可能会很方便。它是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它让我们能够访问语言处理原语,如词法分析器、语法分析器和运行时来处理文本。

它通常用于构建工具和框架。

链接:

[## antlr/antlr4

ANTLR(另一个语言识别工具)是一个强大的解析器生成器,用于读取、处理、执行或…

github.com](https://github.com/antlr/antlr4)

13.咖啡因

如果您的应用程序需要大量读取,那么缓存可以显著提高应用程序的数据访问性能。Java 有很多很棒的缓存库。咖啡因是其中最好的。这是一个基于 Java 的高性能、接近最优的缓存库。它提供了一个流畅的缓存 API 和一些高级特性,如异步加载条目、异步刷新、弱引用键等。

链接:

[## 苯海拉明/咖啡因

Caffeine 是一个基于 Java 8 的高性能、近乎最优的缓存库。有关更多详情,请参见我们的用户指南…

github.com](https://github.com/ben-manes/caffeine)

14.韵律学

一旦您的 Java 应用程序运行到生产环境中,您将希望深入了解应用程序的关键组件。Dropwizard 框架中的 Metrics 是一个简单但引人注目的 Java 库,它提供了对您的应用程序和 JVMs KPI 的洞察,例如,事件率、挂起的作业、服务健康检查等等。它是模块化的,为其他库/框架提供模块。

链接:

[## 下拉向导/指标

📈捕获 JVM 和应用程序级别的指标。所以你知道发生了什么。有关更多信息,请参见…

github.com](https://github.com/dropwizard/metrics)

15.gRPC-Java

Google 在 2015 年创建了 gRPC 作为一个现代远程过程调用系统。从那以后,gRPC 变得非常流行,成为现代软件开发中使用最多的 RPC 系统之一。gRPC-Java 库是 gRPC 客户机的 Java 实现。如果您想在 Java 中使用 gRPC,那么这个库会很方便。

链接:

[## grpc/grpc-java

gRPC-Java 适用于 JDK 7。gRPC-Java 客户端在 Android API 级别 16 及以上(Jelly Bean 及更高版本)上受支持…

github.com](https://github.com/grpc/grpc-java)

16.Java WebSocket

传统的客户端-服务器单向通信。WebSocket 是通过单一 TCP 连接的双向通信协议。Java WebSocket 是一个用 Java 实现的 WebSocket 服务器和客户端的准系统。如果您是 Java 开发人员,并且希望使用 WebSocket,那么强烈推荐这个库。

链接:

[## TooTallNate/Java-WebSocket

这个存储库包含一个用 100% Java 编写的准系统 WebSocket 服务器和客户端实现。潜在的…

github.com](https://github.com/TooTallNate/Java-WebSocket)

17.JJWT

JSON Web Token (JWT)是现代软件开发中事实上的授权和安全信息交换格式。无论您是使用简单的基于会话的授权还是高度高级的基于 OAuth2 的授权,您都可能会使用 JWT。JJWT 是一个简单的 Java 库,用于在 Java 和 JVM 环境中创建和验证 JWT。它在所有实现的功能上都完全符合 RFC 规范。它支持可读和方便的流畅的 API。

链接:

[## jwtk/jjwt

JJWT 的目标是成为在 JVM 上创建和验证 JSON Web 令牌(JWT)的最容易使用和理解的库…

github.com](https://github.com/jwtk/jjwt)

18.招摇核心

OpenAPI 是机器可读接口文件的规范,用于描述、生成、消费和可视化 RESTful web 服务。Swagger-Core 是 OpenAPI 规范的 Java 实现。如果在 Java/JavaEE 应用程序中公开 REST API,可以使用 Swagger-Core 自动提供和公开 API 定义。

链接:

[## swagger-API/swagger-核心

注意:如果你找的是 Swagger Core 1.5.X 和 OpenAPI 2.0,请参考 1.5 分支。Swagger Core 是一个 Java…

github.com](https://github.com/swagger-api/swagger-core)

19.异步 Http 客户端

异步编程最近变得越来越流行,因为它具有非阻塞的特性。大多数流行的 Java HTTP 客户端库只提供有限的异步 HTTP 响应处理。异步 HTTP 客户端是一个流行的 Java 库,它提供异步 Http 响应处理。作为一个额外的特性,这个库还支持 WebSocket 协议。

链接:

[## 异步客户端/异步 http 客户端

在 Twitter 上关注@AsyncHttpClient。异步客户端(AHC)库允许 Java 应用程序轻松执行 HTTP…

github.com](https://github.com/AsyncHttpClient/async-http-client)

20.液态碱

作为软件开发人员,我们都知道版本控制、DevOps 和代码的 CI/CD 的重要性。在一篇博客文章中:进化数据库设计,伟大的马丁·福勒认为我们也需要版本控制和代码的 CI/CD。Liquibase 是一个工具,支持 Java 应用程序中 SQL 数据库变更的跟踪、版本控制和部署。如果您正在使用一个数据库不断发展的 SQL 数据库,这个工具可以极大地简化您的数据库迁移。

链接:

[## Liquibase |数据库的开源版本控制

灵活数据库更改很容易用 SQL、XML、JSON 或 YAML 定义更改。您的数据库订单的版本控制…

www.liquibase.org](https://www.liquibase.org/)

21.Springfox

我已经在这个列表中列出了 Swagger-Core,它可以为 vanilla Java 或 Java EE 应用程序自动生成 REST API 文档。在企业应用开发中,Spring MVC 已经超越 Java EE 成为头号应用开发平台。在基于 Spring 的 Java 应用中,Springfox 库可以从源代码自动生成 REST API 文档。

链接:

[## 弹簧狐狸/弹簧狐狸

关于这个项目的更多信息,请访问 Springfox 网站或…

github.com](https://github.com/springfox/springfox)

22.JavaCV

OpenCV 是一个计算机视觉和机器学习软件库。它是开源的,旨在为计算机视觉应用程序提供一个通用的基础设施。JavaCV 是 OpenCV 和计算机视觉领域许多其他流行库(FFmpeg,libdc 1394,PGR FlyCapture)的包装器。JavaCV 还配备了硬件加速全屏图像显示、在多个内核上并行执行代码的易用方法、用户友好的几何和相机及投影仪的颜色校准、特征点的检测和匹配以及许多其他功能。

链接:

[## bytedeco/javacv

JavaCV 使用来自计算机视觉领域研究人员常用库的 JavaCPP 预置的包装器…

github.com](https://github.com/bytedeco/javacv)

23.Joda 时间

在 Java8 之前的核心库中,Java 的日期和时间功能很差。Java8 在其 java.time 包中发布了急需的高级日期和时间功能。如果您使用的是旧版本的 Java(Java 8 之前),Joda time 可以为您提供高级的日期和时间功能。但是,如果您正在使用较新版本的 Java,您可能不需要这个库。

链接:

[## JodaOrg/joda-time

Joda-Time 为 Java 日期和时间类提供了高质量的替代品。该设计允许多个日历…

github.com](https://github.com/JodaOrg/joda-time)

24.Wiremock

HTTP 是现代应用程序开发中最受欢迎的传输协议,而 REST 是基于微服务的应用程序开发中事实上的通信协议。在编写单元测试期间,最好关注 SUT(被测系统)并模拟 SUT 中使用的服务。Wiremock 是 REST API 的模拟器,使开发人员能够针对不存在或不完整的 API 编写代码。在基于微服务的软件开发中,Wiremock 可以显著提高开发速度。

链接:

[## tomakehurst/wiremock

HTTP 响应存根、URL 匹配、标题和正文内容模式请求验证在单元测试中运行,因为…

github.com](https://github.com/tomakehurst/wiremock)

25.MapStruct

在 Java 应用程序开发中,您经常需要将一种类型的 POJO 转换成另一种类型的 POJO。实现这种 POJO 或 Bean 转换的一种方法是显式地对转换进行编码,这很繁琐。聪明的方法是使用专门开发的库来转换 POJO/Bean。MapStruct 是一个代码生成器,它根据配置方法的约定实现 POJO/Bean 之间的映射。生成的映射代码使用简单的方法调用,因此快速、类型安全且易于理解。

链接:

[## 地图结构/地图结构

MapStruct 是一个 Java 注释处理器,用于为 Java bean 类生成类型安全和高性能的映射器…

github.com](https://github.com/mapstruct/mapstruct)

结论

在本文中,我列出了 25 个 Java 库,通过利用测试库的常见任务,它们可以帮助您的软件开发工作。这些库不是特定领域的,无论您是为商业应用程序、机器人、Android 应用程序还是个人项目开发软件,它们都可以帮助您。请注意,对于像 Java 这样大而广的生态系统,这个列表并不是结论性的。有许多优秀的 Java 库我没有在这里列出,但是值得一试。但是这个库列表可以提供一个快速窥视 Java 生态系统世界的窗口。

类似文章:

[## 金融科技的编码语言:JVM 如何让你成功?

Java,Kotlin,Scala,Groovy,Clojure

md-kamaruzzaman.medium.com](https://md-kamaruzzaman.medium.com/coding-languages-for-fintech-how-will-jvm-make-you-succeed-89f84af22296) [## 每个 Java 开发人员都应该知道的 10 大库

Java 和 JVM 软件开发中基本 Java 库的精选列表

towardsdatascience.com](/top-10-libraries-every-java-developer-should-know-37dd136dff54) [## 10 个优秀的 GitHub 库,适合每一个 Java 开发者

面向 Java 开发人员的基本 GitHub 库的精选列表

towardsdatascience.com](/10-excellent-github-repositories-for-every-java-developer-41084a91ade9)

清理数据时要问的 25 个问题

原文:https://towardsdatascience.com/25-questions-to-ask-as-you-clean-data-a8024537341b?source=collection_archive---------20-----------------------

我在数据清理之前问这些问题,所以我知道开始时会遇到什么。

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

图片来自像素上的 bongkarn thanyakij

我是一名软件工程师和数据科学家,在笔记本和软件包中编写代码。如果你还没有听说过,你应该在编码之前停下来想一想,同样的概念也适用于数据清理。从最初的工作中退一步,开始思考手头的问题和您将清理的数据,这是很有价值的。考虑数据的最终用例也是一个好主意。您需要在报告或仪表板中使用它吗?数据会被很多人使用还是被一个人使用?您需要多久清理一次这些数据?至此,我将向您介绍我在处理数据清理之前考虑的 25 个常见问题。

数据摄取

当我开始一个项目时,我首先要考虑的是在我开始清理它之前,我将如何接收这个项目的数据。根据我从哪里获取数据,我可能需要执行不同的数据清理步骤。假设数据已经来自另一个团队。在这种情况下,在我接收数据之前,数据可能是干净的,这使我在处理数据之前更容易预处理数据。

1\. Do you need to ingest the data and then clean it, or is it cleaned at the source? 
2\. If you are reading in files that contain your data, can you clean and overwrite the file, or will you need to save it somewhere else to keep the raw file separate? 
3\. Do you need to save your cleaned data or keep it in a dataframe and save your analysis's output?
4\. Do you need a backup of the data somewhere? 
5\. What happens if the files become corrupted as you are cleaning it? Are you prepared to start over?

空白或 Null 字段

收到数据后,下一步是理解如何处理空值。数据集中很少会出现空值。相反,用户会添加一些晦涩难懂的大值,如-9999 或 9999、其他字符或单词。最好后退一步,理解用户是如何向数据集中添加空值的,并采取措施看看您将如何清除这些值。一旦知道了这些值在数据集中是如何表示的,就可以开始清除它们或在需要的地方输入值。

6\. Are there values that you can remove as empty or NULL values such as -1, -9999, 9999, or other characters? 
7\. Will these values be imputed as a string, numeric, or category? 
8\. Will you drop values that are empty or NULL? 
9\. Can these values be empty or NULL, and still have the data make sense to provide valuable action? If this value is missing, can you provide actionable insights? 
10\. Can work with those who created the data to develop a standard for what is considered empty or NULL?

文本字段

我要找的下一个东西是文本字段。当我使用文本字段时,我或者将它们用作类别(下面将讨论),或者用作将被显示或用于附加信息的纯文本。但是,如果您使用文本字段进行建模,会发生什么呢?您可能需要考虑不同类型的清理或自然语言处理技术来处理您的数据,例如词干化、词汇化或删除填充词。我发现处理文本字段更加困难,因为可能会有拼写、缩写、错误类型信息等方面的变化。

11\. Are there spelling mistakes in the column that you need to consider? 
12\. Can a word or abbreviation be spelled multiple ways? 
13\. Could there be more than one abbreviation for the same thing? 
14\. Do you need to extract data from the text field? If so, will you use regular expressions, stemming, lemmatization, remove filler words, white space, etc.? 
15\. Do you have timestamp or other numeric data type columns that read as strings but should be another data type?

类别和布尔值

当清理数据时,类别和布尔是最容易处理的两种数据类型,因为它们的列中变化较少。对于类别,我倾向于查看为给定列列出的唯一类别,以便更好地理解我正在处理的不同值。然后,我可以根据需要将这些信息返回给主题专家(SME ),以获得可能不清楚的类别的定义,例如映射到定义的数字或单个字母值。

16\. Will you keep your categories in a human-readable format or convert them using one-hot encoding? 
17\. Do you have too many or too little categories? 
18\. Do you have duplicate categories? Duplication can appear due to misspellings or added white space such as 'R' and 'R '. 
19\. Should you add another category if there are items that do not fit into the rest? 
20\. How will you represent boolean values? 0 and 1, True and False. Pick a schema and use it for all boolean columns to have consistency.

数字字段

最后,还有数字字段。我在查看数值字段时完成的一项常见任务是了解这些列中的汇总统计信息和数据分布。这种快速分析有助于了解数据的结构,以及是否存在任何明显的异常值。查看这些数据后,您可能还需要考虑与您的数值点相关的任何单位。您是否假设了特定列的单位,但似乎有些不对劲?在你继续你的工作之前,仔细检查这一点会有所帮助。

21\. Does the data columns' distribution seem appropriate, or do you need to investigate an issue?
22\. Do you need to know what metrics the data stands for, such as feet vs. inches or Celcius vs. Fahrenheit? Will the difference matter to your end calculations?
23\. Is the column all numeric, or are there other values to clean out from the data?
24\. Have you converted the column to the same data type, such as int or float? Will this conversion affect your end-use case for the data? 
25\. Is your data continuous or categorical? How will that data be used?

摘要

在数据科学项目中,数据清理和预处理可能会占用大量时间。在接收数据时,考虑在接收数据之前可能已经完成了多少清理工作,以及需要做多少清理工作。当您查看数据时,首先要考虑的是如何处理 null 或空数据值。你能清除它们吗,或者你需要在它的位置上估算一个值吗?一旦您做出了决定,您就可以开始查看每一列中的实际数据点,并制定一个计划来清理那些您认为合适的列。列可以包括类别、布尔值、数字和文本字段等内容。在建模前清理和预处理数据时,每种方法都需要考虑不同的因素。

在清理数据时,您会问哪些类型的问题?

如果你想阅读更多,看看我下面的其他文章吧!

[## 每位数据科学工程师的前三本书

我放在书架上的伟大资源,我喜欢介绍给软件工程师和数据科学家。

towardsdatascience.com](/top-3-books-for-every-data-science-engineer-e1180ab041f1) [## 在数据科学中我们需要面向对象编程吗?

让我们讨论一下作为一名数据科学家转向面向对象编程的利弊。

towardsdatascience.com](/do-we-need-object-orientated-programming-in-data-science-b4a7c431644f) [## 关于寻找数据科学项目的思考

有时候你需要在工作中把一个项目交给别人,这没什么。

towardsdatascience.com](/thoughts-on-finding-a-data-science-project-d4b74893f50)

25 条提高数据素养的明智原则

原文:https://towardsdatascience.com/25-sapient-principles-for-better-data-literacy-5ff5d42480a5?source=collection_archive---------31-----------------------

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

数据流畅的责任是对现实负责。只有这样,你才能做出最好的决定。

让我们将数据素养定义为分析、理解和交流数据的能力。如果我们还没有意识到,数据素养是数据驱动决策的一个重要组成部分。

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

来源:xkcd

转变产品团队分析的旅程是漫长的。我们终于到了这样一个地方,数据可以和我们说话,我们可以根据它告诉我们的东西做出决定。从本质上讲,这就是为什么读写能力可以在一个组织中创造或摧毁价值。误解的代价是巨大的。

在本帖中,我们将讨论如何通过以下方式提高您的数据素养:

  • 原则
  • 培训和实践

在我们讨论这些部分的时候,我会分享和剖析我最近看到的文盲现象。

让数据变得流畅不是一蹴而就的。磨练需要纪律、意识和合作。

数据读写原则

仔细想想,掌握数据就像学习一门新语言一样。有很多东西要学——新词汇、口语、语境和媒体。这里有一些让你进入正确心态的原则。

增强意识

  • **了解你的消息来源。**并非所有来源都相同。知道来源的内在偏差是什么。
  • **了解你的数据的局限性。**有时候你只有很小的历史观。或者,使用数据没有覆盖所有用例。
  • 对你的自信现实一点。你的数据永远不会完美,所以不要期望它是完美的。不完美是可以的——你只需要表达出来。
  • 确保数据是相关的。数据太多了。不要增加噪音。它会分散注意力,甚至打乱重要的决定。

在解释数据时

  • **注意盲点。**盲点表现为以下形式之一:(1)我们知道自己不知道的东西,(2)我们不知道自己不知道的东西。
  • **获取其他视角。**相信你的直觉,但也要接受他人对数据的解读。
  • 探索不同的解释。解读读数的方式有很多种,所以在这里拓展你的横向思维。这些解释中有一种最接近事实。
  • 保持简单。智慧表明最简单的解释是最好的。参见奥卡姆剃刀柯尔莫哥洛夫复杂度

在交流你的见解时

  • **讲故事。**在我的上一篇文章中,我谈到了讲故事在推动决策中的作用。这是让你的信息持久的好方法。
  • **使之相关。**同上,但值得重复。
  • **关注洞察力,而不仅仅是数据点。**人们很容易重复“事实”和花絮。将数据提炼为经验和行动要困难得多。
  • 要透明。数据流畅的一个责任是知识上的诚实。交流缺点、风险和注意事项。
  • 分解一下。随着你变得越来越流利,你的基本分析也会变得越来越复杂。确保你能传达方法论。

对本组织的期望

  • **投资培训。**您已经投资了数据和工具。坚持到底。资源有限的培训无法很好地扩展。
  • **奖励数据素养。**如果你想让数据素养成为一种能力,光学很重要。一定要认出表现流畅的人。
  • 根据重要目标调整培训。我从《走向数据科学》的帖子“培养数据素养的三个必须”上得到这个。
  • 从顶部开始。你需要展现奉献精神和数据素养的领导力。一个领导者茫然地看着别人,不知道发生了什么,这是非常令人失望的。

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

我要 800 美元的《谬误》。(那是 Jeopardy!参考)

假设你是一名高级产品主管。你在一则新闻标题中读到,微软团队的用户数超过了其竞争对手 Slack(2000 万对 1300 万)。你的同事转向你说:“我认为 Slack 仍然会赢。”好奇,你求她解释。

她看着你说,“他们的 CEO 说他们有 50 多个客户,资产超过 100 万美元。其中超过 70%是[微软] Office365 客户端。”句号。

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

资料来源:美国消费者新闻与商业频道

想要澄清,你问她赢的定义。她说,“他们从大的 Office365 客户那里获得收入,所以他们必须赢。”句号。

你的理由是,“这并不意味着他们会赢。尤其是如果你考虑到 Office365 的收入比 Slack 高出多少。除了他们两个的活跃用户之外,我们不知道其他任何事情。”

她自信地回答,“嗯,他们的 CEO 说……”然后你就不听了。

那里发生了什么?嗯,有几件事。

  1. 纯反流。“首席执行官这样说。”
  2. 谬误或缺乏逻辑。“Slack 也被 Office 365 的客户收购了。”
  3. 缺乏深度。当被问及“赢”的定义时,我没有意见。
  4. 缺乏好奇心。对探索其他观点或衡量标准不感兴趣。

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

数据素养培训与实践

俗话说,“有目的的练习才能完美”。这也适用于数据素养。

扫盲培训的四项原则

  1. 最好的培训是与情境相关的。在创建培训课程时,选择一个重要的项目。列出你需要回答的关键问题。分析工具都是一样的——统计、代数、回归、决策树等等。将它们应用到相关的问题上,将会使这些教训变得有意义。
  2. **从基本面开始。**也就是说,每个人都需要了解一些基准工具。这些包括聚合、分布、基本统计和概率。 Qlik 提供了一套很好的数据素养课程——从基础到更高级的技术。
  3. 坦然面对这种暧昧。计算一个数字很容易。知道用它做什么更有挑战性。(“好吧,现在你知道橄榄园每年烘烤 7 亿根面包棒。现在怎么办?”)
  4. 不要骄傲自大。有些人会学一件事,然后表现得好像什么都知道。干这一行很容易自卑。

识字实践的四项原则

  1. **找项目练。**找到一组相关的项目,您可以应用团队学到的分析工具。尽可能用数据推理。挑战你的假设和他人的工作。那是健康的。
  2. **找导师。**这个应该是比较有数据流畅经验的人。相对于你来说,这些人可能处于“初级”职位,但可能接触到更多的数据。询问他们对数据的解释,并陈述你的情况。为相似的人建立一个共鸣板,以获得更大的效果。
  3. 公开展示。这是一个棘手的问题,因为它会让人神经紧张。但是,这是实地测试你的技能组合的最佳方式。你的成长来自于回答意想不到的问题的能力和看待事物的不同。你还将练习改变他人的视角。
  4. **不断进化。**整合不同的数据源。混合数据源。随着您对现有领域越来越熟悉,您可以扩展您的范围。寻找不同的方式来呈现和可视化你的见解。学习新技术。

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

我要 2000 美元的“错误”。

(在本例中,所有数字均基于真实发生的事件。名字是虚构的。)

我猜想吉米是产品 x 的项目经理。首席执行官金问吉米,产品 Y 的使用是否对产品 x 的使用有任何影响。吉米分析了一些数字,得出了下面的图表。

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

“哇,使用产品 X 和产品 Y的人点击产品 X 的次数更多。准确的说是多了 11.3%!”吉米

看到 11.3%的差异后,Jimmy 兴奋地向 CEO 汇报。“Kim,使用这两种产品的人点击产品 x 的可能性增加了 11.3%,”首席执行官 Kim 拍拍 Jimmy 的背,向公司介绍了这一惊人的发现。

让我们就此打住。通过 Jimmy 的分析,我们可以发现两个突出的问题。

  1. **没什么道理。**当然,数据显示增长了 11.3%,但我们不知道是什么导致了这一增长。稍后将详细介绍。
  2. 那不太可能。这是一个比率。说 11.3%是一个用户点击的概率增加是假的。说他们有 11.3%的机会点击更多也是错误的。总的来说多了 11.3%,不是概率上的。

现在,回到故事… 你,数据流畅的 PM,对这些数字很好奇。具体来说,你想知道 是什么 在驱动这些数字。您会注意到这些指标是产品 x 的所有特性的平均值。

如果你看看引擎盖下,可能会有一个解释,哪些功能是造成颠簸。你对数据进行处理,得出下面的图表。

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

X+Y 用户真的爱搜索,嗯?

它看起来像查看主页有一个不错的 5%的小颠簸。不过,这并不能解释 11.3%中的一半。

啊,但是看看搜索功能。X+Y 用户的搜索量有高达 46%的增长。这是一个非常重要的发现。

你正准备与 Jimmy 和 Kim 分享这一点,但随后你意识到:同样的搜索功能也用于产品 Y。来自产品 Y 的搜索可能算作产品 x 中的搜索。计数有可能是错误的。

整个故事都变了。 产品 Y 可能不会像 Jimmy 想的那样影响产品 X 的使用。甚至可能没有关系。

祝你和组织里的其他人顺利解决这个问题。

我希望吉米的例子不是真的。吉米在现实生活中是一名高级项目经理。金确实告诉了成千上万的员工。那么它是在哪里分崩离析的呢?

  • 没有探究“为什么”或颠簸背后的驱动因素。原问题问因果关系。吉米根本没有回答那个问题。甚至有可能产品 Y 对产品 X 的使用没有任何影响。
  • **不会讲故事。**见最后一点。
  • 没有意识到数据的盲点。关键的洞察力与吉米的第一次分析只差一个数据片段。知道两个产品使用相同的搜索功能,就暴露了一个盲点。

你可以对这个分析提出一些批评,但是你会明白的。我认为吉米是一个有自知之明的人,早就纠正了他的读写问题。

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

在您发展数据素养的过程中,我们已经讨论了许多不同的原则和注意事项。进化不是一个轻易使用的词。如果你接受压力,那么有很多压力可以推动你的流利程度提高。

以上例子都是真实的。它们并不意味着减损或阻碍。相反,它们是为了让你意识到陷阱。

保持数据流畅是一项重大责任。那就是对现实负责,在思想上诚实,这样组织才能做出最好的决定。

注册订阅我的简讯:投资您的产品分析技能组合

阅读其他关于转变产品分析能力的帖子

[## 卓越的分析始于经过验证的问题

分析最容易被忽视的方面也是最关键的——知道哪些问题很重要。

medium.com](https://medium.com/swlh/superior-analytics-starts-with-proven-questions-83e623fa27bf) [## 获取您需要的产品使用数据—转变您的产品团队分析的第 3 部分…

目标是在几分钟内对问题提供有见地的答案。了解在哪里以及如何快速获得产品…

medium.com](https://medium.com/swlh/getting-the-product-usage-data-you-need-ae0b825fa8b) [## 转变您产品团队的分析能力:您需要的数据

了解作为产品团队需要了解的数据。这篇文章涵盖了您需要转换的数据的基本原理…

medium.com](https://medium.com/swlh/the-data-you-need-to-transform-your-product-analytics-bd1659f9237b) [## 转变产品团队的分析能力:文化

我发展企业组织的产品管理分析和决策文化的经验综合…

medium.com](https://medium.com/swlh/transforming-your-product-teams-analytics-prowess-culture-31fb32798b19)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值