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

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

是什么让一个国家繁荣昌盛?

原文:https://towardsdatascience.com/what-makes-a-country-prosperous-7cc213974bac?source=collection_archive---------0-----------------------

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

今年在立陶宛,有很多关于是否有必要引入累进税以使收入不平等不至于如此严重的讨论(不要问我什么是严重——政治家们又一次没有给出定义)。

但是世界各地都在发生同样的事情——每个人都对收入不平等和税收感到兴奋,并且有很多关于改善每个人而不是少数人生活的讨论正在进行。

虽然收入不平等是一个有点争议的话题(见 1990 年的视频),但我对一个对每个人都很重要的更实际的问题感兴趣——是什么让一个国家繁荣?实际上,它应该读起来更像“是什么让一个国家的公民生活得更好”,这样我们就清楚了,它是关于生活在那里的人们。

真正酷的是,这些天我们有很多数据和很多方法可以随时用来分析它(谢谢熊猫和 Matplotlib!).在数据的帮助下,有可能做出更明智的决策。

让我们开始吃吧。

数据

所以我做了什么?我收集了这个国家各个方面的所有有用的指数,并对它们之间的关系进行了一些数据分析。

我发现有很多有用的索引:

生活质量:

  • 世界幸福报告 —通过结合多项调查和社会因素来衡量幸福(doh)。
  • 人类发展指数——包括预期寿命、教育和人均收入。
  • 社会进步指数——衡量国家满足其公民社会和环境需求的程度。
  • Legatum 繁荣指数(lega tum Prosperity Index)——该排名基于多种因素,包括财富、经济增长、教育、健康、个人幸福和生活质量。
  • 教育指数

这些将有助于确定这个国家的生活质量。最终,这些事情对于一个普通的美国公民来说至关重要。

经济:

  • 做生意——结合多项标准来衡量创业的难易程度。
  • 全球竞争力指数 —通过衡量一系列制度、政策和其他因素,评估国家为其公民提供高水平繁荣的能力。
  • 腐败感知指数 —衡量感知的腐败程度,由专家评估和意见调查确定。请注意,较高的值意味着较低的损坏。
  • 基尼系数 —评估收入最高者和收入最低者之间的差距。
  • 影子经济规模——显示实体经济中没有被政府征税或监控的比例。
  • 政府效率 —获取对公共服务质量的看法。更多此处
  • 研发支出

以上大部分定义了国家的经济环境。创业容易吗?经济有多有效?

此外,还有其他一些或多或少为人所知的指标,例如:

我选择忽略像个人税率和公司税率这样的东西,因为它们在法律中被报道,因为它通常是一个累进税率,只报道其最高税率。世界银行报告的收入、商品和服务的实际税收看起来更好地代表了税收水平。

接下来,我将所有国家放入电子表格中,并不断缩减列表,直到剩下 75 个国家拥有上述所有指数的数据。

这引入了某种偏见,只预先过滤了那些能够跟踪他们生活许多不同方面的国家,但它也有助于消除某些离群值,如专制政权、极度不发达的国家等。

我使用的所有数据都可以在 GDrive 上的这个电子表格中找到。

调查的结果

做好准备面对大量的数字。我认为有必要探索数据的各个方面,以更好地了解不同组件如何相互作用。例如,如果经济以创新产品为基础,可以预期它也是有竞争力的,反之亦然。

分析部分将由 5 部分组成:

  • 税收对经济和繁荣的影响
  • 商业环境对繁荣的影响
  • 政府效率及其影响
  • 对收入不平等的影响
  • 繁荣国家的特征

所有的数字都将是散点图(因为它们很容易理解数据之间的关系),它将包括一个线性回归拟合,以帮助我们更好地衡量这种关系。

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

例如,在上图中,每个点将代表一个国家的 Legatum 繁荣指数值及其对应的全球竞争力指数值。

有时这些回归拟合线可能会产生误导,因此这些数字会在它们上面包含一个数字,即括号中的皮尔逊相关系数及其 P 值(随机结果的可能性)——这与线拟合一起将更好地表示数据之间的关系。

还有一个关于皮尔逊系数的小提示:

  • 0 和 0.3 表示弱线性关系
  • 0.3 和 0.7 表示中度线性关系
  • 0.7 和 1.0 表示强线性关系

赋税

首先,我们将从所得税和资本税说起。

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

从上面可以看出,对社会和经济因素(如经商和社会进步指数)的影响很小(或者说影响的证据很少)。有趣的是,与全球竞争力指数之间存在微弱的正相关性,因此增税会损害企业的说法不一定正确。

企业管理费怎么样?

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

生活质量和商业税率基本没有关系。经济也是如此,尽管这种相关性是负的,而且在《营商环境报告》得分上具有统计学意义。然而,从散点图中我们可以看到,这是非常随机的。

商品及服务税:

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

如果有什么不同的话,似乎消费税对经济有负面影响(GDP 和 GCI ),但对生活质量没有正面影响。

这变得有点奇怪——它可能开始看起来像我们根本不需要税收就能拥有一个繁荣的国家。但是让我们来看看税收占 GDP 的比例:

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

最后,我们有所进展。这将强烈地表明,征收足够的税收来支持基础设施和公民的生活质量,对于一个繁荣和运转良好的国家来说是非常重要的。正如我们将在后面看到的腐败一样,事实可能确实如此,因为更有效地收税比提高税率更重要。

老实说,如果我们从世界银行获取税率数据,它不会显示出如此强的相关性,但它似乎缺少一大块税收,如社会保险。此外,对几个国家的快速复查显示,这里的可用数据看起来比世界银行的数据更真实。

让我们把它提高一个档次,反复强调:

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

没有的证据表明任何更高的上述税率将允许征收更大的预算。显然,不同的机制决定税收收入。

商业环境

让我们来看看全球竞争力指数如何描述该国的生活质量:

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

这是一幅完全不同的画面。我们可以清楚地看到,拥有一个有竞争力且运转良好的经济将在所有指标上带来高质量的生活:

  • 人均国内生产总值
  • 人类发展指数
  • 幸福指数
  • Legatum 繁荣指数
  • 社会进步指数

同样的道理也适用于创新:

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

基于创新的经济比不基于创新的经济有明显的优势。那“做生意”的轻松呢?

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

它讲述了同样的故事——让经营企业变得更容易,人们将会有更高的生活质量。

我们可以看到研发支出的类似效应:

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

在研发上投入更多的国家有望变得更加繁荣,但从散点图来看,这种关系似乎在 3%处趋于平缓。

然而,政府在教育上的支出却不是这样。

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

看到这个我很惊讶。对经济的影响相当轻微。甚至教育指数本身也几乎与支出没有任何关联。

显而易见,政府应该在教育上花费至少 4%的 GDP,但是这个部门似乎效率很低,因为它不能产生更强的关系。

然而,令人欣慰的是,R&D 教和社会进步之间至少存在某种关联:

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

政府效能

政府官员不会喜欢这个:

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

多么令人惊讶——一个运转良好、减少官僚主义的政府将为人民和企业带来更美好的生活。

但这还不是全部。让我们来看看腐败如何影响这个国家:

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

请记住,腐败感知指数的值越高,腐败越少。上面的数字告诉我们,如果这个国家腐败猖獗,这个国家基本上不可能繁荣昌盛,人民也不可能过上好日子。

影子经济非常相似的故事是:

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

这一点和腐败将扼杀任何人均 GDP 高的机会和征收足够税收的希望。人们的生活将会变得更糟,企业将很难经营。从上面我们看到的数据来看,这是毫无疑问的。

不平等

既然这是一个热门话题,让我们来看看基尼系数,以及它是如何受到我们之前分析的方面的影响的。

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

更高的幸福、社会进步和繁荣并不意味着不平等会减少(反之亦然)。令人惊讶的是,更强大的经济与更小的收入不平等相关(人们可能会认为富裕国家的不平等更高)。

税收似乎对收入不平等没有任何影响:

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

这再次强烈表明(记住我们之前从数据中看到的东西)收入不平等与税率无关。

那么是什么影响了不平等呢?

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

这是我们的老朋友:腐败、官僚主义和影子经济。

繁荣国家的其他特征

在挖掘数据时,我注意到了一些其他有趣的事情。我们来看看下图:

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

繁荣的国家不一定勤劳,也不需要任何自然资源。此外,那些仍然停留在农业经济的国家,注定是贫穷的。

现代经济是以服务业为基础的,预计生活在农村地区的人会少得多。

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

此外,富裕国家的出生率远低于贫穷国家。

最后,具有高容忍度和包容性的国家(作为社会进步指数的子指数)比那些不具有高容忍度和包容性的国家做得好得多:

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

结论

显然,在我们得出结论之前,使用一些常识性的思维是很重要的。如果预期寿命与《营商环境报告》的排名呈正相关,这并不意味着寿命越长,营商环境就越好,但很可能恰恰相反——良好的营商环境会支持延长寿命的政策,比如更好的医疗保健。

此外,像竞争性的经济环境和生活质量这样的东西是相互加强的——更好的经济可以带来更高的生活质量,从而可以带来更好的经济效率。

考虑到这一点,一个繁荣国家的主要因素似乎是:

  • 基于创新的经济
  • 高效收税
  • 高效政府
  • 社会进步环境
  • 竞争激烈的商业环境

此外,令人惊讶的是,税率似乎对生活的繁荣影响很小,而对 GDP 征收的税收却有明显的关系。这可能意味着税收政策更多的是关于有效的税收征收和支出方式,而不是税率本身。

此外,合理实施的税收与繁荣相关是有道理的,因为它使政府能够为教育和医疗保健等项目提供资金。

因此,每当有人要说我们需要增加(或减少)税收时,让他们知道这听起来像是一个廉价的把戏。相反,重点应该放在以下方面:

  • 让创业变得更加容易
  • 提高税收的效率和透明度
  • 减少官僚作风
  • 将亲信绳之以法

最后,如果你认为有错误(当然有可能),请提供你的数据和结果。

我感谢:

  • Tautvydas Misiū nas 和 Andrius Zaveckas 对此进行了审查
  • 马克·亚当·哈罗德与撒切尔的精彩视频

是什么让数据科学家变得有价值?

原文:https://towardsdatascience.com/what-makes-a-data-scientist-valuable-b723e6e814aa?source=collection_archive---------15-----------------------

学习如何增加自己的薪酬。从 2018 年 Kaggle ML & DS 调查中摘录的 124 条注意事项。

有没有想过应该做些什么来增加你的数据科学简历的份量?我们中的许多人已经很好地理解了什么是建立强大的数据科学职业生涯和增加薪酬的重要因素。就我个人而言,我从未见过系统的、基于数据的方法来解决这个问题。这就是建立一个模型来解释数据科学家对市场的价值的动机。有些结果是显而易见的,但其他许多结果可能真的会帮助你增加收入。

点击此处,计算您年收入超过 10 万美元的概率

根据数据估算薪酬

我们只能进行这种研究,因为 Kaggle 发布了来自第二次年度机器学习和数据科学调查的数据。该调查于 2018 年 10 月进行了为期一周的直播,共收到 23859 份回复。结果包括谁在处理数据的原始数据,不同行业的机器学习情况,以及新数据科学家进入该领域的最佳方式。

有了这些数据,我们想了解是什么影响了 Kaggler 的薪酬*(我们称 Kaggler 为回答调查的任何人)*。我们的想法是让你准确了解什么对市场更有价值,这样你就可以停止在没有良好投资回报(ROI)的事情上花费时间,并加快实现更高的薪酬。根据这些从数据中提取的见解,我希望有一天你会发现自己像 Babineaux 先生一样躺在一堆钱上。

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

Huel Babineaux, character from Breaking Bad/Better Call Saul. Credits: AMC

点击此处访问完整的研究报告,代码可复制

在进入模型本身之前,我们先做一些基本的探索性数据分析。首先让我们看看每个回答者的收入。

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

Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

工资在较低的范围内累积(每年高达 1 万美元),在 10 万美元左右出现另一个高峰。有很多学生回答了这个调查,让我们看看他们挣多少钱?

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

Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

不出所料,学生挣得没那么多,因为他们还没有工作。有了这些信息,我们可以从我们的数据中剔除学生,并定义收入最高的 20%的 Kagglers 挣多少钱。

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

Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

根据这些数据,我们将建模的目标变量定义如下:

我们将计算卡格勒年收入超过 10 万美元的概率。

数据科学中的性别失衡

在继续讨论模型本身之前,我只想让你知道,收入最高的 20%的人的工资存在性别失衡,但收入最低的 80%的人的工资几乎相同。这意味着担任领导职务的男性比女性的工资高。见下表:

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

Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

你可以在这里看到完整的 EDA。

预测模型

为了建立这个模型,我们从 50 个问题中的 29 个问题中提取了可以解释高工资的特征。这些问题总共产生了 138 个特征。在一些数据清理之后,我们运行了逻辑回归和随机森林模型。

评估后,逻辑回归表现更好。该模型还具有提取特征系数的优点。这有助于了解每个功能如何影响最终结果(收入最高的前 20%)。我们做了欠采样、交叉验证和网格搜索,所有代码都可供检查在这里

下面我们展示了模型在测试数据上的表现以及前 20%和后 80%组的分数分布。

### -- ### -- LogisticRegression -- ### -- ###
**MODEL PERFORMANCE ON TEST DATA****Accuracy:**  0.8167438271604939
**AUC: ** 0.8963917030007695**Confusion Matrix: ** 
[[1817  411]
 [  64  300]]**Type 1 error:**  0.18447037701974867
**Type 2 error:**  0.17582417582417584

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

Model performance: prediction scores for Top 20% most paid and to Bottom 80%. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

增加收入的方法

在特征选择之后,我们的模型总共有 124 个特征。从它们的系数中,我们可以得出一些想法,可能会帮助你找到你的钱堆。

我们模型的截距是 0。这意味着每个人都从 0 分开始。然后,根据你对每个问题的回答,你可以在你的分数上加减“分”。

  • **正系数:**如果系数为正,意味着一个肯定的答案增加了属于前 20%的机会。
  • **负系数:**如果系数为负,那么正答案会降低属于前 20%的概率。

**要点:**要有积极向上的态度。不要做消极的事情。

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

成为一名学生可能会带来挫败感和较低的薪水。出去找份工作!成为一名数据科学家是一个伟大的想法,但软件工程师赚得更多。为什么不成为一名 B 型数据科学家,并将模型部署到生产中呢?

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

如果你想发财,就从学术/教育上跑。在 EDA 的完整研究中,你会看到与其他行业相比,学术/教育行业的平均薪酬最低,这一点得到了模型系数的证实。数据科学未来最重要的领域之一是工资最低的领域,这让我很难过。如果你想挣得更多,那么在计算机/技术行业工作会增加你成为收入最高的前 20%的可能性。

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

显然,随着你越来越有经验,预计你会挣得更多。现实一点,仅仅有 2 年的经验,你是不可能进入前 20%的。

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

当涉及到活动时,尝试构建原型或机器学习服务。探索 ML 在新领域的应用,并利用它来改进您的产品或工作流程,是接近年收入超过 10 万美元的方法。

另一方面,如果你工作的一个重要部分是做商业智能,分析和理解数据,以影响产品或商业决策,那么你应该期待赚得更少。如果您运行数据基础架构,情况也是如此。

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

使用云计算服务!习惯 AWS,或其他领先的云提供商,如谷歌或微软。

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

有一些机器学习框架可能会增加你的市场价值。学习和使用 SparkMLlib、Xgboost 和 TensorFlow 会为你的简历增色不少。

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

当谈到可能会增加你的薪酬的数据类型时,尝试学习时间序列和地理空间数据并从中获得经验。每个人都与数字数据打交道,所以学习基础知识,然后学习更高级的数据类型,如果你想在工资支票上有好消息的话。

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

Model coefficients. Data: Second Annual Machine Learning and Data Science Survey by Kaggle. Chart: Author

你知道如何做扰动重要性或情绪分析吗?如果你没有,那么是时候学习了。我希望这篇文章能给你一些关于模范生考试的提示。

要查看更多的结果和想法请查看 Kaggle 上的公共内核。在这里,我们给出了 124 个提示,帮助你在数据科学工作中找到你的钱。

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

也许有一天我们会发现自己躺在一堆钱上。但不像巴比诺先生,这将是我们的钱。这将是合法的。

对这篇文章有什么想法吗?

如果你有任何批评或建议来改进这个分析,请告诉我!

是什么让一首歌变得可爱?

原文:https://towardsdatascience.com/what-makes-a-song-likeable-dbfdb7abe404?source=collection_archive---------8-----------------------

使用数据可视化分析 Spotify 的 2017 年热门曲目

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

Photo by Heidi Sandstrom. on Unsplash

关于音乐选择是主观还是客观的争论由来已久。有些人,像杰克·弗莱明在他的观点专栏中,站在了客观的一方,说“在音乐分析中使用主观性会使其变得不重要。”他接着说,像其他艺术形式一样,我们也需要对音乐有一个判断的基础。在文章 音乐中的客观性与主观性:最终指南和解决方案 中,作者“致癌论者”试图给出一个平衡的观点,认为两种观点都有其优点和缺点。他提出了一个理论,“事实是,客观性和主观性是相互关联的,可能存在于一个光谱上”。主观性几乎不可能分析。但是如果从等式中去掉主观性,所有的艺术价值都可以被理性地剖析。

但是我想分析一首歌的另一个方面——流行度。不管歌曲的质量如何,也不管作曲和演奏的天赋如何,几乎不可能知道是什么让一首歌流行起来。作为一个音乐人,我一直很好奇到底是什么让一首歌受到大众的喜爱。为了找到答案,我决定使用数据可视化来寻找 Spotify 策划的 2017 年热门曲目列表中的模式和趋势。

Spotify 是当今领先的音乐流媒体应用程序之一,截至 2018 年 6 月,拥有超过 8300 万付费订户。他们根据用户播放歌曲的次数编制了一份年度排行榜。

Spotify 音频功能

对于他们平台上的每首歌曲,Spotify 都提供了十三个音频功能的数据。Spotify**Web API 开发者指南 对它们的定义如下:

  • **可跳舞性:**根据音乐元素的组合,包括速度、节奏稳定性、节拍强度和整体规律性,描述一首曲目是否适合跳舞。
  • **价:**描述一首曲目所传达的音乐积极性。高价曲目听起来更积极(例如,快乐、愉快、欣快),而低价曲目听起来更消极(例如,悲伤、沮丧、愤怒)。
  • **能量:**代表强度和活动的感知度量。通常,高能轨道感觉起来很快,很响,很嘈杂。例如,死亡金属具有高能量,而巴赫前奏曲在音阶上得分较低。
  • **速度:**轨道的整体估计速度,单位为每分钟节拍数(BPM)。在音乐术语中,速度是给定作品的速度或节奏,直接来源于平均节拍持续时间。
  • **响度:**一个音轨的整体响度,单位为分贝(dB)。响度值是整个轨道的平均值,可用于比较轨道的相对响度。
  • **语音:**检测音轨中是否存在语音。越是类似语音的录音(例如脱口秀、有声读物、诗歌),属性值就越接近 1.0。
  • **乐器性:**预测音轨是否不包含人声。“Ooh”和“aah”在这种情况下被视为乐器。Rap 或口语词轨道明显是“有声的”。
  • **活跃度:**检测录像中是否有观众。较高的活跃度值表示音轨被现场执行的概率增加。
  • **声学:**从 0.0 到 1.0 的音轨是否声学的置信度度量。
  • Key: 估计的音轨整体 Key。整数映射到使用标准音高等级符号的音高。例如,0 = C,1 = C♯/D♭,2 = D,等等。
  • **调式:**表示音轨的调式(大调或小调),音阶的类型,其旋律内容来源于此。大调用 1 表示,小调用 0 表示。
  • **持续时间:**以毫秒为单位的音轨持续时间。
  • **拍号:**一个音轨的估计整体拍号。拍号(拍子)是一种符号约定,用于指定每个小节(或小节)中有多少拍。

数据集

我发现,我需要从 Spotify 获得的数据已经可以在 Kaggle 上作为数据集获得,由 Nadin Tamer 撰写的“2017顶级 Spotify 曲目”。我检查了数据,发现它已经被清理,没有验证错误。它缺少一个用于歌曲排名的字段,这是我添加的。

初始探索

在上述参数中,Mode 是二进制值 1 或 0,表示音轨的模态(大调或小调),Key 是绝对整数值,表示歌曲的音阶(C =0,C# = 1,等等)。)因此,我保留了这 2 个参数,并用剩余的 11 个参数创建了散点图矩阵。

我创建散点图矩阵有两个主要目的:

  1. 看看参数之间有没有关系。
  2. 找到明显的趋势和模式,以便更好地确定重点领域。

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

Scatterplot matrix of the Audio Feature parameters

散点图中的一些观察结果如下:

  • 拍号——几乎所有的歌曲似乎都有一个共同的 4/4 拍号。因此,我不再考虑这个参数。
  • 乐器性—大多数歌曲的值似乎接近或等于 0。再次删除参数。
  • 能量和响度似乎成正比。
  • 价似乎与可跳性、能量和响度成正比。

根据 API 指南中的参数定义,速度和响度似乎是低级参数,用于计算其他高级参数,如价、能量和可跳舞性。因此,为了减少类似的参数,我将在接下来的步骤中忽略速度和响度。我也放弃了持续时间参数,因为大多数曲目似乎都在 200 秒或 3:20 分钟左右。

初始草图

现在我只剩下六个参数,我勾画了一些探索如何理解数据的方法,如密度图或绘制每个参数相对于等级的变化。但是这些都不能产生吸引人的视觉效果,以吸引人的方式向观众传达信息。

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

当我在寻找表示多个参数的方法时,我想起了雷达图

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

它们简单易懂,一眼就能看出所有六个参数。这正是我所需要的!

实现

我最初在 Tableau 上实现它,但它看起来很无聊。视觉吸引力是我的项目的一个重要方面。因此,当我在网上搜索不仅实现雷达图,而且以一种漂亮的方式实现它的方法时,我偶然发现了 Nadieh Bremer 的博客 Visual Cinnamon 和她的关于她重新设计 D3 的雷达图的文章,我知道就是它了!在麻省理工学院的许可下,她的重新设计的实施细节可以在 http://bl.ocks.org/nbremer/21746a9668ffdf6d8242 找到。

这篇博文是 2015 年的,因此代码是针对更老版本的 D3.js(v3)的。我以前涉猎过 Javascript,但对 D3 完全陌生,所以更新 API 和让代码在 v5 上工作需要一些争论。我还不得不花一些时间格式化数据。

我把它设置成从排名 1 到 100 一次显示一首歌。第一眼的时间到了…

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

既然图表完全按照我想要的方式工作,是时候用它来引出一些见解了。为了做到这一点,我决定看看如果我重叠多首歌曲来寻找参数的趋势会发生什么。为了防止过度拥挤,我从排名前 10 的歌曲开始。

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

见解

你已经可以开始看到前 10 首歌曲中出现的模式:

  • 前 10 名歌曲的可舞性都很高(60%以上)!
  • 除了排名第一的歌曲(Shape of You),其他所有歌曲的音质都很低。
  • 所有前 10 名的歌曲都缺乏活力和语音,也就是说,所有的歌曲都是录音版本,只有很少的部分是语音多音乐少。
  • 所有的歌曲都是相当中高能量的(40-80%)
  • 化合价相当分散。

P.S. Medium 仅支持图像,因此是 gif。请点击此处查看实际的互动可视化效果。

为了对此进行扩展,我还创建了一种方法来查看从排名 1 到 100 的 10 人组:

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

最终见解

  • 除了少数例外,总体而言,可跳舞性似乎仍有很高的价值。
  • 现在我们可以看到更多音质更好的歌曲。但仍不超过 60–70%左右。
  • 活跃度和语速仍然一致很低。
  • 能量似乎仍处于中高水平。
  • 化合价仍然相当分散,但总体上看起来在中高级区域更为普遍。

结论

想做一首热门歌曲?为了增加你的机会,让它成为一个高能量,电子,舞蹈号码!保持一个简单的 4/4 拍号,不需要把事情复杂化。尝试将歌曲的持续时间保持在最佳的 3:20 分钟左右。确保它是在录音室录制的,而不是现场的,在你的歌曲中有声音,但不要太“言语化”,并且不会伤害到它的高价,即快乐,愉快,和/或欣快。

你可以在这里 查看最终的交互可视化

非常,非常感谢Karthik Badam给予的所有指导和支持,并感谢Nadieh Bremer为她与 D3.js. 的精彩而富有洞察力和鼓舞人心的工作,没有他们就不可能有这个项目!

是什么成就了一次成功的 Kickstarter 活动?

原文:https://towardsdatascience.com/what-makes-a-successful-kickstarter-campaign-ad36fb3eaf69?source=collection_archive---------2-----------------------

分析 2000 多个众筹项目的主要发现

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

Image from DepositPhotos

自 2009 年以来,众筹一直是企业家和个人测试他们的想法、提高意识和为他们的项目获得初始资金的热门选择。紧随大萧条之后,像 Kickstarter 和 Indiegogo 这样的公司已经进行了国际扩张,并实现了数亿美元的估值。

仅 Kickstarter 就支持了超过 130,000 个项目,捐款总额超过 1,000,000 美元 3B。

我很想知道最成功的活动有哪些特征,并希望应用我在学校学到的一些数据科学技术,所以今年夏天我分析了 2000 多个 Kickstarter 活动,并建立了一个模型来预测特定活动是否会成功。

我从 Kaggle 的 Kickstarter 数据集开始,添加了一些额外的功能,将一个活动的标题/广告词与 4000 个最成功的活动的标题/广告词进行比较。

以下是我在分析中发现的一些有趣的事情:

最受支持的活动

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

Most common words used in the descriptions of the 4000 Most Backed Campaigns

在最受支持的活动中,最常用的词是游戏、世界、新、设计和制造。然而,事实证明,成功和失败的竞选活动都频繁使用这些词,所以竞选活动描述的内容并不能很好地预测竞选活动的成功。

类别对比

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

成功率最高的 5 个类别是漫画、戏剧、舞蹈、音乐和设计。食品、时尚、技术、工艺和新闻是最不成功的类别。我注意到,比较成功的类别通常是容易与他人分享的东西(如舞蹈或音乐),而不太成功的类别通常更难分享。

预测竞选成功

我构建的最准确的模型,在 75%的情况下正确预测了营销活动的成功,使用了以下功能(按重要性排序):

  1. 项目负责人之前支持的活动数量(与活动成功正相关)
  2. 活动简介中的图片数量(与活动成功正相关)
  3. 资金目标(与活动成功负相关)
  4. 类别(相关性取决于特定的类别)
  5. 活动持续时间(与活动成功负相关)
  6. 项目负责人之前创建的活动数量(与活动成功正相关)
  7. 项目合作者数量(与活动成功正相关)
  8. 活动标题的长度(与活动成功负相关)
  9. 标题中与 4000 个最受支持的活动匹配的字数(与活动成功负相关)

这些结果确实加强了 Kickstarter 的社区方面,因为活动成功的最佳预测因素是用户捐赠的活动数量。不出所料,如果你过去发起过 Kickstarter 活动,你更有可能成功。

除了这个模型,我还开发了一个 web 应用程序,让人们可以输入关于他们竞选活动的信息,并获得关于竞选是否会成功的预测,以及提高他们胜算的建议。你可以去 https://nbenavides.shinyapps.io/kickstarter/的看看。

是什么让 LightGBM 快如闪电?

原文:https://towardsdatascience.com/what-makes-lightgbm-lightning-fast-a27cf0d9785e?source=collection_archive---------4-----------------------

理解戈斯和 EFB:light GBM 的核心支柱

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

Source : http://arogozhnikov.github.io/2016/06/24/gradient_boosting_explained.html

该员额的结构如下:

1.GBM 基础。

2.GBM 的计算瓶颈。

3.LightGBM 对这些瓶颈的优化

GBM 基础——梯度下降、升压和 GBDT。

什么是梯度下降?

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

Gradient descent graph : Example of working with the gradient descent method

这是一种优化技术,通过以固定步长跟随斜率来降低损失函数。

什么是助推?

Boosting 是一种顺序集成技术,其中难以分类的实例被赋予更多的权重。这实质上意味着后续的学习者将更加重视学习错误分类的数据实例。最终模型将是 n 个弱学习者的加权平均值。

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

https://quantdare.com/what-is-the-difference-between-bagging-and-boosting/

随后的学习者更加重视训练不足/错误分类的样本。点大小的变化代表了赋予该实例的权重。点的大小越大,分配给它的权重就越大。请注意,所有模型都是连续的。

什么是 GBDT?

GBDT(Gradient Boosting Decision Tree)是一种顺序训练的决策树的集成模型(即 Boosting 的集成模型)。在每次迭代中,GBDT 通过拟合残差(到当前迭代为止的误差)来学习决策树。这意味着每个随后的学习者试图学习实际输出和预测的加权和之间的差异,直到迭代之前。使用梯度法可以使误差最小化。

这就把我们带到了文章的第二部分。GBDT 最昂贵的操作是训练决策树,最耗时的任务是寻找最佳分裂点。

什么是拆分点?

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

Source : https://machinelearningmastery.com/classification-and-regression-trees-for-machine-learning/

分割点是特征值,取决于在树节点上分割的数据。在上面的例子中,数据分割发生在节点 1 的高度(180)和节点 2 的重量(80)。基于信息增益从候选分裂池中选择最佳分裂。换句话说,选择具有最大信息增益的分裂点。

最佳分割点是如何产生的?

分裂查找算法用于查找候选分裂。
最流行的分裂查找算法之一是 预排序算法 ,它列举了预排序值上所有可能的分裂点。这种方法很简单,但是在计算能力和内存方面效率很低。
第二种方法是基于 直方图的算法 ,该算法在训练期间将连续的特征桶入离散的箱中以构建特征直方图。直方图构建的开销为 O(#data * #feature),分裂点查找的开销为 O(#bin * #feature)。由于 bin < <数据直方图的建立将支配计算的复杂性。

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

Binning example : Binning has greatly reduced the number of candidate splits

与使用 GBM 的 sklearn 相比,LightGBM 和 xgboost 都使用基于直方图的分裂查找(这是它速度慢的原因之一)。让我们从这篇文章的症结开始

是什么让 LightGBM 与众不同?

LightGBM 旨在通过使用 【高斯】EFB 对数据和特征进行下采样来降低直方图构建的复杂度。 这将降低 (O(data2 * bundles)) 的复杂度,其中 data2 <数据和 bundles < <特性

高斯是什么?

GOSS(Gradient Based One Side Sampling)是一种基于梯度对样本进行下采样的新型采样方法。正如我们所知,梯度小的实例训练良好(训练误差小),梯度大的实例训练不足。一种简单的下采样方法是通过只关注具有大梯度的实例来丢弃具有小梯度的实例,但是这将改变数据分布。简而言之,GOSS 保留具有大梯度的实例,同时对具有小梯度的实例执行随机采样。

  1. 高斯计算的直观步骤
    1
    根据绝对梯度以降序对实例进行排序
    2。选择前 a * 100%个实例。【欠训练/大梯度】
    3。从其余数据中随机抽取 b * 100%的实例。这将通过因子 b ( b < 1 )
    4 减少训练有素的例子的贡献。没有点 3,具有小梯度的样本计数将是 1-a(目前是 b)。为了保持原始分布光,GBM 通过常数(1-a)/b 放大具有小梯度的样本的贡献,以将更多焦点放在训练不足的实例上。这将更多的注意力放在训练不足的实例上,而不会改变太多的数据分布。

2。 形式算法为戈斯

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

Algorithm 2 from the original paper

什么是 EFB(独家功能捆绑)?

记住直方图构建需要 O(#data * #feature)。如果我们能够向下采样#特性,我们将加快树学习。LightGBM 通过将特性捆绑在一起来实现这一点。我们通常处理高维数据。这种数据有许多相互排斥的特征,即它们从不同时取零值。LightGBM 安全地识别这样的特征,并将它们捆绑成单个特征,以将复杂度降低到 O(#data * #bundle) 其中#bundle < < #feature。

EFB 的第 1 部分:识别可以捆绑在一起的特性

创建功能包的直观说明

  1. 构建一个带加权边(衡量要素间冲突的标准)的图。冲突是具有重叠非零值的排他性特征的比例的度量。
  2. 按非零实例数降序对要素进行排序。
  3. 遍历特征的有序列表,并将该特征分配给现有束(如果冲突< threshold) or create a new bundle (if conflict >阈值)。

捆绑特性的形式化算法

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

Algorithm 3 from the official paper

EFB 第二部分:特征合并算法

我们将通过一个例子来理解合并特征背后的直觉。但在此之前,让我们先回答以下问题:

EFB 在实现什么?

EFB 正在合并这些功能,以降低训练的复杂性。为了保持合并的可逆性,我们将把独有的特征保存在不同的容器中。

合并的例子

在下面的示例中,您可以看到功能 1 和功能 2 是互斥的。为了实现不重叠的桶,我们增加了特征 1 到特征 2 的包大小。这确保了捆绑特征(特征 1 和特征 2)的非零数据点位于不同的桶中。在 feature_bundle 中,存储桶 1 到 4 包含 feature1 的非零实例,存储桶 5、6 包含 feature2 的非零实例。

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

合并特征的直观说明

  1. 计算要添加到特征包中每个特征的偏移量。
  2. 迭代每个数据实例和特征。
  3. 对于所有特性都为零的情况,将新桶初始化为零。
  4. 通过将各自的偏移量添加到该特征的原始桶中,为特征的每个非零实例计算新桶。

特征合并的形式算法

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

Algorithm 4 from the official paper

至此,我们已经涵盖了原始论文中提出的大多数优化。我希望这篇文章能让你对 LightGBM 库的核心概念有所了解。至此,我完成了写博客的第一次尝试。请在下面分享您的想法、反馈或建议。

参考文献

  1. https://papers . nips . cc/paper/6907-light GBM-a-high-efficient-gradient-boosting-decision-tree . pdf
  2. https://quant dare . com/bagging-and-boosting 的区别是什么/
  3. http://ml explained . com/2018/01/05/light GBM-and-xgboost-explained/
  4. https://github.com/Microsoft/LightGBM

重要的不是衡量

原文:https://towardsdatascience.com/what-matters-isnt-measured-dacf77f1a0a7?source=collection_archive---------10-----------------------

我们衡量什么很重要
重要的是我们衡量什么……或者说,重要的是我们能够衡量的是被衡量的。我们衡量的东西决定了什么是重要的。如果重要的东西不能被衡量,我们使用代理,然后成为重要的东西。
重要与我们衡量它的能力相关:我们做得有多好?我们达到目标了吗?我们如何达到标准?
我们怎么回事?

你必须这么高才能骑…

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

Ways we measure up. Collage images from (counterclockwise from top) Daniel Oines, Google Finance, Nancy L. Stockdale, and Jaime

这些措施旨在客观地反映事实。
4 绝对大于 3。10 比 7 多。
4.0 比 3.6 好……看尺度或者范围。这不是绝对的,而是由易犯错误的人和他们的选择性感知选择的。

度量并不代表全部事实,而是其中的一部分。对真相的不完整描述。

衡量是有帮助的,但不是绝对的。尤其是在人类负责制定衡量标准的时候。只要人类参与其中,总会有一些主观因素,比如他们选择什么作为他们的标准。

我写这封信是因为我关心我们已经放弃了多少权力给那些易错的数字和衡量价值、成功和价值的标准。我担心我们遗漏了描绘不同画面的替代措施。数据科学、大数据、人工智能风靡一时,然而,我们的社会缺乏基本的数据素养——关于数据能做什么和不能做什么的关键区别——最终(并迅速)会咬我们的屁股。我写作是因为数据并不可怕,它和收集(或编写)它的人一样容易出错……但这并不意味着我们不应该使用它。

我写这篇文章是因为我希望我们在采矿时要有意识,用数据来衡量自己。

我们衡量的东西很重要

我感到很幸运,在我的职业生涯中发现了如此多的数据失误。我感到幸运的是,我对数字绝对优势的谬论有着发自内心的了解;跨部门,跨意图,跨国家。这是我个人最喜欢的一个例子:

几年前,我在印度帮助一个新生的非营利组织为捐赠者评估业绩。达到目标是确保业务资金持续流动的重要途径。任务很明确:帮助农民合作社组织起来,并与主要制造商谈判合同。例如,我们会教导一群种植番茄的农民提高作物的质量和产量,或者帮助他们与当地番茄酱生产商谈判供货合同,从而为农民提供稳定的收入,为生产商提供稳定的原材料。双赢!

要求我们报告的一些指标似乎很直接:接触到的农民家庭数量、举办的研讨会数量、每次研讨会的平均出席人数、有多少农民参加了多次研讨会。其他人感到虚幻:种子的平均价格,农业设备的平均价格,或者受影响社区的女性识字率。

有些措施感觉不可能准确收集。比如食物腐败率逐年下降。捐助者实际上是想知道我们是否鼓励使用冷藏车将集体的产品运送给制造商。但他们问的不是这个。他们要求一个在年度报告中和对其他基金会和捐赠者来说听起来更性感的数字。“呜!你看到今年我们糟蹋的食物少了多少了吗!”

预期结果的形成方式极大地改变了信息的收集方式。那么,我应该给那个农民一个拍纸簿和一张纸,让他数一数在去工厂的路上有多少西红柿坏了?这不是我们所提供的正确衡量标准,我认为这甚至不能很好地衡量我们所产生的有益影响。

作为一个题外话(希望是另一篇文章的主题),非营利组织与捐助者和整个社会的这种有害关系,在这种关系中,非营利组织被认为是低效、腐败和管理不善的,这使得第三部门失去了权力,心灰意冷,并陷入了永久的匮乏对话中。使命和价值观可以吸引最优秀和最聪明的人,但这些组织很难留住他们,让许多人筋疲力尽,因为我们,社会,这些人从他们提供公共产品的努力中获得了最大的利益,如安全的街道,医疗保健和教育——坦率地说——有时像对待狗屎一样对待他们。

也许,不是作为一个题外话,是因为我们用错误的标准来衡量他们。

我们的感知限制了我们可以测量的范围

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

Before and after a shift in perspective. Part of the “Our Senses” exhibit at the Natural History Museum in NYC

数字是一个方便的抽象概念——但是通过以更短的形式映射复杂性,我们错过了细微的差别。在我们无休止地追求任意“价值”的过程中,我们把自己客体化了,把我们所做的工作和我们为他人所做的贡献客体化了,我们正在走向社会、经济和生态的毁灭。很可能不是过度夸张。

但是如果我们没有用正确的标准来衡量自己和他人呢?如果我们没有更合适的测量方法,因为我们还没有找到一种方法来计算对品质的感知,如:爱、同情、宽恕、怜悯、慷慨、感激,以及无数其他我们还没有找到方法来评价或测量的价值。

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

“We can only sense a tiny fraction of the information around us…” What more are we missing? Part of the “Our Senses” exhibit at the Natural History Museum in NYC

同样,我们已经建立了工具来帮助我们在可见光光谱之外,或者在我们的听觉范围之外感知、构想和测量,所以我们也可能不得不发现、重新想象或重新解释对我们来说重要的替代措施。

它始于接受我们认为是真理的标准并不总是看起来那样。

让你的测量变得重要。让你衡量的东西变得重要…因为它很重要,我在某种程度上

在不平衡数据集上评估模型应该使用什么指标?(精确度+召回率或 ROC=TPR+FPR)

原文:https://towardsdatascience.com/what-metrics-should-we-use-on-imbalanced-data-set-precision-recall-roc-e2e79252aeba?source=collection_archive---------0-----------------------

我一直认为度量的主题有点令人困惑,特别是当数据集不平衡时(这在我们的常见问题中经常发生)。为了澄清一些事情,我决定用不同类型的指标测试几个简单的不平衡数据集的例子,看看哪个更正确地反映了模型性能——ROC 曲线指标——TPR 和 FPR 或精度或召回。

定义

所以让我们从提醒自己这些定义开始。

ROC 曲线中我们看:
TPR(真阳性率)= #真阳性/ #阳性=召回= TP / (TP+FN)
FPR(假阳性率)= #假阳性/ #阴性= FP / (FP+TN)

这里我们将关注单点的 TPR(真阳性率)和 FPR(假阳性率)(这将表明由 TPR 和 FPR 通过各种概率阈值组成的 ROC 曲线的总体表现)。

精度和召回率分别是:
精度=#真阳性/ #预测阳性= TP/(TP+FP)
召回= #真阳性/ #阳性= TP / (TP+FN)

有什么区别?

召回率和真阳性率(TPR)是完全一样的。所以区别在于精度和假阳性率。

这两种度量的主要区别在于,精度分母包含假阳性,而假阳性率分母包含真阴性。【precision 衡量分类为阳性的样本实际为阳性的概率,而假阳性率衡量阴性样本中假阳性的比率。

如果有大量阴性样本,精确度可能会更高

如果阴性样本的数量非常大(也称为不平衡数据集),假阳性率增加得更慢。因为真正的负值(在 fpr 分母中— (FP+TN))可能会非常高,使这个度量变小。
但是,Precision 不受大量阴性样本的影响,因为它测量预测为阳性的样本中真正阳性的样本数(TP+FP)。

精度在正类中比在负类中更受关注,它实际上测量正确检测正值的概率,而 FPR 和 TPR (ROC 度量)测量区分类的能力

例子

这些例子只是用直观的图像来说明这些指标的一种方式。

为了可视化的目的,这里有一个简单的函数,它画出了一个给定模型的决策区域。

**def plot_model_boundaries**(model, xmin=0, xmax=1.5, ymin=0, ymax=1.5, npoints=40):
    xx = np.linspace(xmin, xmax, npoints)
    yy = np.linspace(ymin, ymax, npoints)
    xv, yv = np.meshgrid(xx, yy)
    xv, yv = xv.flatten(), yv.flatten()
    labels = model.predict(np.c_[xv,yv])
    plt.scatter(xv[labels==1],yv[labels==1],color='r', alpha=0.02, marker='o', s=300)
    plt.scatter(xv[labels==0],yv[labels==0],color='b', alpha=0.02, marker='o', s=300)
    plt.ylim([xmin, xmax])
    plt.xlim([ymin, ymax])

我创建了一个非常简单的数据集(10 个点),并训练了一个线性 SVM 模型。下图是数据集和模型的完美决策区域。

**from** matplotlib **import** pyplot **as** plt
**from** sklearn.svm **import** LinearSVC
**from** sklearn.metrics **import** precision_score, recall_score, roc_curvenp.random.seed(1)
x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 0.8*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
y = np.concatenate([np.ones(9), np.zeros(1)])
model = LinearSVC()
model.fit(x,y)
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=1.5, ymin=0, ymax=1.5)
plt.scatter(x[y==0,0],x[y==0,1], color='b')
plt.scatter(x[y==1,0],x[y==1,1], color='r');
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title("precision = {}, recall = {}, fpr = {}, tpr = {}".format(
    precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[0], tpr[0]));

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

My simple data set and the model decision region

示例#1 —大多数阳性样本和—所有阳性样本都被检测到,但也有假阳性— ROC 是更好的度量

我们在测试数据集中有 10 个样本。9 个样本为阳性,1 个为阴性。

正如我们之前看到的——在完美模型的情况下,所有指标都是完美的,但现在我们来看一个天真的模型,它预测一切都是积极的。

在这种情况下我们的基本度量是: **TP = 9,FP = 1,TN = 0,FN = 0。**然后我们可以计算高级指标:

精度 = TP/(TP+FP) = 0.9,召回 = TP/(TP+FN)= 1.0。在这种情况下,准确率和召回率都很高,但是我们有一个很差的分类器。

TPR = TP/(TP+FN) = 1.0, FPR = FP/(FP+TN) = 1.0。
因为 FPR 很高,我们可以识别出这不是一个好的分类器。

np.random.seed(1)
x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 1.2*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
y = np.concatenate([np.ones(9), np.zeros(1)])
model = LinearSVC()
model.fit(x,y)
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=1.5, ymin=0, ymax=1.5)
plt.scatter(x[y==0,0],x[y==0,1], color='b')
plt.scatter(x[y==1,0],x[y==1,1], color='r');
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title("precision = {}, recall = {}, fpr = {}, tpr = {}".format(
    precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[1], tpr[1])); 

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

The classifier predicts all the labels as positive

示例# 1—具有相反标签的相同数据集—两个指标都为 0,因为没有“检测”

现在,我们交换标签——9 个样本是阴性,1 个是阳性。我们有一个预测一切负面的模型。我们现在的基本度量是: TP = 0,FP = 0,TN = 9,FN = 1。因为没有真阳性和假阳性,所以高级指标都是零。

np.random.seed(1)
x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 1.2*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
y = np.concatenate([np.zeros(9), np.ones(1)])
model = LinearSVC()
model.fit(x,y)
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=1.5, ymin=0, ymax=1.5)
plt.scatter(x[y==0,0],x[y==0,1], color='b')
plt.scatter(x[y==1,0],x[y==1,1], color='r');
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title("precision = {}, recall = {}, fpr = {}, tpr = {}".format(
    precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[0], tpr[0]));

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

The classifier predicts all the labels as negatives so all the metrics are zeros

示例 2 —大多数阳性样本—所有阳性样本都被检测到,但也有假阳性— ROC 是一个更好的指标

该示例类似于示例#1,并且显示了基本相同的内容。
在这种情况下,8 个样本为阳性,2 个为阴性。
该模型预测 9 个样品为阳性(8 个真阳性和 1 个阴性),1 个为阴性。
基本度量是: TP = 8,FP = 1,TN = 1,FN = 0。

高级指标包括:

精度= TP/(TP+FP) = 8/9 = 0.89,召回率= TP/(TP+FN)= 1。 准确率和召回率都很高,因为在正类上表现不错。

TPR = TP/(TP+FN) = 1,FPR = FP/(FP+TN) = 1/2 = 0.5。 假阳性率是 0.5,这是相当高的,因为我们在两个阴性中有 1 个假阳性——这是很多的!请注意,高 FPR 实际上与负面类别的低回忆是一回事。

x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 0.9*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
y = np.concatenate([np.zeros(1), np.ones(8), np.zeros(1)])
model = LinearSVC()
model.fit(x,y)
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=2, ymin=0, ymax=2)
plt.scatter(x[y==0,0],x[y==0,1], color='b')
plt.scatter(x[y==1,0],x[y==1,1], color='r');
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title("precision = {:.2f}, recall = {}, fpr = {}, tpr = {}".format(
    precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[1], tpr[1]));

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

One negative sample is classified correctly as negative and the other is classified as positive — this caused a small decrease in precision and a relatively high value in FPR

示例 2 —相反的标签—在这种情况下,两个指标是相同的

现在 8 个样本为阴性,2 个为阳性。我们有一个模型,除了一个阳性样本(实际上是阳性的)之外,它预测了所有的阴性样本。
基本度量是:TP = 1,FP = 0,TN = 8,FN = 1。

高级指标包括:

精度= TP/(TP+FP) = 1,召回率= TP/(TP+FN)= 1/(1+1) = 0.5。
TPR = TP/(TP+FN) = 1/2 = 0.5,FPR = FP/(FP+TN) = 0。

在这种情况下,两个指标给出了相同的信息。

x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 0.9*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
y = np.concatenate([np.ones(1), np.zeros(8), np.ones(1)])
model = LinearSVC()
model.fit(x,y)
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=2, ymin=0, ymax=2)
plt.scatter(x[y==0,0],x[y==0,1], color=’b’)
plt.scatter(x[y==1,0],x[y==1,1], color=’r’);
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title(“precision = {:.2f}, recall = {}, fpr = {}, tpr = {}”.format(
 precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[0], tpr[0]));

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

One positive sample is detected correctly and the other is not

示例#3 —检测到大多数阳性样本,而不是所有阳性样本—在这种情况下,两个指标相同

现在,9 个样本呈阳性,1 个呈阴性。该模型预测 7 个样本为阳性(全部为阳性),3 个为阴性。
基本度量有: TP = 7,FP = 0,TN = 1,FN = 2。

高级指标包括:

精度= TP/(TP+FP) = 1,召回率= TP/(TP+FN)= 7/9 = 0.78 精度和召回率都很高,因为在正类上表现不错。
TPR = TP/(TP+FN)= 7/9 = 0.78,FPR = FP/(FP+TN) = 0。

在这种情况下,两个指标给出了相似的结果。

np.random.seed(1)
x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 0.9*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
x[-2,0]+=0.8
x[-2,-1]+=0.8
x[-3,0]+=0.8
x[-3,-1]+=0.8
y = np.concatenate([np.zeros(7), np.ones(3)])
y = 1-y
model = LinearSVC()
model.fit(x,y)
y = np.concatenate([np.zeros(9), np.ones(1)])
y = 1-y
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=2, ymin=0, ymax=2)
plt.scatter(x[y==0,0],x[y==0,1], color='b')
plt.scatter(x[y==1,0],x[y==1,1], color='r');
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title("precision = {:.2f}, recall = {:.2f}, fpr = {:.2f}, tpr = {:.2f}".format(
    precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[0], tpr[0]));

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

Both metrics are the same in this case

示例 3 —相反的标签—检测到大部分阴性样本,而不是所有阳性样本—精确度和召回率更高

现在我们交换标签——9 个样本为阴性,1 个为阳性。
模型预测 3 个样本为阳性(实际上只有一个为阳性),7 个为阴性。
基本度量是: TP = 1,FP = 2,TN = 7,FN = 0。

高级指标包括:

精度= TP/(TP+FP) = 0.33,召回率= TP/(TP+FN)= 1。

TPR = TP/(TP+FN) = 1,FPR = FP/(FP+TN) = 2/9 = 0.22。

在这种情况下,精度很低,FPR 也没有我们希望的那么高。由于不平衡的数据集,FPR 不高,因为我们有很多真正的否定。在这种情况下,较差的检测能力最好地反映在精度上。

np.random.seed(1)
x = np.concatenate([np.zeros((8, 2)), np.zeros((1,2)), np.zeros((1,2))]) + 0.9*np.random.rand(10,2)
x[-1,0]+=1
x[-1,-1]+=1
x[-2,0]+=0.8
x[-2,-1]+=0.8
x[-3,0]+=0.8
x[-3,-1]+=0.8
y = np.concatenate([np.zeros(7), np.ones(3)])
model = LinearSVC()
model.fit(x,y)
y = np.concatenate([np.zeros(9), np.ones(1)])
predicted_labels = model.predict(x)
plot_model_boundaries(model, xmin=0, xmax=2, ymin=0, ymax=2)
plt.scatter(x[y==0,0],x[y==0,1], color='b')
plt.scatter(x[y==1,0],x[y==1,1], color='r');
fpr, tpr, thresholds = roc_curve(y, predicted_labels)
plt.title("precision = {:.2f}, recall = {}, fpr = {:.2f}, tpr = {}".format(
    precision_score(y, predicted_labels), recall_score(y, predicted_labels), fpr[1], tpr[1]));

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

In this case the poor detection ability is reflected best in the precision while the FPR is relatively not that high because of the large amount of negative samples

度量选择的最终直觉

  1. 使用精度和召回率关注小阳性类别— 当阳性类别较小时,正确检测阳性样本的能力是我们的主要关注点(正确检测阴性样本对问题不太重要)时,我们应该使用精度和召回率。
  2. **当两个类别的检测同等重要时使用 ROC—**当我们想要对两个类别的预测能力给予同等的权重时,我们应该查看 ROC 曲线。
  3. 当阳性类别占多数时使用 ROC,或者交换标签并使用精度和召回率— 当阳性类别较大时,我们可能应该使用 ROC 指标,因为精度和召回率将主要反映阳性类别的预测能力,而不是阴性类别的预测能力,后者由于样本数量较少自然更难检测。如果负面类别(在这种情况下是少数)更重要,我们可以交换标签并使用 precision 和 recall(正如我们在上面的例子中看到的那样——交换标签可以改变一切)。

什么情节?为什么有这个情节,为什么没有!

原文:https://towardsdatascience.com/what-plot-why-this-plot-and-why-not-9508a0cb35ea?source=collection_archive---------2-----------------------

因此,在我上一篇文章发表一年后,我来到了这里。发生了各种各样的事情,但有一件事是不变的,就是这个问题“嘿,我应该使用哪个情节?”这是我从我的学生那里收到的一个特别的问题,我在审查 Udacity 的项目时也发现了对 plot 的误用。

所以今天,我将涵盖一些常见的错误,在策划阴谋。

作为一名数据分析师/科学家,知道哪个图适合数据是非常重要的!

让我们以这个非常简单的非常著名的葡萄酒数据集为例。

数据集由不同的数据点组成,包括硫酸盐、残糖、密度、酒精(%)以及最后但并非最不重要的质量。质量基本上是葡萄酒消费者给出的一个等级,这最终使它成为一个有序的数据点。有序数据点的**直方图错误!**一个关键的错误是,人们试图通过改变宽度和添加颜色来适应和美化情节,但是你猜怎么着?这是不对的。这个博客是关于应该在什么时候使用哪个情节?

条形图与直方图

当世界为各种不同的事情而争斗的时候,学习者在处理这个特殊的问题上几乎没有问题。许多学习者试图以这样的方式调整他们的直方图,使得图形看起来很棒。但是真正的问题是直方图应该只用于连续变量。直方图的基本思想是显示连续点集的频率分布,这将有助于读者理解点的分布。你甚至可以把它作为一个图来检查异常值,偏斜度和分布。

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

Histogram representation of ordinal data

另一方面,条形图显示分类数据,实际上不能用于查找异常值或检查偏斜度。简单来说,您能为一组点(如苹果、香蕉和橙子)找到异常值吗?很遗憾,没有!那一套就把两者区别出来了!还在迷茫?

假设您有一个特定的表,其中给出了字符串变量的值。你不能使用直方图,它会抛出一个错误,因此你会移动到条形图。这证明至关重要的部分是理解数据。

下面是如何使用条形图绘制上述相同的图。

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

Bar plot representation of the ordinal data

正如你所见,这看起来更抛光和真棒!

那么这个故事的寓意是什么呢?了解数据!

折线图的“过度”滥用

到目前为止一切顺利!我们看到条形图和直方图实际上是不同的。现在,我们将研究折线图的过度滥用。

从更直观的意义上来说,折线图特别适用于趋势分析,它基本上被视为一个图表,用于检查从上一点开始是否有增加或减少。让我们以强大的股票市场为例,你不会期望新闻在条形图上显示公司的实时股票价格,但你会看到使用折线图来显示特定股票的趋势/表现。

更简单地说,我们可以说折线图基本上是用来以直观的方式比较一个值相对于其他值的变化。

折线图主要用于寻找特定时间段内的趋势,但也可用于有序数据。

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

Loss! But a line chart.

所以人们确实记得折线图=序数、时间序列和一点与另一点之间的比较。

分散点!

这可能会让一些人感到惊讶,但它比你想象的更常见。散点图的简要概述是,它在一个图中表示大多数(或设定数量)数据点。因此,基本上这是一个美丽的图,使读者能够建立变量之间的关系(如线性),也能够看到点的分布,更重要的是看到离群值变得活跃起来。但是最近,我注意到许多学习者在有序数据上使用散点图来绘制平均值,而平均值恰好在 y 轴上。这个令人震惊的事件激发了我写这/包括这一节。

散点图可能是双变量分析的最佳方法之一。它给人一种点与点之间关系的感觉,也给人一种关于数据的视觉前景。所以请记住,如果您有任何连续的数据,请使用散点图

现在你可能想知道,有序数据呢?有序数据也可以绘制在散点图上,但更准确地说,这些点应该是抖动点,这意味着这些点应该抖动,以避免过度绘制。这是一个非常重要的方法,可以帮助读者更有效地理解,让我们通过一个例子来更深入地了解这一点。

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

overplotting

如果仔细观察,Y 轴变量本质上是序数,这里使用的技术基本上是点绘图。如果你注意到你实际上看不到这两点之间的任何联系或趋势,你能吗?来电:抖动!

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

Jitter it!

看起来好多了!但是为了让它更棒,我们需要记住几个要点。

质量作为一个序数数据,作为一个良好的做法,我建议绘制序数数据作为 x 轴变量。这可能不一定适用于所有的图,有时在 y 轴上绘制分类数据会给我更好的表示,但这种体验仅限于条形图。

箱线图怎么样?我们可以一起绘制箱线图和散点图,以便从图中推断出更多信息,下面是完整的图!

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

Beauty!

正如你所看到的情节是可怕的!它给我们提供了点的信息,散点图也显示了质量和酒精之间的关系。

盒子里小提琴美妙的旋律

小提琴的情节让任何报告都好看。让我们接受它,它们显示了从概率分布到统计数据以及异常值的一切。他们都在里面!虽然箱线图很棒,但小提琴图更棒,尤其是在数据分布是多峰的情况下(不止一个峰)。在此期间小提琴曲显示了不同的峰值和位置。

Titanic 数据集是一个很好的数据集,可以用来绘制年龄与性别,年龄与存活,甚至班级的小提琴图。这里有一个例子,

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

Violin plot

由此你能推断出什么?它有最小年龄,最大年龄(最小年龄是一个异常值),平均年龄,更重要的是根据存活和不存活的年龄分布。这个图还可以进一步增强成一个多元图,上面包含性别!比如这个来自 seaborn 网站的例子!

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

Total bill , gender wise in terms of days!

可怕的情节不是吗?所以什么盒子情节不能小提琴情节可以。

至此,我总结了这个常见的错误片段,接下来是过度渲染以及如何处理它!所以请留意这个地方。在那之前继续策划!

有抱负的数据科学家应该学习什么编程语言?

原文:https://towardsdatascience.com/what-programming-language-should-aspiring-data-scientists-learn-875017ad27e0?source=collection_archive---------4-----------------------

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

不可否认的是,数据科学是当今世界发展最快的领域之一,并且没有放缓的迹象。正因为如此,研究和理解构成这个领域的专业人士,以及他们驾驭这个领域的方式变得越来越重要。

这篇文章是今年早些时候的一篇文章的延续,当时我们研究了数据科学专业人士的人口统计和教育背景。在第 2 部分中,我们将进一步挖掘 Kaggle 对数据专业人员的大规模调查,以了解这些专业人员如何开始他们的研究,他们对行业新人的建议,他们对未来趋势的预测等等。让我们开始吧!

你最初是如何开始你的机器学习/数据科学培训的?

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

该领域的大多数专业人士都是从在线课程开始他们的数据科学之旅的。第二个最受欢迎的途径是大学课程,然后是完全自学。这表明,作为初学者,从网上开始学习并不是一个坏主意!

你会推荐一个新的数据科学家先学什么编程语言?

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

根据受访者的说法,该领域的新人应该从 **Python 开始了解编程语言。**第二大推荐语言是 R. SQL 紧随其后,位居第三。

在接下来的一年里,你最想学习的工具或技术是什么?

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

Google 的深度学习算法 Tensorflow 领先;今天的数据科学家似乎很兴奋地投入到这项新兴技术中。紧随其后的是 Python 然后是 R.

在接下来的一年里,你最期待学习哪种 ML/DS 方法?

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

Python 和 Tensorflow 再次领先。

你写代码分析数据有多久了?

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

大多数调查对象写代码的时间只有 1-2 年。在关于该数据的早期帖子中,我们还发现大多数受访者年龄在 25-35 岁之间,并且大多数人都是全职员工,这表明在数据科学领域的职业道路可能很快!

我应该去哪里找工作?

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

据调查受访者称,公司网站/职位列表页面是最受欢迎的求职地点。排在第二位的是专门针对科技行业的求职网站,从朋友、前同事和家人那里寻求推荐也很受欢迎。

外卖食品

如果你想加入数据科学领域,在线学习 Python 和 R 是一个很好的开始;大多数受访者在那里开始了他们的数据科学之旅,大多数人表示他们是全职的数据科学家。如果你已经有了 Python 和 R 的背景,通过更高级的在线学习来提升你的职业和收入潜力吧!

[## Python 中的数据科学训练营

学习 Python 的数据科学,NumPy,Pandas,Matplotlib,Seaborn,Scikit-learn,Dask,LightGBM,XGBoost,CatBoost 等等…

www.udemy.com](https://www.udemy.com/course/data-science-bootcamp-in-python/?referralCode=9F6DFBC3F92C44E8C7F4)

机器学习预测预期寿命

原文:https://towardsdatascience.com/what-really-drives-higher-life-expectancy-e1c1ec22f6e1?source=collection_archive---------8-----------------------

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

我们正处于一个前所未有的时代,人类的寿命越来越长(尽管 2015 年& 2016 年是一个令人恐惧的上升趋势)。然而,众所周知,全球各地的预期寿命差异很大。

作为一名生物医学工程师,我一直将长寿归因于现代科学和医疗保健的增加。为了检验这一假设并理解什么能最好地预测预期寿命,我研究了世界卫生组织 1,345 项发展指标(从 1960 年到 2015 年)的国家级数据。

我将数据缩减为指标子集,这些指标不仅与预期寿命合理相关,还代表了主要指标类别(经济政策和债务;健康;基础设施;贫困;私营部门和贸易;公共部门;社会保护和劳动)。

其中,最具统计意义的预期寿命指标是获得卫生设施的情况。仅使用卫生设施来预测预期寿命有 77%的准确性,并表明预期寿命每增加一岁,就有 0.25%的人口获得现代卫生设施。

“向右上方”

几乎不管数据如何被切割,1960 年至 2015 年间的预期寿命趋势看起来就像初创企业宣传资料中的销售预测:向右上方。

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

Life span by country income levels: The gap between high and low income countries is closing

根据收入水平对国家进行分类,我们可以看到经济如何影响健康:在 1960 年至 2015 年期间,收入越高,预期寿命越长。高收入国家的预期寿命稳步增长,但速度较慢;中等收入国家在 20 世纪 60 年代经历了大幅增长,预期寿命也相应提高。在低收入国家,预期寿命在 80 年代中期至 90 年代中期几乎停止增长,随后是近年来预期寿命的大幅增长。区域分组(下图)揭示了 1960 年代和 1980 年代哪些地理区域推动了这些变化。

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

Life expectancy by region: Sub-saharan Africa (red, bottom) has a noticeable plateau in the mid-80s, coinciding with the HIV/AIDs epidemic.

我将 1.3 千个发展指标缩减为 21 个有代表性的子集。将这些指标与预期寿命相关联,可以快速评估相对重要性。

预期寿命与卫生设施(r = 0.88)、人均国内生产总值(r = 0.698)和人均医疗支出(r = 0.63)之间的正相关性最高。与农村地区的人口百分比(r = -0.80)和青少年生育率(r = -0.77)有很强的负相关关系。

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

In case you’re new to reading heat maps: A dark red square indicates a high positive correlation between the column & row header; whereas a blue square represents a negative relationship.

机器学习预测预期寿命

为了确定哪些指标具有统计学意义,并预测预期寿命,我运行了几个具有各种特征组合的不同模型。这个应用程序是回归的完美用例,它确定一个因变量(预期寿命)和多个自变量(发展指标)之间的关系。

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

Actual vs. predicted ( model) life expectancy: The model tends to better predict higher life expectancy, and does not preform as well for lower life expectancies (as indicated by wide-spread data in the bottom left).

使用 21 个特征的整个子集的准确率为 89.7%,并显示卫生设施和农村人口(%)都具有统计学意义。

即使只有这两个变量,这个模型预测预期寿命的准确率也有 80.4%。平均预期寿命为 63 岁,卫生设施每增加 0.18%,农村人口比例每减少 0.11%,预期寿命就增加一岁。将医疗保健支出加入到模型中只会略微提高准确性(81%)。

探究卫生设施:为了更深入地了解卫生设施的具体情况,我根据儿童死亡率的统计数据评估了卫生设施的使用情况。毫不奇怪,卫生条件和死亡率之间有很强的负相关性:随着卫生条件的改善,新生儿、婴儿和 5 岁以下儿童的死亡率下降。

卫生设施作为预期寿命的主要预测指标——特别是儿童死亡率——是出乎意料的,但也是合乎逻辑的。恶劣的卫生条件增加了共享威胁生命的传染病的风险。

据世界卫生组织报道,腹泻病是五岁以下儿童死亡的主要原因,是由恶劣的卫生条件传播的:

腹泻是由大量细菌、病毒和寄生虫引起的感染症状,其中大多数是通过粪便污染的水传播的。

一旦社区的卫生条件得到改善,这些举措就可以解决预期寿命的其他关键指标(如教育、医疗保健、青少年生育率)。此外,由于卫生设施与儿童死亡率高度相关,首先解决卫生设施问题应该会让更多儿童受益于其他举措。

* [## 格西/跳板 _ 数据 _ 科学

有关数据和源代码(Jupyter 笔记本),请查看我的 github。

github.com](https://github.com/gussie/Springboard_data_science/tree/master/Predicting_Life_Expectancy)*

今晚我们应该看什么?

原文:https://towardsdatascience.com/what-should-we-watch-tonight-96e6cc9323bf?source=collection_archive---------6-----------------------

一个或两个用户的电影推荐系统

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

Scene from Willy Wonka and the Chocolate Factory (Image courtesy of: https://www.moviehousememories.com)

我一直喜欢看一部好电影。当我还是个孩子的时候,当地图书馆的图书管理员会跟我开玩笑:“本,今天我们要租什么电影?”。当然,她知道十有八九会是威利·旺卡和巧克力工厂(1971 年的原版)。所以,当我手里拿着我选择的东西来到收银台时,通常不会有什么惊喜。我们会有一些笑声,然后我会去廉价商店买一点糖果,然后回家把电影放进我们的 VHS 播放器。

我们喜欢的电影类型感觉像是我们非常个人化的品质。例如,我很难向你解释为什么我如此喜欢电影《T2》和《陈月娇》。是因为音乐吗?还是电影的艺术性?还是奥黛丽·塔杜?还是我对欧洲的迷恋?还是以上都有?尽管我们对电影的偏好看起来独特而不可预测,但很有可能世界上还有其他人和我们有着非常相似的品味。

这正是协同过滤推荐器背后的想法。协同过滤是一种基于找到具有相似品味的其他用户来向用户推荐电影的技术。我们可以根据我们都看过的、评分相似的电影,找到口味相似的用户。吴恩达在他的 ML 课程中对协同过滤推荐系统做了很好的介绍。

这篇博文的目的是与您分享(1)我如何为单个用户构建一个标准的电影推荐系统,以及(2)我对向想要一起观看电影的两个用户推荐电影的问题的解决方案。我和我的另一半经常坐在电视机前浏览网飞或亚马逊的视频,试图决定一起看什么电影,似乎我们中的一方经常不得不做出妥协,以适应另一方的偏好。因此,目标 2 的目的是试图找到这个问题的解决方案,这样我们都可以对我们的电影选择感到满意。

数据的描述

对于我的推荐系统,我使用了movie lens 2000 万收视率数据集。该数据集由 138,000 个用户对 27,000 部不同电影的 2,000 万个评级组成。数据创建于 1995 年 1 月 9 日至 2015 年 3 月 31 日之间。因此,没有电影包含在 2015 年 3 月 31 日之后的发行数据中。收视率数据在 0.5 星到 5.0 星的范围内。这个数据集中的每个用户至少评价了 20 部不同的电影。我在这个项目中使用的两个数据文件是收视率文件和电影文件。这些被读入熊猫数据帧。下面提供了这两个数据帧的屏幕截图。

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

The first 5 rows of the Movies DataFrame

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

The first 5 rows of the Ratings DataFrame

数据的一个重要方面是收视率数据非常稀少。这是因为在 27,000 部电影中,每个用户只评价了电影的一小部分。因此,如果我们构建一个完整的矩阵,其中 138,000 行对应于用户,27,000 列对应于电影,那么我们的大部分值将是 NaN。由于这种稀疏性,我使用了 SciPy 稀疏矩阵包来处理这些数据,我将在下一节中更详细地讨论这些数据。

我的方法

为了构建一个协同过滤推荐系统,我使用了一类叫做低秩矩阵分解的算法。具体来说,我使用奇异值分解(SVD)将具有大量特征的评级矩阵缩减为具有较小特征子集的矩阵,这允许我们近似原始矩阵。Nick Becker 写了一篇很棒的博客文章,描述了 SVD 以及如何将它应用于构建推荐系统。因此,如果你想了解更多,我强烈建议读者看看他的帖子。

然后,我实现了以下步骤来构建基于协同过滤的推荐系统:

  • 过滤掉少于 10 分的电影
  • 创建了一个 movie_index 列,允许我们将 movieId 映射到一个唯一的 movie_index
  • 对评级数据进行训练/测试分割
  • 通过电影实现均值归一化
  • 使用 SciPy 稀疏矩阵包构建稀疏矩阵,其中索引对应于 userId 和 movie_index,数据对应于平均标准化收视率数据
  • 使用 SciPy svds 方法执行 SVD
  • 通过计算𝐑=𝐔σ𝐕ᵀ生成预测评级矩阵𝐑,其中𝐔是用户特征矩阵,σ是对角线值是奇异值的矩阵,𝐕是电影特征矩阵
  • 将电影平均值标准化组件添加回预测评级
  • 对前 N 个预测收视率进行排序并打印出结果电影列表

我用训练数据做了模型调整。SVD 的一个自由参数是分量的数量 k,它对应于奇异值的数量。在使用选定的 k 值构建模型之后,我计算了测试集数据的预测评级。随后进行误差分析,根据实际评级数据计算平均绝对误差(MAE)和均方根误差(RMSE)。导致最低误差的 k 值然后被用于构建我的最终推荐系统模型。

如前所述,这个项目的最后一部分是建立一个推荐系统,可以为两个想一起看电影的用户提供推荐。根据一份非常有用的出版物(见奥康纳等人 ),有两种一般的方法可以做到这一点。一种方法是创建一个伪用户,代表两个用户的口味。为了实现这种方法,在执行 SVD 之前,需要合并每个用户的评级。另一种方法是为每个组成员生成单独的推荐列表,并以特别的方式合并这些列表。我选择了第二个策略来构建我的推荐系统。

合并两个列表的方法需要一些额外的思考。如果我们简单地取两个预测评级的平均值,那么我们将不考虑两个组成员之间的预测得分非常不同的电影。这在下表中的假设示例中示出:为两部电影美丽心灵提供了用户 1 和用户 2 的预测评级。Pi 的情况下,用户 1 和用户 2 之间的预测评分比美丽心灵的差异大得多,但平均评分是相同的。这是一个问题,因为我们推荐的电影中,一个用户可能不太喜欢这部电影,而另一个用户可能非常喜欢。因此,这种方法没有实现我最初的目标,我想最大化整个团队的幸福。这个问题的解决方案是开发我自己独特的小组评级功能,如下所述。

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

Table demonstrating how two different movies with very different predicted ratings for User1 and User2 resulted in the same average rating, but different group ratings

我的组评级功能定义如下:

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

其中,R₁和 R₂分别是用户 1 和用户 2 对特定电影的预测得分,Rg 是组评级。此组评分功能计算平均预测得分减去与两个个人评分之差成比例的惩罚项。惩罚项的目的是给予具有更相似预测得分的电影更大的权重。回到我们的例子,我们可以看到电影 Pi 导致 Rg=3.6,而 A Beautiful Mind 导致 Rg=3.92 的更好的总得分。因此,基于这一结果,我们会有更大的信心,认为看了美丽心灵*之后,整个群体的幸福感会比看了 Pi 之后更高。*

结果

模型调整的结果如下表所示。我们观察到,k=15 的值产生了最低的 MAE 和 RMSE 值。这与这里引用的参考文献的结果一致(参见克雷莫内西 )。

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

Table displaying error analysis results as a function of the number of components k

单用户结果

接下来,我将为单个用户演示我的电影推荐器的输出示例。在这种情况下,UserId 9 对通常可以归类为惊悚片或犯罪片的电影给予了高评级。在这种情况下,最受推荐的电影也是这些流派中评价很高的电影。因此,看起来我们的标准电影推荐器做得很好。

*A subset of original ratings provided for UserId: 9
Rated 5.0 for movie What Lies Beneath (2000)
Rated 3.0 for movie General's Daughter, The (1999)
Rated 2.0 for movie Entrapment (1999)
Rated 3.0 for movie Austin Powers: The Spy Who Shagged Me (1999)
Rated 3.0 for movie Return of the Living Dead, The (1985)
Rated 3.0 for movie Psycho (1960)
Rated 3.0 for movie Stigmata (1999)
Rated 4.0 for movie American Pie (1999)
Rated 2.0 for movie Vertical Limit (2000)
Rated 1.0 for movie Traffic (2000)
Rated 2.0 for movie Deep Blue Sea (1999)
Rated 4.0 for movie Fast and the Furious, The (2001)
Rated 4.0 for movie Cast Away (2000)
Rated 2.0 for movie Scary Movie (2000)
Rated 5.0 for movie Hannibal (2001)
Rated 2.0 for movie Creepshow (1982)
Rated 2.0 for movie Urban Legends: Final Cut (2000)
Rated 5.0 for movie Fight Club (1999)
Rated 5.0 for movie Exorcist, The (1973)
Rated 4.0 for movie There's Something About Mary (1998)Top recommendations for UserId: 9
Predicting rating 5.0 for movie Shawshank Redemption, The (1994)
Predicting rating 5.0 for movie Silence of the Lambs, The (1991)
Predicting rating 4.9 for movie Pulp Fiction (1994)
Predicting rating 4.9 for movie Braveheart (1995)
Predicting rating 4.8 for movie Schindler's List (1993)
Predicting rating 4.7 for movie Usual Suspects, The (1995)
Predicting rating 4.6 for movie Seven (a.k.a. Se7en) (1995)
Predicting rating 4.6 for movie Zero Motivation (Efes beyahasei enosh) (2014)
Predicting rating 4.5 for movie Fugitive, The (1993)
Predicting rating 4.5 for movie Terminator 2: Judgment Day (1991)
Predicting rating 4.5 for movie Godfather: Part II, The (1974)
Predicting rating 4.4 for movie Saving Private Ryan (1998)
Predicting rating 4.4 for movie Dances with Wolves (1990)
Predicting rating 4.4 for movie Matrix, The (1999)
Predicting rating 4.4 for movie American Beauty (1999)
Predicting rating 4.4 for movie One Flew Over the Cuckoo's Nest (1975)
Predicting rating 4.4 for movie Goodfellas (1990)
Predicting rating 4.3 for movie Apollo 13 (1995)
Predicting rating 4.3 for movie Raiders of the Lost Ark (Indiana Jones and the Raiders of the Lost Ark) (1981)
Predicting rating 4.3 for movie American History X (1998)*

合并用户结果

最后,两个用户的推荐系统结果如下所示。其中一个用户对应于我自己,另一个用户对应于我的另一半(正确猜测哪个是哪个的额外加分)。组合推荐采用了前面讨论的组评级函数。我的团体推荐者的结果令人鼓舞,因为推荐给我们的许多电影都是我们实际看过并真正喜欢的。

*A subset of original ratings provided for UserId: 138494
Rated 4.5 for movie Like Water for Chocolate (Como agua para chocolate) (1992)
Rated 4.0 for movie Mr. Holland's Opus (1995)
Rated 4.0 for movie Sense and Sensibility (1995)
Rated 2.0 for movie Fargo (1996)
Rated 4.0 for movie Pi (1998)
Rated 4.5 for movie Garden State (2004)
Rated 4.0 for movie What's Eating Gilbert Grape (1993)
Rated 1.0 for movie Lemony Snicket's A Series of Unfortunate Events (2004)
Rated 4.0 for movie Apollo 13 (1995)
Rated 4.5 for movie Buffalo '66 (a.k.a. Buffalo 66) (1998)
Rated 4.5 for movie Mission, The (1986)
Rated 4.5 for movie River Runs Through It, A (1992)
Rated 5.0 for movie Spanish Apartment, The (L'auberge espagnole) (2002)
Rated 5.0 for movie Willy Wonka & the Chocolate Factory (1971)
Rated 3.0 for movie Sideways (2004)
Rated 5.0 for movie Amelie (Fabuleux destin d'Amélie Poulain, Le) (2001)
Rated 4.0 for movie Bend It Like Beckham (2002)
Rated 1.0 for movie Dumb & Dumber (Dumb and Dumber) (1994)
Rated 4.0 for movie Dead Poets Society (1989)
Rated 4.0 for movie O Brother, Where Art Thou? (2000)A subset of original ratings provided for UserId: 138495
Rated 1.0 for movie Indiana Jones and the Kingdom of the Crystal Skull (2008)
Rated 4.5 for movie Mephisto (1981)
Rated 5.0 for movie Life Is Beautiful (La Vita è bella) (1997)
Rated 3.5 for movie Out of Africa (1985)
Rated 4.0 for movie Sense and Sensibility (1995)
Rated 4.5 for movie Virgin Suicides, The (1999)
Rated 1.0 for movie Dumb & Dumber (Dumb and Dumber) (1994)
Rated 4.0 for movie Three Colors: Blue (Trois couleurs: Bleu) (1993)
Rated 1.0 for movie Star Trek: Insurrection (1998)
Rated 4.5 for movie Postman, The (Postino, Il) (1994)
Rated 4.0 for movie Steel Magnolias (1989)
Rated 4.0 for movie Gattaca (1997)
Rated 2.5 for movie Dangerous Minds (1995)
Rated 3.5 for movie Seven (a.k.a. Se7en) (1995)
Rated 0.5 for movie Terminator 2: Judgment Day (1991)
Rated 2.5 for movie Driving Miss Daisy (1989)
Rated 0.5 for movie Home Alone (1990)
Rated 4.0 for movie Love Actually (2003)
Rated 4.0 for movie Leaving Las Vegas (1995)
Rated 5.0 for movie Cinema Paradiso (Nuovo cinema Paradiso) (1989)Top combinded recommendations for UserIds: 138494 and 138495
Predicting rating 4.5 for movie Zero Motivation (Efes beyahasei enosh) (2014)
Predicting rating 4.5 for movie Shawshank Redemption, The (1994)
Predicting rating 4.5 for movie Fight Club (1999)
Predicting rating 4.4 for movie Forrest Gump (1994)
Predicting rating 4.3 for movie Usual Suspects, The (1995)
Predicting rating 4.3 for movie Matrix, The (1999)
Predicting rating 4.3 for movie Schindler's List (1993)
Predicting rating 4.3 for movie American Beauty (1999)
Predicting rating 4.3 for movie Memento (2000)
Predicting rating 4.3 for movie Death on the Staircase (Soupçons) (2004)
Predicting rating 4.3 for movie City of God (Cidade de Deus) (2002)
Predicting rating 4.3 for movie Star Wars: Episode V - The Empire Strikes Back (1980)
Predicting rating 4.3 for movie Seven Samurai (Shichinin no samurai) (1954)
Predicting rating 4.3 for movie Spirited Away (Sen to Chihiro no kamikakushi) (2001)
Predicting rating 4.3 for movie Dark Knight, The (2008)
Predicting rating 4.3 for movie Princess Bride, The (1987)
Predicting rating 4.3 for movie O Auto da Compadecida (Dog's Will, A) (2000)
Predicting rating 4.3 for movie Band of Brothers (2001)
Predicting rating 4.3 for movie Rear Window (1954)
Predicting rating 4.3 for movie One Flew Over the Cuckoo's Nest (1975)*

包扎

在这篇博文中,我演示了(1)如何通过在 MovieLens 20M 收视率数据集上应用 SVD 来构建电影推荐器,以及(2)如何向想要一起观看电影的两个用户提供推荐。当然,有许多可能的方法来建立一个推荐系统。如果有更多的时间,我想实现一个比普通的 SVD 更高级的算法。例如,赢得网飞奖竞赛的团队开发了一种协作过滤算法,可以更好地捕捉数据中的用户和电影偏见。因此,如果某些电影的评级高于平均水平,这些电影不会完全主导推荐算法。我确实通过实现电影评级数据的平均标准化部分解释了这一事实,但网飞奖获得者采用了一种更先进的方法来解决这个问题,这种方法可能做得更好(见耶胡达)。

最后,我想感谢你阅读这篇博文。如果你想探索我为这个项目写的代码,请查看我的 Github repo。我很高兴写这篇文章,并与你分享我对机器学习的热爱,当然还有威利·旺卡和巧克力工厂*。*

吸烟对人们分析的影响

原文:https://towardsdatascience.com/what-smoking-did-for-people-analytics-8d580ba4db8?source=collection_archive---------7-----------------------

像我一样是美剧《广告狂人》(Mad Men)粉丝的任何人都会记得,这部杰出的时代剧的情节和历史背景的一条重要线索都围绕着吸烟。20 世纪 60 年代,美国医疗机构倾向于吸烟是一种致癌习惯的观点——这是他们很难面对的事情,因为他们几乎都是自己吸烟。

今天,习惯性吸烟或根本不吸烟的人大大减少了。我们当然没有脱离险境,但 50 年来已经发生了实质性的变化。然而,50 年是一段很长的时间——人们很自然会问为什么需要这么长时间来创造变化。

当然,一个答案是,吸烟是一种非常容易上瘾的行为——而上瘾的行为是最难改变的。然而,另一个原因是,需要很长时间来建立吸烟与消极生存结果相关的证据,甚至需要更长时间来证明吸烟导致癌症。

然而,我们这些从事人群分析工作的人,会从围绕吸烟及其健康后果的研究中有所收获。正是这项研究将流行病学分析方法推向了前沿,为我们今天研究人和组织提供了难以置信的价值。在 20 世纪 60 年代至 80 年代,当医疗机构在一场旷日持久的争论中与烟草巨头较量时,生存分析站出来给予了致命一击。

生存分析

生存是医学科学中最重要的结果,因此毫不奇怪,统计学领域的建立是为了更好地理解生存的驱动因素。然而,在 20 世纪中叶之前,许多生存研究都集中在急性疾病上——细菌或病毒感染似乎会在几天或几周内杀死一些人,但其他人会很快康复或毫发无损地存活下来。1918 年至 1920 年致命的西班牙流感疫情在全球范围内导致 5000 万至 1 亿人死亡,是早期流行病学研究的一大推动力。

到了 20 世纪 50 年代,抗生素出现了,急性病突然变得不那么危险了。注意力转向了另一种流行病。一个普遍但不严重的问题。它杀死了一些人,但没有杀死其他人,而是在生命的不同阶段,通常是多年或几十年后。癌症给流行病学家的生存研究带来了新的挑战。生存追踪变得必要了。

因此,医学研究机构开始加速跟踪几十年的人,而不是几周或几个月。不仅仅是那些生病的人,健康的人也必须被追踪,以了解哪些生活方式因素会导致癌症等威胁生存的疾病的发生率更高。它预示着方法、系统和过程的突破,导致了我们今天在媒体上看到报道的一些巨大的纵向研究。

但它也带来了分析和描述生存的新方法——所有这些在今天更广泛的人类研究中都极其有用。

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

生存曲线和风险比

想象一下,你有一个假设,个人在一个团体或组织中的经历的某个元素是他们在一段时间内继续成为该团体或组织成员的可能性的指标。例如,你可能认为在某个部门工作的人有如此积极的经历,以至于他们对公司产生了长期的依恋。反之亦然,这种体验太差了,以至于他们开始重新审视就业市场。

假设的经历可以被认为是一种“生活方式因素”,你可以像分析癌症等疾病研究中的存活率一样,分析一段时间内损耗的可能性。做到这一点的一种方法可以是对人群进行时间点采样,以及他们是否已经接触到感兴趣的体验,然后在接下来的几个月或几年中跟踪他们,以查看该体验和损耗之间是否存在因果关系。

卡普兰-迈耶生存曲线是一种非常直观的图形表达方式。回到我们吸烟的例子,上面的图表显示了在的一项特殊医学研究中,吸烟者与非吸烟者的生存曲线。x 轴表示在某个测量起点之后的几个月,此时个体根据他们的吸烟状态被分类,y 轴表示在每个时间点仍然存活的个体的比例。请注意,每个人的起点不必相同。假设时差中没有固有的偏差,人们可以在任何时间 t 加入研究,曲线跟踪他们到 t + 120

一个类似的有用的衡量标准是风险比,特别是对执行摘要的结论或摘要而言,它计算特定人群在特定时间段内的平均生存可能性,作为基线人群的一部分。例如,你可以计算出与一般人群相比,女性在 2 年内的存活可能性。或者在工作场所,您可以计算出与普通员工相比,员工流失的可能性或高绩效员工。对风险比率的精确计算使你有能力有效地陈述结论,如“高绩效员工在两年内离开我们的可能性增加了 20%”。

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

人员分析应用

我想你们中的许多人在这里看到了相似之处,但这里有一些生存分析可以应用于人力资本环境的方法:

  • 调查验证:生存分析可以用来表明调查结果应该被认真对待。例如,如果对某些调查项目给出非中性评级的人被证明有更高或更低的流失可能性,这可以帮助管理层在未来关注这些调查响应。
  • 预测分析:生存分析可以在预测减员或其他感兴趣的结果时建立特定措施的有效性,或者单独使用,或者作为更广泛的预测模型中的有效特征。例如,斯坦福大学 GSB 分校的研究表明,使用上面的(反向)生存曲线,电子邮件中的语言是员工与组织文化契合度的有效指标。在麦肯锡,我们使用生存曲线来表明,在任何给定的时间点,某人在组织中拥有的有意义的联系的数量可以预测他们留下的可能性。
  • 促进多样性或多样化的体验:生存分析不仅适用于自然减员,还可以应用于任何感兴趣的结果。例如,如果你想说明一个组织越来越倾向于利用某些“类型”的个人来完成某些任务或工作,卡普兰-迈耶曲线或风险比可以很好地说明这一点,并确定假设的影响在统计上是否站得住脚。

生存分析是研究人的结果的一个非常强大的工具,它通常需要非常简单的数据(通常不超过一些调查响应或参与记录和一些离开日期)。更多的组织应该使用生存分析来让他们诚实地了解是什么真正推动了他们的人员成果。

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

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

Courtesy of Mad Men (AMC TV)

歌曲告诉我们什么:歌词文本挖掘

原文:https://towardsdatascience.com/what-songs-tell-us-about-text-mining-with-lyrics-ca80f98b3829?source=collection_archive---------12-----------------------

Billboard 排行榜热门歌曲文本挖掘项目。

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

Bradley Cooper and Lady Gaga in A Star Is Born.

记得第一次遇到数据科学能做什么样的神奇。这本书名叫《T2:代词的秘密生活:我们的话语对我们的影响》,作者是詹姆斯·w·彭尼贝克。它告诉我们日常用语是如何与我们的个性、性别和社会背景联系在一起的。如果你想知道更多关于我们语言的秘密,我推荐你去读读这本书。或者你也可以选择观看作者的 ted 演讲。

对我来说,这是一个激动人心的故事。我们如何从不可挖掘的无声数据中发现隐藏的秘密。虽然这项研究的方法论更多的是关于统计的,但这是我第一次开始模糊地思考数据科学,并一次又一次地成为我选择 NLP 作为我的第一个数据科学项目的原因。在完成了几个文本挖掘讲座后,我计划展示我们在性别之间如何使用不同的词语。我选择研究歌词,因为它们比任何其他形式的文本数据都具有最直接的表达方式。男女歌手的歌词有区别吗?仅凭歌词就能确定哪些歌是男唱女唱的吗?

我把名单限制在 Billboard 排行榜上的前 100 名艺术家,并搜集了每个艺术家的五首歌的歌词。我选择从每个歌手那里收集五首歌曲,而不仅仅是排名靠前的歌曲,是为了增强每个歌手的倾向,这样任何特定的模式都可以更容易地被感知。从网页抓取到模型拟合和数据集的完整代码可在 Github 上获得。在我们开始之前,我想告诉你,在公告牌排行榜上可能会有一些冒犯性的词语。

这是一个自然语言处理项目

自然语言处理是人工智能中最热门和最有前途的领域之一。有大量的论文和帖子揭开了 NLP 概念的神秘面纱,所以我将在这篇帖子中讲述它最基本和最核心的直觉。当我们处理文本数据时,基本的方法是将文本分割成单个单词。例如,我们有一个句子说*‘这是一个自然语言处理项目*’。我们把这个拆分成 7 个字的 这个,是,一,自然,语言,处理, 项目 。下一步是将这些单词转换成一个热编码。

自然语言处理中,一个热点向量是一个 1 × N 矩阵(向量),用于将词汇表中的每个单词与词汇表中的每个其他单词区分开来。除了唯一用于识别单词的单元中的单个 1 之外,所有单元中的向量都由 0 组成。

这不直观吗?挺好的。你可以简单地想象每个单词有一个开关按钮。当’ 语言 按钮打开时,表示我们有一个单词 语言 。当按钮关闭时,我们没有这个词。因此,当按下如下按钮时,它在告诉’ 这是一种语言’

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

实际上,这是一个非常简单的例子,我们跳过了其他重要的步骤,比如降低大写字母,去掉数字、标点符号等等。这些是在标记(分割)文本数据之前进行的,您应该采取什么处理取决于您正在处理什么类型的文本以及您的项目有什么目的。都是为了对文字数据进行清理和刷机,使其更适合你的分析。如果你想更深入地研究文本挖掘和 NLP,我想推荐这篇文章作为你的开始。它解释了 NLP 问题,从非常基础的到复杂的模型,如 Word2Vec。经过所有这些处理步骤,现在我们准备从这些数据中得出一些意义。歌词中有哪些常用词?男性和女性感兴趣的主要话题是什么?我们在歌词上有什么不同?

歌词中使用频率最高的词是什么?

第一步,我查找歌词中常见的常用词。加上词频(可以理解为一个词键在整个歌单中被按了多少次),我们可以看到这些词,如***【爱、想、女孩、感觉、心、钱、时间、*** 【天 。没什么好惊讶的,因为这些词就像我们的日常用语一样。

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

我们来比较一下性别之间的话。我计算了一组中每个单词的比例频率,然后得出两组的差异。所以下图显示了差距最大的前 10 个单词。与男歌手相比,女歌手在歌词中使用类似 女孩、kitty、感觉和滚动 的词语。在男性歌曲中, nigga、生活、家、 gang 等词汇相对于女性来说是相当独特的。

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

那两个病房呢,不只是一个字?

我不仅查找了单字母词,还查找了双字母词,因为当单词与其他邻居出现时,它们的意思通常完全不同。像下面你能看到的,bigram 词云中显示的词与 unigram 情节完全不同的词,像 千次,真正的朋友,想离开想聚会内心的声音 ,和 想听到 出现很多

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

起初,我想出了查理·普斯的歌曲,“我们不再说话了”,由词 说话了笑了 。然而,它实际上是来自女性的歌曲。当我们比较二元词时, 不再说话了 是最具性别特征的‘女性词’。

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

有趣的是,女孩谈论 谈话,女孩,女人,朋友 很多,而男孩似乎渴望 周六晚上,玩耍和爱情

我们在性别之间有不同程度的情感吗?

现在让我们更深入地进行感性分析。通过 NRC 词典中的 10 种不同情绪,我得到了每种情绪在不同性别中的比例。两组之间的情绪分布具有相似的模式。但是男歌手的歌词倾向于负面多于正面,而女歌手的歌词倾向于正面多于负面。

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

我还通过 afinn lexicon 得到了情感分数,分数的分布如下。男歌手的情感水平范围更广,平均得分更低。当我们过滤掉-300 以下的极端异常值时,女性和男性歌手的直方图具有某种程度上相似的分布。

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

我们能预测歌词的“性别”吗?

好了,现在是最激动人心的部分了!我适合能告诉我们歌词“性别”的模型。在拟合模型之前,我做了额外的特征变量,分别是我们提前得到的情感评分,每句歌词的长度,每句歌词的字数。从基本的逻辑模型开始,我建立了支持向量机和 Xgboost 模型。

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

就像你在上面看到的那样,当我尝试更复杂的模型时,精确度提高了,最终的结果相当令人满意。我将“性别”转换成一个整数变量,0 代表男性,1 代表女性,因为我们的机器算法只能处理数值。我使用的度量标准是非常基本和简单的,但却是检查模型性能的快速方法。

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

最后一个图是 xgboost 模型的方差重要性。它告诉我们哪些词在分类中起着至关重要的作用。length是我添加的变量,作为每首歌词的长度。由于大多数说唱歌手是男性,男歌手的歌词长度可能会更长,因此成为一个重要的指标。

结论

我们可以得出这样的结论:性别之间的用词有明显的趋势,歌词也是如此。因为我们一直在唱我们所想的,我们想要的和我们梦想的,它们告诉我们社会想要听到的。因此,歌词文本挖掘对于了解我们自己是一个有趣的话题。这种分析可以应用于针对不同目标客户的营销口号或文案。或者我们可以进一步发展其他类型的作品,如小说、散文、新闻文章等等。

感谢您的阅读,希望您对这篇文章感兴趣。如果你想鼓励一个有抱负的数据科学家,请给一个或两个或三个掌声!我们非常感谢您的任何反馈,所以请在下面分享您的想法,或者通过 LinkedIn 联系我。我会带着另一个有趣的故事回来,所以直到那时,快乐的机器学习!!

VAE 根是什么鬼东西?

原文:https://towardsdatascience.com/what-the-heck-are-vae-gans-17b86023588a?source=collection_archive---------3-----------------------

是的,你没看错标题。虽然我的几个朋友是纯素食者,但他们中没有一个人知道任何关于 VAE-甘的事情。VAE-甘代表可变自动编码器-生成对抗网络(这是一个很好的名字。)在我们开始之前,我必须承认我不是这方面的专家(我没有电气工程博士学位,只是说说而已)。但在阅读了几篇研究论文和伊恩·古德菲勒长达 30 分钟的甘斯简介后,我有一个简短(但简洁)的总结:

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

Image reconstructed by VAE and VAE-GAN compared to their original input images

变分自动编码器(VAEs)

解释可变自动编码器的最简单方式是通过图表。或者,你可以阅读 Irhum Shafkat 关于的优秀文章,直观地理解变型自动编码器。在这一点上,我假设你对无监督学习和生成模型有一个大致的概念。教科书上对 VAE 的定义是,它“提供了对潜在空间中观察结果的概率描述”简单地说,这意味着 vae 将潜在属性存储为概率分布。

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

Variational autoencoders”- Jeremy Jordan

每个输入图像都具有通常可以描述为单个离散值的特征。变分自动编码器将这些值描述为概率分布。然后,解码器可以从输入向量的概率分布中随机采样。让我猜猜,你可能想知道什么是解码器,对不对?让我们后退一步,看看 VAE 的总体建筑。

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

变型自动编码器的典型设置无非是一个巧妙设计的深度神经网络,它由一对网络组成:编码器和解码器。编码器可以更好地描述为变分推理网络,它负责将输入 x 映射到后验分布 q θ (z∣x) 。可能性 p(x∣z) 然后由解码器参数化,这是一个生成网络,它将潜在变量 z 和参数作为输入,并将它们投影到数据分布 p ϕ (x∣z).

VAEs 的一个主要缺点是它们产生的输出模糊。正如 Dosovitskiy & Brox 所建议的,VAE 模型倾向于产生不现实的、模糊的样本。这与如何在 VAEs 中恢复数据分布和计算损失函数有关,我们将在下面进一步讨论。赵等人的一篇 2017 论文。艾尔。建议修改 VAEs,不使用变分贝叶斯方法来提高输出质量。

生成敌对网络

字典对对抗性的定义是涉及冲突或对立或以此为特点。在我看来,这是对 GANs 的一个非常准确的描述。就像 VAEs 一样,GANs 属于一类用于无监督机器学习的生成算法。典型的 GANs 由两个神经网络组成,一个生成型神经网络和一个鉴别型神经网络。生成神经网络负责将噪声作为输入并生成样本。然后要求判别神经网络评估和区分来自训练数据的生成样本。与 VAEs 非常相似,生成网络将潜在变量和参数映射到数据分布。

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

生成器的主要目标是生成越来越“愚弄”判别神经网络的数据,即增加其错误率。这可以通过重复生成看起来来自训练数据分布的样本来完成。一个简单的形象化方法是警察和网络罪犯之间的“竞争”。网络罪犯(生成者)试图创建类似普通公民的在线身份,而警察(鉴别者)则试图区分假的和真的个人资料。

变分自动编码器生成对抗网络(VAE-甘斯)

好吧。既然我们已经介绍了 VAEs 和 gan,是时候讨论什么是 VAE-gan 了。术语 VAE-甘首先在 A. Larsen 等人的论文“ 使用学习的相似性度量对像素之外的内容进行自动编码*”*中引入。艾尔。作者认为,变分自动编码器和生成对抗网络的结合优于传统的 VAEs。

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

VAE-GAN architecture, the discriminator from GAN takes input from VAE’s decoder

还记得 gan 被细分为发生器和鉴别器网络吗?作者建议可以使用 GAN 鉴别器代替 VAE 解码器来学习损失函数。这种修改背后的动机如上所述,vae 在重建阶段往往会产生模糊的输出。这种“模糊”在某种程度上与 VAE 损失函数的计算方式有关。我不会深入这个新的损失函数是如何计算的,但是你需要知道的就是这个方程组

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

Learned Losses in VAE-GAN

现在有很多的 L 但是玩笑归玩笑,上面的等式假设鉴频器的第L层具有以高斯方式不同的输出。结果,计算第 1 层和第 5 层输出之间的均方误差(MSE)就给出了 VAE 损失函数。GAN 的最终输出*D(x)*可用于计算其自身的损失函数。

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

脸书等顶级科技公司现在将生成模型加入了人工智能研究的清单。杰出的计算机科学家和人工智能梦想家 Yann Lecun 曾经说过*“在我看来,这(生成对抗网络)和现在提出的变体是过去 10 年中最有趣的想法。”*

除了 VAE GANs,许多其他的 GANs 变体已经被研究和实现。DCGANs,或深度卷积生成对抗网络,是在 Ian Goodfellow 介绍最初的 GANs 后不久引入的。我很高兴看到生成模型在未来的人工智能应用中找到它的角色,并潜在地改善我们的生活质量。

感谢您阅读我的文章。

感知器是什么鬼?

原文:https://towardsdatascience.com/what-the-hell-is-perceptron-626217814f53?source=collection_archive---------0-----------------------

神经网络的基础

感知器是单层神经网络,多层感知器称为神经网络。

感知器是一个线性分类器(二进制)。此外,它还用于监督学习。它有助于对给定的输入数据进行分类。但是它究竟是如何工作的呢?

众所周知,正常的神经网络是这样的

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

得到这本书👇

Python 机器学习简介:数据科学家指南

这对我帮助很大。🙌 👍

正如你所看到的,它有多层。

感知器由 4 部分组成。

  1. 输入值或一个输入图层
  2. 权重和偏差
  3. 净和
  4. 激活功能

仅供参考:神经网络的工作方式与感知器相同。所以,如果你想知道神经网络是如何工作的,那就学习一下感知器是如何工作的。

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

Fig : Perceptron

但是它是如何工作的呢?

感知器工作在这些简单的步骤上

a.所有输入 x 乘以其权重 w 。姑且称之为 k.

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

Fig: Multiplying inputs with weights for 5 inputs

b. 所有相乘后的值相加,称之为 加权和。

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

Fig: Adding with Summation

c. 加权和应用于正确的 激活函数

例如:单位步长激活功能。

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

Fig: Unit Step Activation Function

为什么我们需要权重和偏差?

权重显示特定节点的强度。

一个 偏置值允许你向上或向下移动激活函数曲线。

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

为什么我们需要激活功能?

简而言之,激活函数用于映射所需值之间的输入,如(0,1)或(-1,1)

为了更好的解释,去我以前的故事激活功能:神经网络

我们用感知器。

感知器通常用于将数据分为两部分。因此,它也被称为线性二元分类器

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

如果你想离线更好地理解机器学习。

我将每周发布 2 个帖子,所以不要错过教程。

所以,跟着我上脸书推特LinkedInGoogle+Quora 看看类似的帖子。

如果你有任何意见或问题,请写在评论里。

鼓掌吧!分享一下!跟我来。

乐意帮忙。荣誉………

你会喜欢的以前的故事:

  1. 交叉验证代码可视化:有点意思

2.线性回归:更简单的方法

  1. DIY Arduino 无线键盘

  2. 神经网络的激活函数及其类型

[## 神经网络中的激活函数及其类型

它是一条曲线(sigmoid,tanH,ReLU ),用于映射有界值之间的网络值。这就完成了…

theffork.com](https://theffork.com/activation-functions-in-neural-networks/)

5.Tensor flow 中的“张量”是什么鬼?

当坏数据阻碍机器学习成功时该怎么办

原文:https://towardsdatascience.com/what-to-do-when-bad-data-thwarts-machine-learning-success-fb82249aae8b?source=collection_archive---------8-----------------------

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

Photo by Tina Rataj-Berard on Unsplash

我们收集、存储和处理大量数据的方式的重大改进加快了人工智能(AI),更具体地说,是机器学习(ML)的努力。解决大问题需要大数据,幸运的是,我们现在可以毫不费力地收集数据,廉价地存储数据,并以闪电般的速度处理数据。

从推动更复杂营销的预测分析,到提高效率的机器人流程自动化,技术加快了企业寻求竞争优势的步伐。但撇开进步不谈,如果推动这些创新的数据是糟糕的,那么即使是最复杂的工具也毫无价值。

糟糕的数据质量是机器学习广泛而有益的使用的头号敌人,”数据质量管理的最初先驱之一托马斯·c·莱德曼说,他也被称为“数据文档”。持这种观点的不止他一个人。

众所周知,训练数据决定了机器学习系统的性能。质量数据返回质量结果;坏数据不会。更糟的是,它会自我复制。就这样,它在 ML 系统中流动,进入模型并产生有缺陷的信息。

坏数据如何破坏机器学习——以及如何降低风险

公司直接看到错误分析、错误预测和糟糕决策中有缺陷数据的影响。随着人工智能驱动的技术变得越来越普遍,ML 的质量要求变得越来越清晰,计算早期的“垃圾进,垃圾出”原则突然变得非常重要。

莱德曼警告我们,“坏数据可能会出现两次——第一次是用于训练预测模型的历史数据,第二次是该模型用于未来决策的新数据。”然而,数据科学家和工程师正忙于完善他们的人工智能、机器学习和深度学习算法——尽管“只有 3%的公司数据符合基本质量标准。"

虽然我们不能对机器大发雷霆,但我们可以采取措施减少不良数据。以下是坏数据阻碍 ML 成功的一些方式,更重要的是,我们可以做些什么。

数据缺失或不完整 *。*有时,由于信息不可用,数据被合并,字段留空;或者在收集数据时执行的分析与当前分析的目标不同,导致某些值被忽略。然而,学习、解释和预测——ML 的主要目标——在信息不完整的情况下很难实现。

解决方法: 虽然删除所有被缺失值困扰的数据有时很有帮助,但只有当缺失值的百分比很低时,删除才有效。另一种选择涉及使用合成数据:由算法创建的模拟真实数据特征的数据。合成数据是一种新兴技术,可以帮助消除访问完整训练数据的障碍。

数据不准确。 部署 ML 项目时的默认响应是在训练预测模型之前清理数据。好吧,但是清理并不总是识别或纠正每个错误,数据仍然可能被破坏。数据科学家已经花了大部分时间争论数据(准确地说是 80%);然而,一个预测模型的输出为后续模型提供燃料,这意味着即使是很小的误差也会产生重大的负面影响。

解决方法: 在每个阶段创造足够的时间来清理数据、评估来源和挑战假设。保持数据集的整洁可能是一项挑战,但是如果您将确保数据质量的责任委派给特定的个人或团队,事情会变得容易一些。为传入数据的质量创建并实施明确的标准,并努力立即找到并消除错误的根本原因。

数据有偏差 *。*当偏差渗入 ML 用于训练的数据时,数据完整性受损,预测变得错误。例如,LinkedIn 的搜索引擎可能反映了性别偏见,当搜索女性联系人时,网站会显示男性名字。当用户在平台上搜索“米歇尔”时,返回的是“迈克尔”,这让他们措手不及。

解决方法: 确保您的数据和分析数据的算法符合您当前项目的价值和目标。经常审计机器学习模型并仔细检查训练数据,以发现有意识和无意识的偏见。如果发现偏差,将其隔离并移除输入数据集中特定的有问题的部分。

总之

发现有缺陷的数据会带来真正的后果。然而, Looker (一家领先的数据平台公司)的首席数据传道者丹尼尔·明茨强调了一个更加令人沮丧的现实。“真正可怕的是当坏数据没有被发现。虽然浪费时间不好,但基于你认为你知道的事情做出错误的决定要危险得多。”

他继续说道,“当你知道自己不知道时,你就会变得谨慎。但是,如果糟糕的数据欺骗了你,让你认为你确实知道一些事情,你很可能会基于这些(错误的)知识提前收费。这才是真正的危险所在。”

在你的机器学习项目中建立高质量数据的文化是可能的。彻底的测试、清理和审计可以确保准确性,而仔细的计划可以发现并根除隐藏在训练集中的偏见。最终,你花越多的时间去理解你的数据——它来自哪里,你试图用它来实现什么——你的机器学习项目就越成功

分析实习面试有什么期待

原文:https://towardsdatascience.com/what-to-expect-interviewing-for-a-data-analyst-internship-d6a964655bc6?source=collection_archive---------1-----------------------

如何让自己在大学期间走上数据科学的职业道路

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

Photo by Luke Chesser from Unsplash

几个月前,我开始寻找暑期实习机会,我希望能找到能让我获得数据科学经验的职位,这个领域在过去一年里真正吸引了我的兴趣。去年夏天,我在一家物联网初创公司从事整合各种数据源、分析和机器学习的工作,我认为我拥有许多公司会在数据科学实习生中寻找的技能。

然而,我很快意识到,许多数据科学家实习角色是针对研究生的,有时会优先考虑博士生。因此,我开始瞄准分析实习,这对于本科生来说更容易获得,并且与数据科学家的职责有很大的重叠。

以下是我过去几个月在全国各种规模的公司面试分析实习职位的经历总结。这是一个相对较小的样本量,但我希望它能代表这些职位的招聘流程——如果你在面试分析实习时有过明显不同的经历,我很乐意听到它,以使这个指南更具代表性,对其他人更有用。

分析的角色是什么?

在解释分析实习生的招聘流程之前,我首先想澄清一下分析在技术领域的职能是什么,以及该职位与业务分析师和数据科学家有何不同,因为这些术语经常互换使用。

在科技公司,分析职位最常见的头衔是产品分析师、数据科学家-分析、数据科学家或数据分析师。拥有成熟数据组织的大公司通常会区分数据科学家-分析、数据科学家-机器学习/算法和数据科学家-推理,如果他们将数据科学称为分析的话。

然而,我倾向于将数据科学家视为数据科学家-机器学习/算法角色,其主要职责是构建生产 ML 模型,但也可能做一些分析工作。在这篇文章的其余部分,我将使用产品分析师来指代更广泛的分析职位。

一般来说,业务分析师是技术性最差的,产品分析师技术性更强,数据科学家是三个岗位中技术性最强的。在较大的公司,业务分析师和产品分析师通常是不同的角色,但在较小的公司,这些界限可能会模糊。

业务分析师大多专注于分析现有数据,为财务或运营决策提供信息,通常是直接回应提交给他们的业务问题。他们将检查历史数据以确定趋势并向决策者提供调查结果,但通常不负责建立模型或根据数据进行预测,因为他们主要使用 Excel、SQL 和可视化工具(Tableau、Looker 等)。).

虽然产品分析师也将分析现有数据以回答业务问题,但他们的主要重点是通过分析功能使用和实验来为产品决策提供信息,确定数据支持的产品差距,或估计新项目/功能的潜在影响。他们还倾向于与数据科学家合作更具战略性的数据项目,这可能需要预测建模。产品分析师倾向于用 SQL 进行他们的大部分工作,但是也应该至少精通一门脚本语言(Python、R 等)。)、Excel 和可视化工具。

数据科学家负责提出可以用数据来回答并将改善业务运营的问题,决定收集哪些数据来回答这些问题,构建模型/分析数据来回答问题,并对项目进行优先排序以最大化业务价值。他们对支撑各种机器学习模型的数学以及实现这些模型的编程技能有着深刻的理解,并从他们收集的数据中获得洞察力。

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

Photo by Annie Spratt on Unsplash

什么样的公司有分析实习生?

根据我的实习搜索,我在以下几类公司找到了分析实习机会:

  • 成长期创业公司(50 到几百人)
  • 一些较大的科技公司拥有各种职能的分析团队(人力资源、产品、营销、销售运营等)。)并在那些特定的团队里雇佣实习生
  • 将数据或分析产品/服务作为核心业务的公司
  • 对通常不是数据密集型的行业采用以数据为中心的方法的公司

产品分析师一般资格:

  • 优秀的解决问题的技巧
  • 很强的沟通技巧和商业头脑
  • 精通 Excel
  • SQL 通常是必需或首选的
  • 更多的技术岗位会希望看到某种编程知识(Python,R 等。)
  • 有使用商务智能工具(Tableau 等)的经验。)是有帮助的
  • 机器学习的经验通常是一个优势,可能会帮助你跨越产品分析师和数据科学家之间的界限,但通常不是一个硬性要求

面试流程:

面试过程因公司而异,但第一步通常是与产品分析师或分析团队经理进行电话面试。这些访谈大多是行为性的,除了典型的行为问题外,还有更多以数据为中心的问题,如“告诉我你用数据回答问题/做决定的时候”。除了对分析、公司和特定角色的兴趣之外,我通常还会被问到我的课程、过去的工作经验和兼职项目。

这些采访还包括一些假设的情况,在这些情况下,我被要求描述我将如何进行分析,或者我想要什么数据来回答一个给定的问题。我建议你熟悉一些模型(线性回归、逻辑回归/分类、聚类等)。)并理解它们适用于什么类型的问题。

在最初的电话采访之后,下一步通常是与产品分析师、分析经理、产品经理等进行一轮电话或视频采访。与最初的电话采访形式相似。一些公司给了我一些带回家的作业,要求我分析一些样本数据并交流结果,以测试我的编程和沟通技能。这些作业通常需要几个小时,可以使用你选择的任何工具(R、Python、Excel 等)来完成。).

一些公司也有案例面试,但我不会详细说明这些,因为有很多很好的资源来准备案例面试(我推荐案例和 Victor Cheng 的案例面试框架)。

结论

对于对数据科学感兴趣的本科生来说,分析实习是一个很好的机会,可以了解该领域的更多信息,并在数据科学的各个方面获得宝贵的经验,从询问相关问题到确定收集哪些数据,再到分析数据和交流结果。

了解各种模型,并能够识别哪些模型适合特定的问题,这将在面试过程中有所帮助,如果你没有太多相关的工作经验,兼职项目通常也会有所帮助。

我希望这有所帮助,如果你面试过类似的职位,我很想知道你的经历是否和我的相似。

在定制开发 web scraper 之前,需要记住什么?

原文:https://towardsdatascience.com/what-to-keep-in-mind-before-custom-developing-a-web-scraper-59e57e2cc077?source=collection_archive---------12-----------------------

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

每个企业都以这样或那样的方式依赖数据来帮助他们做出决策。这是一个数据驱动的世界,企业需要时刻保持警惕,随时更新数据。

如果企业能够在正确的时间以道德和高效的方式处理正确的数据,他们就能在竞争中保持领先。他们是怎么做到的?网页抓取(我相信你知道是什么!).

随着数据依赖性的迅速增加,对网络抓取服务的需求也在激增。让我在这个非常初始的阶段澄清一下,没有神奇的网络抓取工具可以从网络上的每一个网站抓取数据。每个网站在结构、导航、编码和呈现数据的方式上都不一样。因此,不存在这样一个“开箱即用的网络刮擦解决方案”。

在这里阅读一篇文章,了解更多关于刮擦的挑战和最佳实践

但是,同样,这并不意味着现成的网页抓取工具不起作用,它们起作用。但是,大多数被抓取的网站本质上都是动态的。每个网站都是不同的布局和结构定制编码。他们还定期进行结构调整,以跟上最新趋势。这使得编写一系列可以同时抓取多个网站的代码变得极其困难。这就是定制软件开发介入的地方。

定制软件开发团队将设计 web scraper 机器人来抓取成千上万的网页,所有这些都是为您定制的代码,以便您可以对市场趋势、客户偏好和竞争对手的活动设定愿景,然后相应地分析这些趋势。但是,网页抓取是一个全新的领域,在你雇佣一个定制的软件开发团队来根据你的需求建立一个定制的网页抓取器之前,你需要记住一些事情。

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

监控

你会惊讶地知道网站更新的频率!并不是所有的改变都会影响 web scraper,但是,保持对修改的标签是确保数据质量不受影响的关键。确保定制软件开发团队意识到这一点,并且他们有一些自动化程序来监控和记录目标网站上的变化。如果他们在网站的 dom 结构中看到任何危险信号或异常情况(丢失字段、修改的字段名称等),他们应该设置警报。这将有助于防止整个网页抓取过程中的数据丢失。

基础设施

网页抓取是一个小众的过程,说实话,并不是每个人都喜欢。它需要了解令人信服的技术组合。此外,对于 web 抓取来说,一个健壮的端到端基础设施是至关重要的。确保你雇佣的定制软件开发公司拥有支持资源密集型任务的基础设施,如开发、运行和维护 web scrapers,以更快的速度不间断地抓取大型网站。确保定制软件开发团队有能力不断调整和缠绕他们的 web 抓取基础设施和规模,以提高性能和数据质量。

数据质量

尽管从网络中提取信息很复杂,但将这些非结构化数据转化为干净、结构化的信息以便进一步分析则更具挑战性。而干净的数据才是 MVP!所以,要确保你雇佣的定制软件开发公司不只是做一个网页抓取器,提取信息,然后忘记它。确保他们以最可靠的方式审查和测试提取的数据。此外,确保他们在数据不一致和网络抓取机器人错误的情况下创建一个警报。数据质量保证和及时维护是不可或缺的一部分,你雇佣的定制软件开发公司必须对此负责。

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

维护和业务整合

对于现成的解决方案,网络抓取范围有限,维护也是一项挑战。当有小的结构修改时,这些工具面临极大的困难,它们需要不时地被维护和适应。在提取大块数据时,您应该始终进行查找,以最小化请求周期时间并最大化性能。确保定制软件开发团队对 web 抓取框架和基础设施有详细的了解,以便可以自动调整以获得最佳性能。如何处理这些数据?当然是互动分析啦!!在此之前,必须有一种方法,让组织可以毫不费力地将这些结构化的干净数据输入到自己的系统中。

收拾东西

这是一个利基领域,如果你在利基领域做一些事情,你一定会接受一些挑战。考虑到挑战的数量和端到端维护的需求,这可能会给内部开发团队带来不便。因此,如果你缺乏网络抓取所需的经验和基础设施,将网络抓取外包给成熟的定制软件开发公司总是一个更好的计划。二进制人员可以让您免除这些麻烦,我们在 web 抓取方面的丰富经验和专业知识可以帮助您分配更多的时间来分析手头的结构化数据,从而提高生产力和业务收益。

最初发表于: 双星

你是哪种类型的星巴克顾客?

原文:https://towardsdatascience.com/what-type-of-starbucks-customer-are-you-72f70e45f65?source=collection_archive---------8-----------------------

聚类分析显示星巴克顾客分为 4 个不同的类别。

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

每个人都有偏好。有些人认为没有什么可以打败墨西哥菜,而其他人则在不断寻找下一个最好的意大利餐厅。你有你最喜欢的汉堡店。你有你最喜欢的冰淇淋店。大多数关于人们喜欢什么和不喜欢什么的偏好会随着你在和谁说话而改变…除非你在谈论咖啡。在世界上所有的咖啡品牌中,几乎每个人都同意星巴克是你永远不会拒绝的地方。你可能不会再去麦当劳买汉堡了,但是你最好相信你会在一周的任何一天在离你最近的星巴克排队买你的浓缩咖啡。

我试着不舒服地坐在我的运动世界里,当我偶然发现星巴克关于他们的顾客、交易和他们收到的促销交易的数据时,我开始感兴趣。促销数据是有趣的,因为人们对他们将做什么来获得折扣购买有非常具体的感觉。对于任何公司来说,它们都非常重要,有助于让客户尝试你的产品,并留住客户。我最喜欢吃的地方是 Chipotle,不管路上有什么障碍,我都会每周至少去 3 次。我参加了他们的买一送一(BOGO)交易,当他们提供薯条和番石榴时,我会去打折餐,如果他们不这样做,我仍然会每天都去。面条和公司是我喜欢的另一个食物链,但我不会特意去那里吃饭;然而,如果他们给我一份 BOGO 的合同,你会看到我站在队伍的最前面。

两家不同的餐厅,对我购买的东西有两种不同的感觉。那么星巴克有哪些不同类型的顾客呢?人们会对不同的折扣促销做出反应吗?如果星巴克对顾客进行适当的分类,他们能在促销上赚更多的钱吗?我对星巴克顾客的分析将回答什么类型的人在他们的商店购物,什么样的促销优惠最适合他们所属的群体。

一如既往,你可以在 https://github.com/anchorP34/Starbucks-Customer-Clusters看到我的代码。请对你想了解更多的话题或我没有探究的想法留下任何评论或问题。

数据清理

Starbucks 数据集分为三个不同的文件: profile ,它包含关于客户的低级信息;portfolio,它包含关于可以收到的不同促销优惠的信息;以及抄本,它包含所有购买历史和关于客户何时收到、查看和完成促销优惠的信息。

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

Raw profile data

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

Raw portfolio data

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

Raw transcript data

PROFILE :为了清理 PROFILE 数据,我需要弄清楚如何处理性别和收入为空的数据,并将 begin _ member _ on 字段改为一个实际的日期,而不仅仅是一个字符串。看看缺失的性别,这些记录也是零收入的原因。我决定将未知的缺失性别的值设为“U ”,而不是删除这些记录(它们占数据的 15%)。为了找出合适的收入选择,我研究了整个人口的收入分布:

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

This needs to be cleaned up a little nicer

黑线显示的是分布的平均值,这看起来是一个不错的选择,因为它不会向我们的收入分布倾斜太多。在创建了 member_date 字段(该字段派生自 became _ member _ on 字段)之后,我还将该日期拆分为 member_year、member_month 和 member_day,以查看这是否有助于提供更多信息。下面是最终输出的样子:

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

Cleaned profile information

PORTFOLIO :每个促销活动都有一个数组,显示了某人接受促销活动的不同方式。将它转换成位标志是一个很好的做法。

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

Cleaned portfolio information

抄本:抄本数据帧中的值列是一个字典,有一个键和值与之相关联。不同的键值是优惠 id 和金额。要约 id 与要约的接收、查看和完成相关联,而金额只是交易金额。我更改了 value 字段以显示促销 id 或交易金额的值,value_type 字段随后成为字典的键。

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

Cleaned transcript information

探索性分析

查看客户数据的第一件事是了解哪些类型的人构成了客户群,而不必太深入。星巴克的顾客大约 50%是男性,35%是女性,其余的是其他人或不认识的人。

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

M — Male, F — Female, U — Unknown, O — Other

从收入分布来看,女性的收入分布更广,也比男性和其他性别的收入更高。由于我们将所有未知的性别记录替换为整个人口的平均收入,因此没有分布可供分析。

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

Females are holding up the weight for income distribution and are causing the overall mean income to be higher than both the mean male income and mean other income.

另一个有趣的信息是顾客成为星巴克会员的趋势。看看过去几年注册用户的数量,用户数量有两次大的跃升。我更想知道为什么这些日期如此相关,无论是应用程序升级还是全球推广(下载应用程序,我们会给你一个免费的咖啡杯,等等)。

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

Number of daily customer sign ups over time

为了让事情更清楚,我改变了图表,以年为线颜色显示每月的客户注册量。我用星号标出了我们在上图中看到的两次主要跳跃,它们看起来像是在完全相同的时间起飞的。那一定是由于营销部门做了些什么。星巴克今年的月订阅量也呈下降趋势,几乎抹去了他们从去年客户注册量激增中取得的任何进展。

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

Customer subscriptions per month with year being the color code

顾客在注册成为星巴克会员时似乎有相似的模式,并且基于他们的性别输入有不同的收入分配,但这仍然不能很好地代表他们是哪种类型的买家以及他们与其他买家有什么共同特征。为此,我们需要深入了解他们的购买历史,以及他们对不同促销活动的反应。

交易和促销分析

通过查看事务性数据,很容易看出一个人何时收到促销、何时查看促销以及何时完成促销。这个例子是一个随机的人在那天查看一个折扣优惠。折扣是消费 10 美元,获得 2 美元的信用。您可以看到,对于所有不同的值,时间都是 0,这意味着他们在收到报价的同一天采取了行动。从这一部分,我们可以尝试得出以下信息:

1。他们收到了多少次促销(BOGO、折扣、信息)
2。每种促销类型的完成百分比是多少(BOGO 和折扣,每种信息促销都在发布当天完成)
3 .自从成为星巴克会员以来,他们总共交易了多少次。花费的平均交易金额是多少
5。每位顾客的平均购物间隔天数和中位数是多少
6。完成一个报价平均需要多少天

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

Random customer receiving, viewing, and completing a promotional offer.

当试图查看人们完成促销优惠的成功率时,我必须将交易数据框架连接到它本身,在 value_type 表示“优惠 id”的地方连接到 person 和 value。我们还需要确保要约在收到时间之后或当天完成,并且符合要约持续时间的窗口。这可能很棘手,因为一个客户可能不止一次收到相同的促销活动(我很难发现这一点,回去弄清楚这一点简直是一场噩梦)。这也引发了其他问题,因为有些情况下,人们在促销截止日期之后才完成报价。一个例子:

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

This promotion was offered to these people at day 576 to them, and both people completed the offer 18 days later. This doesn’t make sense because the duration was only for 5 days? So maybe I am misunderstanding what duration means, or duration doesn’t really matter. I ended up ignoring the duration column.

从这里,我们可以汇总数据,在较高的层次上查看不同的促销活动、它们的成功率、它们对消费者的净回报以及对星巴克的净值。从整体来看,难度越高(你要花的钱越多),人们完成报价的可能性就越小。尽管 5 美元买 5 美元的 BOGO 和 10 美元买 10 美元的 BOGO 对消费者来说有着相同的净回报,但人们更倾向于买 5 美元买 5 美元,可能是因为方便。最成功的优惠是 7 美元优惠 3 美元,这实际上最终让星巴克赚了钱。我们还看到,20 美元的 5 美元折扣完全是浪费时间,只完成了 10%的时间。就完成报价所需的平均时间而言,人们更有可能比任何其他报价更快地获得 5 美元兑 5 美元的 BOGO,而 5 美元兑 20 美元的折扣促销需要最长的时间来完成,这可能是因为需要花费的金额更大。

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

Completed Offers is the success percentage of that offer being completed, Total Completions is the number of times that promotion was completed, Avg Days To Complete is the average days it takes for that promotion to be completed, Net Reward is the reward minus the difficulty, and Net Worth is the Net Reward * Completed offers. This shows how much money Starbucks makes on that promotion.

净资产应该是星巴克最重要的部分。对于 BOGO,星巴克并没有从这项交易中赚到任何钱。他们只是咬紧牙关让人们得到他们的奖励,然后希望在未来花更多的钱。因此,对于 BOGO 的这两笔交易来说,无论何时他们发出促销信息,净值都将永远是 0 美元;另一方面,折扣确实给了星巴克一些货币价值。折扣交易的净值是可以从折扣中获得的总价值乘以促销完成的机会百分比。20 美元买 5 美元的促销活动可能会让星巴克多赚 15 美元,但如果只有 10%的人完成了促销活动,他们应该只能得到 1.35 美元*实际收到促销活动的人数。因此,就净值而言,10 美元买 2 美元的折扣是给客户的最佳促销。

折扣和 BOGO 促销的结构应该以对星巴克来说财务上明智的方式推进。折扣促销应该给予那些经常回来的顾客,他们不需要很高的奖励就能回来。如果他们无论如何都会回来,给他们一杯 BOGO 没有意义,因为你在这笔交易中没有赚钱,但如果你给他们折扣,你会赚更多的钱,这对星巴克和顾客来说是双赢的。不能保证会持续回来的人应该获得 BOGO 氏症,以重新激发他们的兴趣,让他们更有可能在他们的商店花更多的钱。下一步是根据顾客的购买习惯将他们分成更合适的群体,并对谁得到什么样的促销活动做出更好的决定。

聚类段

由于没有正确的“答案”,使用机器学习和聚类算法是数据科学家遇到的更有趣的分析之一。预测股票价格或预测欺诈性银行交易可以查看历史是/否答案,但聚类没有与之关联的标签。它只是显示哪些值彼此最相似,并将它们分组在一起。

从技术上讲,您可以选择任意数量的集群来表示您的数据,但是评估您的集群是否在高水平运行的一种方法是运行肘方法。在肘方法中,我们寻找从每个点到其附属质心的误差平方和(SSE)的显著下降。由于 K(聚类数)的每一次增加都将创建更多具有更少点数的聚类,因此 SSE 和 K 的增加将呈现总体下降的趋势。由于较低数量的聚类更容易破译和分析,我们希望 K 是 SSE 开始变平之前的最后一个显著下降,因此,在图中寻找“肘部”。

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

Elbow method chart looking at the number of clusters that should be analyzed.

从图表中可以看出,4 个集群是对数据进行分析的合适的集群数量。这与我们的问题非常吻合,因为这 4 个集群可以分成这些类型的客户:
1。不会对任何促销活动做出反应
2。将有利于 BOGO 的过度折扣
3。相比 BOGO 的
4,更喜欢折扣。将响应 BOGO 的身体和折扣

输入数据将基于包括以下特征的客户矩阵:

discount_total_offers,discount_completion_pct,
discount _ min _ completion _ days,discount_max_completion_days,discount_completed_offers,
discount _ avg _ completion _ days,discount_avg_net_reward,
bogo_total_offers,bogo_completion_pct,bogo_completed_offers,bogo_min_completion_days,
bogo _ max _ avg _ completion _ days,
bogo_avg_net_reward

这是个人属性(年龄、性别、收入)、BOGO 和折扣属性(完成百分比、平均净回报、完成的平均天数、完成所用的最快时间、完成所用的最长时间)、信息促销(他们收到了多少)、以及整体交易趋势(完成的交易数量、总花费、交易之间的平均和中间天数)的组合。如果有任何值为空,它们将被替换为 0,因为客户没有参与该特定的兴趣领域(从未进行过交易,从未完成过促销活动,等等)。我还必须将性别字段从分类变量转换为 4 个虚拟变量,因为聚类算法只接受数值。

由于没有正确或错误的答案,也没有之前和之后的值,因此没有聚类的测试和训练集。一旦聚类被附加到客户矩阵中,我希望可视化不同的分布图,以帮助识别哪些类型的客户被聚集在一起。

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

集群 2 拥有最大的群体规模,占总人口的 33%(17,000 个客户,总计约 5,694 个客户),而集群 3 是最小的部分,约占 15%。我对集群 3 最感兴趣,因为与其他集群相比,这似乎是一个非常小的利基市场。

我首先从查看与宣传成功价值无关的信息开始,以了解什么类型的人适合这些群体。我寻找那些看起来色彩分割得很好、几乎没有重叠的地块。

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

Seaborn pair plot that cross analyzes different distributions and color codes them based on the associated cluster.

看上面不同的情节,最细分的情节似乎是任何与收入有关的情节。看起来第 3 类是低收入人群,而第 0 类是高收入人群。这就解释了为什么第 3 组是所有组中最小的一组,因为大多数星巴克收入较低的四分位数正好在 45K 美元左右,但这个组的收入最高也就这个数。

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

Income distributions separated out by Cluster

现在来看事务性数据,要分离出集群要困难得多,但我们仍然可以带走一些信息。如果我们看一下 BOGO 和折扣的完成百分比,看起来集群 3 似乎到处都有这两种促销活动,但集群 0 似乎在这两种促销活动中的成功率都在 0.5 以上。

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

Seaborn pair plots on transactional information

从总交易量与总交易量来看,看起来第 0 类人群在每笔交易中花费更多,并且不经常去,而第 3 类人群则相反。集群 1 和集群 2 都在中间,这是有道理的,它们并不真正倾向于一个方向或另一个方向,因为它们构成了人口的大多数。

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

Total transactions vs total transaction amount shows how many times customers make transactions and how much they spend total.

但那又怎样…

这些都是关于这些集群的相似点和不同点的有趣事实,但是星巴克如何比仅仅在一年中盲目地给人们不同的促销活动赚更多的钱呢?

我们可以通过促销活动的预期回报来确定我们的聚类算法是否有助于客户细分。预期回报考虑了星巴克从折扣中可能获得的总价值乘以事件发生的概率(在这种情况下,有人完成了他们的促销交易)。我们希望评估与我们的集群相比,整体人口的净值,以确定我们的集群是否更适合某种类型的推广。

如果我们将每个集群在每项奖励上的表现与总体平均水平进行比较,这有助于利用我们应该关注的促销活动。请记住,BOGO 应该让顾客回到星巴克,折扣应该集中在那些持续光顾的顾客身上,以保留他们购买的一些东西。如果我们看一下集群 0,他们以 34%的成功率回应了 20 美元买 5 美元的促销交易!整个人群的成功率只有 9%,那么你为什么要给他们一份 BOGO 的合同呢?当你给每一个客户这笔交易时,你可以从他们身上赚到 5.10 美元,相比之下,你给所有人的平均收益是 1.35 美元。集群 2 和集群 3 对折扣促销的反应不如集群 1 和集群 2,所以给他们 BOGO 促销来重新吸引他们在星巴克“免费”购物,而不是通过给他们打折来吸引他们,这将是更聪明的做法。

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

Breakdown of how each cluster responded to each of the promotional deals. The BOGO_or_Discount field is based off a function that looks at the cluster completion percentage and the overall population completion percentage, and if the cluster value is greater than the overall population completion percentage (with a 5% buffer), then you should offer them a discount deal. If not, you should offer them a BOGO deal to get them reengaged.

通过将集群 0 和 1 作为“折扣促销集群”,您将获得更高的折扣预期回报,这将有助于弥补集群 2 和 3 的 BOGO 交易。你留住了每天都会回来的顾客,不管他们会喜欢什么样的小奖励,而你则专注于让第 1 和第 2 类顾客进门并享受你的产品。星巴克通过促销让顾客更开心,同时他们也在这个过程中保留了更多的钱。

反思与总结

这是公司必须处理的一个经典问题,我认为 4 个集群是解决这个问题的最佳方法。在我要处理的不同数据集当中,我希望为我们的流程保留尽可能多的未被触及的信息。这就产生了问题,因为有些人的上市年龄是 118 岁,或者有些人在交易到期后才完成报价。这些都是我希望能更清楚地了解的事情,以便获得更清晰的数据和更好的结果。

对于这个项目来说,一些可能对我更有利的改进是使用更好的工具,比如 SQL 数据库来运行我的一些分析。如果我使用 SQL 一次性计算出人们交易的滚动差异,而不是单独计算,那么客户端矩阵会运行得更快。因为我在 python 中没有这种能力,所以单独运行这部分分析大约需要 15 分钟。所以如果我搞砸了,就要再花 15 分钟才能看到结果。我也希望我能有更多的事实信息来处理,比如购买了什么特定的产品,或者这些顾客的大致居住地点。人的居住面积影响消费习惯吗?人们对特定产品使用 BOGO 或折扣交易吗?这些信息将有助于聚类结果,并可能做出更好的促销决策。

利用星巴克的个人、交易和促销数据,可以在顾客的认可和消费习惯方面产生巨大的波动。我的聚类方法表明,有些人是低收入和低消费的顾客,他们应该得到 BOGO 促销,有些人对这两种促销活动都反应良好,有些人是高收入的星巴克常客,他们应该得到更多的折扣促销。当正确地将这些志同道合的人联系在一起时,星巴克可以确保合适的人得到提升,这将提升他们在星巴克的地位,同时继续收获明智商业决策的好处。

过去在 2017 年花费数百万美元的事情,现在可以用机器学习解决,每月 499 美元

原文:https://towardsdatascience.com/what-used-to-cost-millions-in-2017-can-now-be-solved-with-machine-learning-for-499-month-10b5b4bb1173?source=collection_archive---------11-----------------------

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

Photo by Marina Vitale on Unsplash

各公司每年都花费数千万美元,试图通过动态锁定客户来提高他们的客户参与某事或购买某物的可能性。从网飞推荐到挑选最近的 Lyft 司机,内容个性化、排名和推荐对数字经济的许多方面都至关重要。

根据 Evergage 公司进行的一项调查(T1 ):

受访者继续报告他们的实时个性化工作有了实质性的改进或“提升”,88%的人表示他们看到了个性化带来的可衡量的改进,23%的人报告改进超过 20%。这一成功导致投资增加,因为 46%的受访者预计他们的个性化预算在未来一年将会增加。

此外,根据 McKinsey.com 的:

个性化可以降低高达 50%的采购成本,提高 5%到 15%的收入,并提高 10%到 30%的营销支出效率。

这实际上是一个很难解决的问题,因为它涉及到理解顾客,从潜在的数百万件商品中挑选,到按照最有可能吸引的方式对商品进行排序,有着多层次的复杂性。

此图展示了这些概念背后的架构的基本轮廓。

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

Recommending videos to customers: https://research.google.com/pubs/pub45530.html

你怎么知道先给客户看哪个视频、哪个产品、哪个广告、哪个新闻帖子?

部分答案来自于对你的客户的了解。但是这个问题已经很好的解决了。大多数电子商务、视频流和其他类型的网站都很好地掌握了给定用户是谁,他们来自哪里,以及他们过去从事过什么。

但是,公司花了很多钱来交叉参考这些数据,与过去的行为,并使用它来以某种方式生成用户更有可能参与的事情的排名。

事实证明,机器学习是解决这个问题的好方法。

学习客户的行为,然后将这种学习应用到一些预测中,这相当于机器学习 101。

这就是为什么机箱要做建议箱。我们希望公司能够访问这些强大的、支持机器学习的功能,运行在他们自己的环境中,基于他们自己的数据,而不必花费通常的费用和时间来自己解决所有这些问题。

你可以在这篇博文中阅读更多关于 Suggestionbox 是什么以及它是如何工作的信息:

[## 介绍 suggestion box:Docker 中的个性化和推荐机器学习…

今天我们非常自豪地宣布 Suggestionbox 的开发者预览版,这是最新的 ML-in-a-Docker-container…

blog.machinebox.io](https://blog.machinebox.io/introducing-suggestionbox-personalization-and-recommendation-machine-learning-in-a-docker-b9d69f937716)

但对于任何试图为数百万用户解决这一问题的企业或初创公司来说,关键的一点是,你现在可以通过巨大的因素增加用户参与度,只需每月支付区区 499 美元。

这是应用机器学习 ROI 机制的一个巨大转变,因为它不再通过按 API 调用收费或限制请求数量来限制使用。

公司可以在他们自己的基础设施中,在防火墙之后,在他们自己的数据上运行这项技术。最重要的是,他们可以创新、实验和尝试新事物,而不会产生巨大的云账单。

这将会改变游戏规则。

什么是机器盒子?

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

Machine Box 将最先进的机器学习功能放入 Docker 容器中,这样像您这样的开发人员可以轻松地将自然语言处理、面部检测、对象识别等功能融入其中。到您自己的应用程序中。

这些盒子是为了扩展而建造的,所以当你的应用真正起飞的时候,只需要水平地添加更多的盒子,直到无限甚至更远。哦,它比任何云服务都便宜**(而且可能更好)……而且你的数据不会离开你的基础设施。**

有戏让我们知道你的想法。

玛丽亚飓风期间和之后波多黎各在谷歌搜索什么?

原文:https://towardsdatascience.com/what-was-puerto-rico-googling-during-and-after-hurricane-maria-9e034d1752d1?source=collection_archive---------9-----------------------

2017 年 9 月 20 日,波多黎各经历了有史以来最严重的飓风,名为玛利亚。作为风速超过 155 英里/小时(250 公里/小时)的四级飓风(在登陆波多黎各时),其过境结果是混乱的,致命的,对该岛是灾难性的,导致 4600 多人死亡,损失超过 900 亿美元。所述损害主要表现在该国基础设施的恶化和破坏,包括住宅、建筑、道路、电线、移动服务和互联网线路。继这一大气事件之后,在玛丽亚之前两周,——五级飓风——经过波多黎各北部,带来了第一场破坏性的暴雨和大风,最终被玛丽亚超过,并为她奠定了基础。

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

Somewhere in San Juan, Puerto Rico (by me, https://www.instagram.com/juandesr/).

由于该岛缺乏电力,互联网接入受到限制,并且有一系列新的优先事项和必需品,我预计整个人口的互联网使用模式将会发生变化。这一假设促使我进行这项研究。

在这个实验中,我将展示居住在波多黎各的人们在飓风期间以及飓风袭击后的几个星期里在谷歌上搜索的内容。此外,我将补充这一分析与 Alexa 排名的变化有关的信息,这是一个估计网站受欢迎程度的指标,是岛上人民经常光顾的一些顶级网站。

为什么在飓风过去几个月之后,我还在做这件事?主要原因是让数据收敛并回到其自然状态,同时也让人们了解将要讨论的主题,因为 2018 年飓风季节刚刚开始。

方法、工具和数据

关于谷歌搜索的数据是使用 谷歌趋势 获得的,这是一项谷歌服务,它提供了在搜索查询的给定地区和时间相对于图表【数据】最高点的搜索兴趣。换句话说,这些信息并不代表给定关键词或短语被谷歌搜索的次数,而是一个流行度分数。某一天排名 100,意味着该关键字在当时获得了最高的流行度;随后,50 分表示该关键字的受欢迎程度是其“100”对应项的一半。我将在这个项目中介绍的大多数可视化峰值在 100,然而,我希望读者能够将这个峰值与图表的其余部分进行比较,以了解变化有多大。

正如导言中提到的那样,飓风于 2017 年 9 月 20 日在波多黎各登陆。因此,本项目使用的谷歌搜索数据从 2017 年 1 月 1 日持续到 2018 年 6 月 24 日。通过使用飓风前几个月的开始日期和飓风后几个月的结束日期,我们将能够了解搜索关键字的流行程度是如何演变的。

此外,值得一提的是,数据具有每周粒度级别,这意味着 Google Trends 每周都会更新它,因此无法获得该关键字在给定日期的流行度。此外,该数据仅对应于在波多黎各进行的搜索,因此它不是一个全球流行度得分。关于所研究网站的 Alexa 排名信息,我将通过在https://www.alexa.com/上免费提供的情节图片来呈现。

使用 R 制作分析和绘图。

玛丽亚时代波多黎各流行的谷歌搜索

飓风穿过该岛对其大部分通信系统造成了毁灭性的破坏,使人们无法沟通,只能有限地使用固定电话、手机和互联网。最重要的是,考虑到人们需要必需品,如水、食物、药品、汽油、现金和娱乐(几周没电、不工作、无事可做,让每个人都感到无聊),而且他们没有与家人和朋友沟通的媒介。这些情况使我认为这些受影响的人会利用他们有限的上网机会来寻找应对这些情况的方法。此外,我想提出的第二个非常可靠的假设是,大多数搜索来自连接到移动宽带网络的移动设备。我背后的理由是,由于有线电视的恶化,大多数家庭都无法接入互联网,加上这是我去年访问波多黎各时经历的事情。

Alexa 等级

波多黎各的网络中断非常严重。事实上,据估计,玛丽亚过后三个月,该岛的交通量只有飓风前两天的 54%——恢复缓慢。

虽然知道这一点让我们知道这个问题有多严重,但这个统计数据(在我看来)并没有准确地告诉我们这如何转化为网站的流量。幸运的是,有一个平台提供这些信息。

Alexa Internet 提供了一个名为 Alexa rank 的关键指标,这是一个结合了网站每天接收的访客数量以及网站页面浏览量的分数,用于分配人气排名。研究这一分数随时间的变化为我们提供了了解特定网站访问量下降所需的信息。在这个项目中,Alexa 排名被用来支持新闻中读到的关于互联网使用减少的故事——以及我的假设。

使用这个分数的一个有效方法是研究一个国家中访问量最大的网站的全球排名;如果计数下降,这意味着该页面正在接受较少的访问。以波多黎各为例,我选择了波多黎各访问量最大的网站谷歌波多黎各(google.com.pr)来展示这一点。

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

Alexa rank of google.com.pr from July 2017 until July 2018

前面的图取自 Alexa,描绘了 google.com.pr 全球地位的发展。一开始,我们可以观察到排名稳步上升,然而,在 Maria 之后,分数突然下降了约 200 个位置,随后在 2017 年 12 月立即上升。

是否可以得出结论,这种下降是玛丽亚和互联网问题的结果?我会说是;这个巧合太精确了。

在继续之前,我必须承认,2018 年 5 月左右会有第二次下降,比飓风造成的更严重。为什么?这与之前的下降有某种联系吗?也许这是一个季节性的下降,这就提出了一个问题:玛丽亚下降可能只是一个季节性的影响吗?恐怕就我目前掌握的数据的数量和质量而言,我无法回答这个问题。

现在我们已经对波多黎各的互联网全景有了一个精确和更广泛的了解,我将继续展示在谷歌搜索中找到的结果,从查询航空公司开始。

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

“Don’t leave me internet!”

航空公司

首先要讨论的话题是航空公司。在这里,我将说明针对从波多黎各飞往美国的一些最常见的航空公司的各种搜索查询的 Google Trends 受欢迎程度。为什么主要是飞往美国的航班?这是因为波多黎各人是美国公民,我认为在这样的危机中,他们中的许多人会选择离开这个国家;需要考虑的一个相关问题是,在飓风发生时,许多企业和商业都关门了,这意味着大量的人失业,事实上,失业率有小幅上升。

对于该图及以下内容, y 轴代表一年中特定一天的 Google Trends 受欢迎程度,显示在 x 轴上。此外,虚线标记了 9 月 20 日(T7),即飓风到达该岛的日期,图表的图例正是我在谷歌趋势中查询的术语。

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

Puerto Rico’s Google Trends popularity level of “american airline”, “delta” and “jetblue”

数据显示,许多居民确实在寻找航班,可能是为了离开该岛。此外,下一张图显示了旅行费用聚合平台 Skyscanner 的搜索热度。

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

Puerto Rico’s Google Trends popularity level of “skyscanner”

为了验证我的结果,证明居民正在离开,我看了看新闻,发现波多黎各统计研究所证实,6%的人口逃离了这个国家。

快递和邮件服务

在危机最严重的时候,寻找货物、水和食物是一项艰巨的任务。资源稀缺且难以获得,因此,人们不得不在加勒比海的烈日下排长队,才能买到一瓶水等普通物品。为了缓解这种不足,受灾居民居住在国外的家人和朋友通过邮件服务寄送包裹。

下图显示了美国邮政署​、联邦快递和 UPS 的搜索增量,根据该图,对联邦快递的查询是第一个达到 100 流行度值的查询,其次是 USPS 和 UPS。

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

Puerto Rico’s Google Trends popularity level of “usps”, “ups” and “fedex”

想了解更多关于邮差如何为岛国的恢复做出贡献的信息,我推荐路透社的以下文章:美国邮差成为公关恢复的英雄

购物和金钱

波多黎各居民使用邮件的唯一目的是互相发送货物吗?还有什么吗?或者,我们也可以问为什么有这么多关于快递服务的搜索查询的原因之一是否是因为网上购物。虽然我们永远无法确定,但数据可以告诉我们,网上购物平台的使用,或者至少是谷歌对这类商店的搜索,也在增加。我认为(我相信你们大多数人也是如此)这样做的原因是为了找到另一种购买所需物品的方式。

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

Puerto Rico’s Google Trends popularity level of “amazon”, “ups” and “ebay”

亚马逊和易贝的数据表明,这两个平台的搜索量确实出现了激增。尽管如此,值得考虑的是,这些热门话题发生在繁忙的圣诞节期间,这个时期这些关键词越来越受欢迎。尽管如此,亚马逊和易贝的得分都高于去年圣诞季的得分;2016 年 11 月 27 日至 12 月 3 日,易贝的人气为 75(-与 2017 年相比下降了 23.4%),亚马逊的人气为 66 (-33.3%)。

与购买和购物问题相关的是钱的问题。不出所料,大多数银行都关门了。自动提款机现金不足或出现故障,一些人无法亲自去取;这个问题如此严重,以至于整个城镇都没有一台正常工作的自动取款机。为了绕过这些障碍,人们转向在线解决方案来转移资金。

我的下一个图表是关于波多黎各最大的银行 Banco Popular,本地转账移动应用程序 ATH·莫维尔和全球转账支付服务 PayPal 的搜索量增长。

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

Puerto Rico’s Google Trends popularity level of “ath movil”, “banco popular” and “paypal”

社交网络

在危险时刻,特别是在像波多黎各正在经历的紧急情况下,沟通发挥着重要作用。然而,正如在介绍中提到的那样,当时的通信很困难(就我个人而言,我花了大约一周的时间才联系到我的亲戚),因为岛上的大部分地区完全断开连接。尽管如此,那些能够访问互联网和社交网络的人正在利用它们来消除影响每个人的连接中断。通过我的接触,我感受到了一些相当奇怪的事情,如果我可以说是美好的事情,那就是很多人主动提出亲自去拜访住在他们附近的朋友和亲戚,以确保他们一切都好。例如,假设一个住在美国名叫 Pepe 的人无法联系到他住在波多黎各 Aibonito 的母亲。幸运的是,佩佩有一个朋友,住在他妈妈附近,能够去她家传递他的信息。

在下一次观想中,你将能够看到对脸书和推特的搜索突然增加。

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

Puerto Rico’s Google Trends popularity level of “facebook”, and “twitter”

这两个平台的受欢迎程度都有所上升,Twitter 是第一个恢复到“正常”水平的平台。

波多黎各人经常光顾的另一个高人气平台 insta gram(Alexa 排名 13)怎么样?与脸书和 Twitter 不同,IG 经历了受欢迎程度的(小幅)下滑。

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

Puerto Rico’s Google Trends popularity level of “instagram”

新闻

了解事实并掌握当前事件的信息是紧急情况下最重要的(如果不是最重要的)细节之一;波多黎各人对此并不陌生,因此,看到搜索当地新闻媒体的受欢迎程度上升也就不足为奇了。

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

Puerto Rico’s Google Trends popularity level of “endi”, “noaa” and “wapa”

前一个情节是关于波多黎各的主要报纸 El Nuevo día(T1)、国家海洋和大气管理局(NOAA)和 WAPA 电视台的分数。与过去的图表不同,这张图显示上升发生在 Maria 之前几周,也就是说,它对应于 Irma。

我还要指出波多黎各所描述的“阿达·蒙松现象”。她是谁?艾达·蒙松可能是波多黎各最著名的气象学家。她之所以“出名”是因为她通过自己的脸书主页发布了大量清晰准确的天气信息(这可能与脸书的崛起有关吗?)在飓风前后的日子里;迷因、笑话和人们告诉她她有多特别是围绕着她的一些事情。阿达的剧情是下一个,到厄玛的时候也表现出了相当的巅峰。

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

Puerto Rico’s Google Trends popularity level of “ada monzon”

最后,这个部分的最后一个可视化是关于美国新闻网站的搜索。促使我制作这一集的原因是分享美国总统唐纳德·特朗普(Donald Trump)对波多黎各的访问(10 月 3 日)如何影响了波多黎各居民对外国新闻媒体对他的访问以及他的扔纸巾技能的评论的兴趣。

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

Puerto Rico’s Google Trends popularity level of “cnn”, and “fox news”. The dots along the lines is to aid the location of October 3.

图表显示,尽管峰值与其他峰值一样处于最大值,但在特朗普停靠波多黎各的那一周,得分仍然很高。然而,我不能断定这种行为是因为那次访问。

代理和服务提供商

对信息和新闻的搜索并不仅限于上一节提到的网站和来源。正如我不止一次说过的,岛上大部分地区没有电、饮用水和互联网。在这种情况下,我认为,有必要尝试联系此类服务的提供商,询问或寻找有关中断状态的信息。因此,我怀疑对波多黎各电力局(我们在公关中称之为 AEE)、波多黎各沟渠和下水道管理局(AAA)以及 Liberty(一家互联网服务提供商)的搜索会增加。我的下一张图是关于这些机构的,正如所推测的,它证实了我的怀疑。

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

Puerto Rico’s Google Trends popularity level of “aaapr”, “aeepr” and “liberty”

娱乐

日复一日无所事事,什么都不开放,海滩不适合公众,这让你感到无聊。所以在这段休息时间里,你可以通过手机快速娱乐自己。在这一部分,我选择研究波多黎各人经常访问的两个平台:网飞,它被 Alexa 列为波多黎各第 18 大最受欢迎的网站,和 Pornhub,Alexa 排名第 29。波多黎各在这段时间看了更多的网飞和色情电影吗?

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

Puerto Rico’s Google Trends (smoothed) popularity level of “pornhub”, and “netflix”

不是网飞,但是是色情。

老实说,这让我很惊讶,尤其是因为网飞的减少和色情网站的增加之间的关系是如此的明显。

作为一个技术边注,这个图看起来不同于其他图,因为我决定平滑线,由于原始数据有许多高点和低点。

替代能源

在停电季节的高峰期,发电机是黑暗中闪耀的光。事实上,在那里我们有太多的人,由于噪音,晚上睡觉是一个障碍,直到烟雾引起健康问题;的确是一个发电机岛(据《纽约时报》报道)。然而,发电机是唯一的能源来源吗?虽然我们无法确定,但数据表明人们对太阳能的兴趣有所增加。因此,下一个情节是关于搜索和寻找“plantas electricas”(发电机)和“energia solar”(太阳能),它表明对发电机的兴趣始于飓风 Irma 前后。

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

Puerto Rico’s Google Trends popularity level of “energia solar”, and “plantas electricas”

波多黎各有什么没用谷歌搜索的?

这个项目的中心前提是,波多黎各正在遭受重大的互联网中断,使许多人无法访问它,我们通过解释文章开头显示的几个网站的 Alexa 排名下降来证实这一点。尽管互联网形势严峻,但我们已经看到,在飓风到来后的几周内,特定关键词的受欢迎程度(在大多数情况下)达到了最大值。然而,如果互联网接入没有正常工作,人们使用他们所拥有的一点点资源来关注重要的事情(根据我的假设),那么一定会有许多关于波多黎各人通常会寻找的“常见”事物的谷歌搜索查询,这些查询的受欢迎程度得分会下降。

在这一部分,也是最后一部分,我将展示三个图表,显示波多黎各排名最高(涉及流量)网站的搜索人气下降。

在“娱乐”部分,展示了两个视频流媒体平台——网飞和 porn hub——的搜索量是如何在飓风过后迅速上升的。这就引出了下面的问题:在搜索电影院时也观察到了这种行为吗?答案是否定的。像其他任何事情一样,电影院也因为飓风的影响而关闭,包括停电,所以看到这种搜索的突然下降并不奇怪(去年 12 月,我在公关公司时,去了两次电影院,两次都是因为停电而中断了电影)。

下图显示了对波多黎各最大的连锁电影院 加勒比电影院 的搜索演变,根据 Alexa 的数据,该电影院的网站在岛上的访问量排名第 77 位。在图中,我们可以很容易地看到,通常为平均水平的谷歌评分在飓风过后的一周内下降到了 7。

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

Puerto Rico’s Google Trends popularity level of “caribbean cinemas”

搜索量下降的第二个平台是Clasificados Online,这是一家本地分类网站(Alexa 排名第 16 位),销售/购买汽车、房地产和广告工作。有趣的是,在减少后不久,圣诞节期间该平台的查询量激增,并持续到 2018 年的前两个月。下图解决了这个问题。

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

Puerto Rico’s Google Trends popularity level of “clasificados online”

我将用一个情节来结束这一节,这个情节说明谷歌搜索 Pinterest (Alexa 排名 48)和维基百科(Alexa 排名 10)的崩溃。关于 Pinterest 的数据表明,该平台的受欢迎程度迅速下降,而在维基百科的情况下,与之前的例子相比,这种下降是温和的,几乎没有意义。

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

Puerto Rico’s Google Trends popularity level of “pinterest”, and “wikipedia”

关闭

在 16 次可视化中,我们发现、解释并在某些情况下与其他来源交叉检查了飓风玛丽亚登陆以及互联网接入短缺对波多黎各人民谷歌搜索模式的影响。通过这些数据,我们能够认识到这样的事实,如商品和必需品的缺乏促使人们使用其他媒介,如网上购物和邮件来获得他们需要的东西,波多黎各不是那么秘密地爱上它最喜欢的天气预报员,以及色情是最受欢迎的娱乐方式之一。

在危机和危险的时刻,团结和合作的意识没有被玛丽亚之风带走。脸书给我们看了这个。搜索量的激增表明,许多人至少在尝试相互交流。最重要的是,对“ATH·莫维尔”的查询显示,人们希望通过他人转账来提供帮助,关于邮件服务的图表显示了那些不在现场的人的慷慨。

另一个积极的迹象是对太阳能感兴趣的人越来越多。虽然很遗憾不知道有多少人搜索过这个,但之前的数据显示至少有一个人想在可持续能源的问题上展示自己。这就引出了我的最后一点,教育和定位。

如果我,胡安·德·迪奥斯,一个波多黎各人,想要你,亲爱的读者,从你已经读过的最后 3660 个单词和你观察到的 16 个图表中去掉一些东西,那就是面对这种大气事件的准备和定向应该是优先的。更重要的是,我想把这个评论延伸到文章中提到的机构和当局。如果上述实体采取必要的措施,也许买水的队伍会更短,人们会在电影院欣赏更多的电影,我就不会写这篇文章了。然而,关于波多黎各,我必须承认,由于该岛目前面临的不稳定和微妙的经济局势,这不是一项容易或可行的任务。

如果我们做得更好,我可以保证我的下一张图看起来会有所不同。

感谢阅读。

欢迎讨论、评论,甚至指正:)。代码和图像可在【https://github.com/juandes/pr_maria_searches】获得。还有,你可以打https://twitter.com/jdiossantos联系我。

得益于数据可视化,您可以从您的 Facebook Messenger 历史记录中了解到什么

原文:https://towardsdatascience.com/what-you-can-learn-from-your-facebook-messenger-history-9ac63e962885?source=collection_archive---------13-----------------------

为什么不充分利用脸书掌握的关于我们的所有数据呢?

我一生交换了多少条短信?我和谁聊得最多?我会发送或接收更多的消息吗?我什么时候发短信最多?

TL;博士:如果你想回答这些关于你的 Facebook Messenger 历史的问题,请查看FBMessage Explorer

自从我小时候有了手机,开始大量发短信,我就一直对这个活动的统计数据很好奇,很长一段时间,我都无法回答这些问题。然而,我的短信习惯逐渐从短信转向了 Facebook Messenger,以至于我现在几乎只使用 Facebook Messenger 发短信。一个伟大的事情是,它可以下载你所有的短信历史,并对数据做任何你想做的分析。

因此,当我在工程学院的最后一年不得不为 Dataviz 项目选择任何主题时,我抓住了这个机会:我和我的合作伙伴一起开发了一个工具,它可以让我了解我想要的关于我的短信习惯的一切,甚至更多。我们称它为 FBMessage Explorer ,好消息是,任何人都可以使用这个工具。我们试图让它尽可能地易于访问:不需要写一行代码,只需点击!

本文的第一部分粗略地解释了不同的特性,以及如何阅读结果,然后我深入自己的消息,概述了我可以为自己提取的一些见解。然而,我的想法并不是向世界展示我的短信生活,而是做一个这个工具的演示,看看你能从中得到什么,这样你就可以用它来处理你自己的数据了。最后一部分是如何下载和使用您的数据的详细说明,所以请继续下去,并尝试自己!

让我们看看这一切代表了什么

当你第一次打开网站时,你首先看到的是这个奇怪的屏幕,到处都是点,底部和左侧窗格是曲线,右侧是条形图。

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

Overview of FBMessage Explorer

这对应的是什么?让我们一个一个地看每一部分。

  • **散点图:**工具的主要部分是带有所有圆点的中心部分。每个点对应一条信息,发送或接收,根据发送的时间来放置:横轴对应日期,纵轴对应一天中的时间。
  • **曲线:**作为补充,在左手边,你可以找到你一天的轮廓:在一天中的任何时间发送了多少条消息,沿着你的消息的整个历史。它帮助你确定一天中你最活跃或最不活跃的时间。下面的曲线也是如此:你可以看到一年中你最活跃或最不活跃的日子和时期。
  • **条形图:**在右手边,你可以找到一串条形图。每个条形图根据给定的标准给出消息的重新划分。这样,你可以看到发送/接收了多少条信息,或者在每次对话中交换了多少条信息等等…
  • **消息:**最后,如果你想知道“我在周二凌晨 4 点发的这条消息到底是什么?”只需将鼠标悬停在该点上,并阅读右下角的消息。

可以过滤!

为了让用户能够深入了解他们历史中非常具体的方面,我们可以根据多种标准过滤数据。如果您单击右侧条形图中的任何一条,将只留下与该标准相对应的消息,您将看到一切都发生了变化:点将消失,条形图和曲线将更新以反映所做的选择。例如,这样你可以只分析你发送的信息,回到你和你喜欢的人之间的单条线索,或者排除所有的群组线索,专注于一对一的对话。

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

Filtering

但不是这样,你还可以过滤日期和时间:只要抓住灰色窗口的手柄,拖动它,使它适合你想研究的时期。您将看到所有中心疼痛放大到所需的区域,并且不同的条形图会根据选择进行更新。一天中的时间也是如此!

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

Filtering on time and date

但是真正的真正力量在于可以做交叉过滤!这让你可以只分析你在 2017 年 5 月的晚上在一个特定线程中发送的消息的模式——或者真正的任何过滤器组合!

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

Cross filtering with multiple criterion

颜色;色彩;色调

最后,如果你点击不同条形图旁边的色轮,每个点会呈现不同的颜色,与对应的条形图相匹配。通过这种方式,你可以识别出你没有注意到的模式。

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

Using colors

我从自己的历史中学到了什么

在这个关于工具如何工作的长篇大论之后,让我们来看看酷的东西:我从这个工具中获得了什么启示?这将引导我们从这个工具中你能获得什么样的见解?

我将仅仅展示我从自己的数据中学到的一些见解。我试图尽可能地保持这篇文章的私密性,我觉得我真的不能突出你能深入到什么程度以及你能找到什么有趣的东西。

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

My personal Facebook Messenger History

一些见解的列表,排名不分先后

  • 在我使用 Facebook Messenger 的整个过程中,我发送了 102 632 条消息,收到了 41 309 条消息。这相当于平均每天交换大约 40 条消息。
  • 我最积极的对话是和我的前女友,我和她在一起三年半了。我们大部分时间通过短信,但她仍然在比赛中名列第一。第二个最活跃的话题是与大约 50 个朋友的小组对话,他们会变得非常健谈。
  • 现在,如果你看看在我所有的对话中发信息最多的人,我最好的朋友超过了我的前女友。这是因为我们与不同的朋友群体有很多共同话题,所以他发送的所有信息都被这些对话冲淡了。而我和我的前女友大部分时间都是通过我们的一次谈话来交流。
  • 你可以清楚地看到,我大多在凌晨 1 点至 7 点半睡觉。至于白天,我整天或多或少都会发短信,中午 12 点左右的午休时间会有一个高峰,下午 6 点左右离开大学时也会有一个高峰。
  • 从这些年的趋势来看,很明显,随着时间的推移,我越来越多地使用脸书。
  • 一个非常明显的模式是从 2017 年 9 月到 2018 年 3 月的这段时间,在这段时间里,我比平时发了很多短信。这实际上是我学习的最后一年,在此期间,我与朋友、室友、小组项目等进行了很多非常活跃的对话…
  • 你可以看到我做了一次 7 周的旅行,由于时差的原因:看起来我在 2018 年 10 月和 11 月期间没有睡觉,但实际上我从下午 6 点到凌晨 1 点(欧洲时间)一直在睡觉。

“我的想法不是向世界展示我的短信生活,而是做一个这个工具的演示,这样你就可以用你自己的数据来使用它”

你如何用你自己的数据来尝试这个?

正如我所说的,我试图让这个工具尽可能容易地用于您自己的数据。你所要做的就是通过他们特定的工具下载你的脸书数据,解压文件,并从你的浏览器窗口中选择正确的文件夹。让我们一步一步来。

从脸书下载您的数据

  • 打开您的脸书帐户,进入设置->您的脸书信息->下载您的信息。
  • 在这里,你必须选择你想在你要下载的文件中出现的内容。至少选择“消息”(如果您想知道会出现什么,可以选择其他元素)。
  • 选择日期范围“我的所有数据”,以及文件格式 JSON,然后点击“创建文件”。

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

Asking you data to Facebook

脸书会在他们的服务器上创建一个 zip 文件,准备好了会给你发邮件。通常很快,但有时可能需要几天时间。当你收到邮件时,登录脸书,下载文件,解压。如果你浏览这些文件,你应该会看到不同的文件夹:当你创建你的文件时,每一个文件夹对应一个类别。我们将使用的是“消息”文件夹。

在 Chrome 或 Firefox 中打开FBMessage Explorer,点击“探索自己的数据”,然后“使用自己的文件”,选择刚刚下载的文件夹“Messages”。等待工具处理您的数据(根据要处理的消息数量,可能需要一分钟),然后开始探索!

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

Using your own data

我们不是国家安全局,你的数据是安全的

“他疯了吗?我永远不会把我的脸书历史给这个网站!”

你可能担心把你所有的私人信息交给一个你没有任何理由信任的工具。你应该这么做!一些浏览器,如 Chrome,甚至发出可怕的警告,说你要上传你所有的信息,你应该三思而后行。但是这个警告并不是真正合法的,这里有几点可以告诉你它是安全的:

浏览器将数据装入内存,并在本地进行所有的处理:没有一个数据离开你的计算机

首先,你没有上传你的数据,你只是向你的浏览器显示数据在你的电脑上的位置,并授予它对数据做任何事情的权利(这就是你得到警告的原因)。然而 FBMessage Explorer 不会使用这种授权:浏览器将数据加载到内存中,并在本地完成所有处理。没有一个数据离开你的电脑。

“我为什么要相信这篇文章写的是什么?这可能是一个谎言,我不会知道!”

这个项目是开源的,所有人都可以看到全部源代码。如果你熟悉编程,可以去看看。如果你不是,事实上这是开源的,这意味着书呆子们可以浏览代码,看到发生在幕后的一切。如果我在撒谎,一些数据被发送给某人,他们会知道,他们会以某种方式举报我(可能在评论区)。

最后,如果你仍然不确定你的数据是安全的,你可以在使用 FBMessage Explorer 之前关闭互联网。

“他傻吗?这是一个基于互联网的工具,它不会工作……”

会的。如果你先登录网站,然后等待它加载,你的电脑现在已经有了所有必要的内存。然后你可以关闭互联网,并选择如上所述的文件在你的电脑上。因为所有的处理和计算都是在本地完成的,所以一切都会很好,而且你可以绝对肯定你的数据是安全的,没有离开你的计算机。

玩得开心!

如果您在使用该工具时有任何问题,任何反馈、问题、建议等,请告诉我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值