LinkedIn 了解你什么?
亚历克斯·伊比在 Unsplash 上的照片
探索我们的 LinkedIn 个人数据
大哥在看着我们,我们来个眼神交流吧。
我成为 LinkedIn 会员已经 5 年了,上周我下载了我的个人数据,看看我能在里面找到什么。让我们开始吧!
为了框定背景,我会说我的 LinkedIn 使用非常被动:我几乎没有反应或发布,我主要是阅读和观看我的订阅。我不会为任何高级服务付费。平均来说,我会说我一周登录四到五次。
1.️️G️et 你的数据🗂️
LinkedIn 让你可以下载你的数据。为此,请转到设置&隐私,然后向下滚动到获取您数据的副本。你可以选择一些特定的数据,但我更喜欢下载一切。一旦存档准备就绪(花了大约 2 个小时),您将会收到一封邮件通知。你可以在同一个地方返回你的 LinkedIn 个人资料,然后获得你的数据的副本并下载 zip 存档。
2.广告目标内容📝
我们先来关注一下文件 Ad_targeting.csv 。
考虑到这个文件的名字,我认为它包含了广告公司共享的数据。更多信息请点击这里:business.linkedin.com/marketing-solutions/ad-targeting。
我的广告简介相当详细和准确。我是一名 25-34 岁的法国男性,在一家拥有 11-50 名员工的计算机软件公司工作。我的性格适合我,大部分兴趣和技能都是正确的。
这是原始数据。让我们看看我的广告简介是什么样的:
Company Category: --
Company Connections: list of 80+ companies where my connections are involved in
Company Follower of: list of 30+ companies I'm following
Company Growth Rate: --
Company Industries: Computer Software
Company Names: list of 7 companies I've been involved in
Company Size: 11-50 employees
Degrees:
- Secondary Education
- Associate's Degree
- 146
Fields of Study: list of 9 fields I've been studying
Function By Size: --
Graduation Year: --
Interface Locales: English
Job Functions: Support
Job Seniority: Entry
Job Titles: list of the 9 job titles I had in my career
Member Age:
- 25 to 34
Member Gender:
- Male
Member Groups: list of 7 groups I'm member of
Member Interests: list of 85+ interests keywords
Member Personae:
- Linux
- Android Users
- Desktop/Laptop Users
- Mobile Users
Member Schools:
- Ecole Nationale Supérieure de Géologie
- Télécom Paris
Member Skills: list of 245+ skills
Profile Locations:
- Europe
- France
- European Union
- eu.fr.*.0
- European Economic Area
Years of Experience:
- 4 years
degreeClass:
- 100
- 10
interfaceLocale:
- en_US
乍一看,看到所有这些数据可能很吓人,但除了我没有人填补空白。我希望在 LinkedIn 中尽可能准确地被其他人看到。这是获得这种准确性的代价。一方面,它允许 LinkedIn 向我推送我喜欢看的内容。我不希望收到与我的个人资料无关的工作机会。另一方面,我会收到与我的兴趣相关的广告,因为我更有可能点击它们。
3.连接分析🤝
照片由 Perry Grone 在 Unsplash 上拍摄
下载的文件中有一个名为connections.csv
的文件。它记录了具有以下特征的所有新连接:name
、email
、company
、position
和connection date
。
我现在有将近 1000 个连接,让我们看看我什么时候有新的连接:
LinkedIn 新关系演变
上图显示了每周的连接数。可以看出,我的网络增长有点缓慢。但是让我们考虑一下周累计曲线:
每周新连接演变(累计)
累积和图表明我的网络增长相当稳定:每周超过三个连接。开始时的趋势(曲线的左边部分)非常不同,因为我添加了我已经有的联系人。在过去的几周里,我希望扩大我的人际网络。
从相同的数据中,我们可以探究每个工作日新连接的频率:
每周日的连接分布
上图显示,大部分时间我都没有新的连接(平均每天 0.4 个连接)。这就是小提琴被拉伸到底线的原因。从小提琴的形状可以看出,我在周三、周四和周五更有可能有新的联系。
数据丰富 从我的连接名称中,我可以创建一个新的列性别。LinkedIn 可以通过分析每个个人资料轻松做到这一点。大多数时候应该是准确的。在我的网络中,有三分之一的女性和三分之二的男性。我用我在软件工程领域发展的事实来解释这种不平衡,这是不平衡的。
让我们再次生成之前考虑性别的图表:
按性别分列的 LinkedIn 联系演变(累计)
从上面累积的曲线,我们可以观察到,男性和女性的曲线似乎遵循相同的演变。男性曲线的斜率高于女性曲线,但两者都有持续增长:
- 每天 0.19 次母接头
- 每天 0.27 次男性连接
现在我们可以关注每个性别每周日的分布:
LinkedIn 每周每天每个性别的新连接分布
从上面的图表我们可以看到,女性半小提琴甚至更拉伸到底部。
现在我们已经考虑了连接,我们可以关注名称:
名字出现
从上面的柱状图中,我们可以看到我的网络中第一个名字出现的频率。男性/女性的不平衡在这里再次显现,因为最常见的名字大多是男性名字。我不得不选择没有性别区分的名字(例如 Camille 适合男性和女性)。从名字可以看出,我的亲戚大多是法国人。
姓氏出现
姓氏也很偏颇,因为我的人脉不具有代表性。因为我的姓是 Leprince,所以这也是我所有亲戚中最常见的姓。尽管如此,在法国还是有一些常见的姓。从我的联系人姓名中很容易猜出我的国家。
减去📌
- LinkedIn 让你下载你的个人数据,它包含了很多信息。
- 我的网络的增长或多或少是线性的,自 2015 年以来,平均每天有 0.5 个新连接。
- 我的出身和职业选择严重影响了我的人际网络。
- 探索它是一件非常有趣的事情,而且还有更多的事情可以做。用你的数据试试吧!下面是源代码:
探索你的 LinkedIn 数据。请随时在 LinkedIn 上联系我!
github.com](https://github.com/yleprince/medium-linkedin)
我的 Instagram 消息数据说明了我什么?
使用 Plotly 进行探索性数据分析
我承认。我使用 Matplotlib 进行数据可视化已经很久了。清晰的数据可视化对于任何数据专业人员向技术和非技术受众传达信息都至关重要。在阅读了 Chris Brownlie 的文章“Whatsapp Messages 中的 3.5 年关系”[1]后,我受到启发,使用 Python 库 Plotly 和可请求的 Instagram 数据提升了自己的数据可视化技能。
数据源
对于 Spotify、脸书、WhatsApp 和 Instagram 等应用,你可以轻松地请求并下载它们存储在你身上的所有个人数据。本文中进行的探索性数据分析使用了我的 Instagram 数据请求中的“messages.json”文件。在加载 JSON 文件并将其规范化之后,我得到了 12507 行消息(5755 条发送的消息和 6752 条接收的消息)。
为什么要用 Plotly?
我发现使用 Plotly 比使用 Matplotlib 有两个优点。首先,Plotly 提供交互式可视化,可以使用 HTML 或链接嵌入到网站/博客中。其次,Plotly 有一个名为 Chart Studio 的云服务,可以让你将可视化保存到一个免费的在线账户(一个免费账户 100 个公共可视化)。
我的发现
1)我的 Instagram 消息使用量从 2018 年开始猛增
作者图片
2018 年以来,我的 Instagram 消息使用量猛增。凭直觉,我能想到推动这种变化的两个原因。首先,随着 2016 年下半年 Instagram stories 的发布,我慢慢开始从使用 Snapchat 作为主要的消息平台转变过来。其次,我在 2018 年夏天和 2019 年夏天在脸书实习。这可以解释夏季几个月的峰值。可能我在和他们合作的时候下意识的开始更多的使用他们的平台?还是因为我的同事是更活跃的用户?
【这项分析是通过按月对我的信息进行分组并使用计数功能进行的。平滑后的趋势是 Savitzky-Golay 滤波器(39,5)]
2)我会在 30 分钟内回复超过 80%的 Instagram 信息
作者图片
这是最让我吃惊的图表。虽然有些信息我需要几个小时甚至几天才能回复,但在大多数情况下,我会很快回复。
【对于每一行信息数据,我创建了一个‘发送者’和发送时间的滞后变量。这让我可以过滤那些滞后发件人不是我而当前发件人是我的邮件。因此,我可以计算出从收到消息到做出响应的时间。我使用了一种试探法,将这些消息过滤为响应时间少于 24 小时的消息,以防止加入“新对话”。使用 numpy 的直方图和累积和函数计算标准累积分布函数。]
3)2017 年我最常用的 10 个词,2019 年有 6 个是一样的
作者图片
虽然在过去的几年里,我的大部分常用词汇并没有改变,但一些词如“干杯”已经从我的常用词汇中消失了,而“是”已经变成了“是”。“伦敦”也是 2019 年的一个入口,因为我在夏天搬到了那里,并试图让我的朋友来看我。
为了进行这一分析,我使用 NLTK 的 tweet tokenizer 将我的消息拆分成单词。由于我的语言的非正式性和表情符号的使用,tweet tokenizer 似乎比标准单词 tokenizer 做得更好。接下来,我删除了所有表情符号和停用词(常用词,如“the”、“a”、“an”等)。然后使用集合库中的计数器函数来查找最常见的单词。]
4)我喜欢使用笑的表情符号
作者图片
我认为笑表情符号的使用部分是因为通过 Instagram 信息分享的新表情符号越来越多(YoungKingsTV、Chabuddyg 和 Gujumemes 似乎是最流行的)。第三个最常见的表情符号是棕色肤色,它与各种不同的表情符号一起使用,例如👌🏽或者👍🏽但似乎已经聚集在一个集体区块下。
【这项分析是通过将我所有的信息文本连接成一个字符串,使用 list 函数将其拆分成字符,然后使用表情库提取所有的表情符号来进行的。然后使用收藏库中的计数器功能来查找最常见的表情符号。]
我在晚上最活跃,尤其是晚上 9 点到 10 点之间
作者图片
我不确定这是不是一个好趋势。可以理解的是,我的 Instagram 信息在晚上的使用率要高得多,因为我通常在白天外出或做大学作业。然而,知道睡前看屏幕对睡眠卫生有害之后,我会有意识地努力尝试减少我在深夜的使用。
【为此,我创建了一个新的‘小时’变量,将我所有的消息按‘小时’分组,然后应用计数函数。]
探索您的数据!
希望这篇文章对你使用 Plotly 和探索自己的数据有所启发。如果有人感兴趣,谷歌有一些非常详细的位置数据,可以非常酷地进行一些地理可视化,Spotify 有你听歌时间的细分。如果你想使用本文中的代码,我已经把它上传到我的 Github 这里 。
[1]克里斯·布朗利(Chris Brownlie),3.5 年的关系,在 Whatsapp Messages (2019),https://medium . com/data-slice/3-5 年的关系-在 Whatsapp-Messages-4f4c 95073 c9d
[2] Lemola,Sakari 等,“智能手机时代的青少年夜间电子媒体使用、睡眠障碍和抑郁症状。"*《青少年杂志》*44.2(2015):405–418。
营养与医疗保健支出有什么关系?
数据新闻
一项探索性数据分析项目,调查美国的医疗保健支出及其与营养模式的关系
介绍
医疗保健支出约占美国年度 GDP 的 18%,相当于人均超过 11,000 美元。与经济合作与发展组织(OECD)成员国的平均水平相比,美国的医疗支出占其经济的比重几乎是其两倍。尽管如此,美国的医疗保健结果仍然严重落后于经合组织中的其他高收入国家;美国的预期寿命最低,慢性病负担最高,肥胖率是经合组织平均水平的两倍。与其他国家相比,美国也是因可预防原因住院人数最多的国家之一,也是可避免死亡率最高的国家之一。美国的医疗支出是怎么回事,为什么会这么高?
根据雅培 2016 年发表的一项研究,在美国,每 3 名进入医院的患者中就有 1 名营养不良。营养不良通常是患者入院的根本原因,营养更好与住院时间更短和再入院率更低有关。营养在决定医疗保健支出中可能起什么作用?
美国医疗保健支出
首先,我分析了医疗保险和医疗补助服务中心在国家和州两级发布的医疗支出数据,以了解美国的医疗支出。如下图 1A 和 1B 所示,随着时间的推移,美国医疗保健支出几乎呈指数增长。比如,1960—2020 年间,美国人均医疗支出增长了 7,500%以上;仅在 2000—2018 年间,美国人均医疗支出就增长了 130%以上。
各州的医疗保健支出有何不同?
如下图 2A 所示,1980 年,美国国家层面的医疗保健支出在州层面似乎相对同质,因为似乎没有任何一小组州主导人均医疗保健支出。随着时间的推移,这种情况似乎会发生变化,一小部分州的医疗支出似乎比其他大多数州高得多。这种转变始于 1990 年(图 2B),一直延续到 2014 年(图 2D)。到 2014 年,各州的人均医疗保健支出似乎有了更大的差异。例如,在 2014 年(图 2D ),美国北达科他州和东北部各州的人均医疗保健支出明显高于其他州。
随着时间的推移,一些州的人均医疗支出是否比其他州更高、增长更快?
在下面的图 3A 中,每个州在 1980 年似乎都有相对相似的医疗保健支出。然而,随着时间的推移,各州之间似乎出现了分歧,一些州的人均医疗支出比其他州增长得快得多。在图 3B 中,这些州中的一些被突出显示,并且包括康涅狄格州、特拉华州、马萨诸塞州、纽约州和北达科他州。因此,如图 2 所示,2014 年医疗保健支出最高的州似乎也是医疗保健支出比美国其他州增长最快的州。截至 2014 年,这些州对美国医疗支出的贡献似乎不成比例。
下文图 4 进一步强调了上述调查结果,该图显示了随着时间的推移,哪些州的人均医疗保健支出最高和最低。另一个有趣的发现是,许多 1980 年人均医疗支出最高的州也是 2014 年人均医疗支出最高的州。马萨诸塞州、阿拉斯加州、纽约州和罗德岛州在 1980 年和 2014 年都是人均医疗支出最高的 7 个州。
哪些医疗保健服务构成了美国的医疗保健总支出?
如下图 5 所示,美国医疗保健支出(以美元衡量)被细分为许多不同的特定服务,包括医院支出、医生和临床支出、牙科服务支出和处方药支出。虽然在 1960 年,美国在这些医疗保健服务中的医疗保健支出相对相似,但随着时间的推移,医院、医生和临床支出似乎急剧上升,其他医疗保健服务的支出也在增长,但增速较低。截至 2018 年,医院支出在美国医疗保健总支出中所占比例最大,人均年收入超过 5000 美元,远高于涵盖其他每项医疗保健服务的医疗保健支出。
为什么医院的支出相对于所有其他医疗保健服务支出而言飙升?如前所述,研究表明,美国各地的住院治疗是高度可预防的,住院治疗的大量患者营养不良。营养学能帮助解释医院支出水平吗?
美国的营养学
美国有营养问题吗?
根据人类健康服务部(HHS)的营养和健康饮食指南,在人们吃的任何一餐中,他们餐盘中的一半应该是水果和蔬菜。因此,水果和蔬菜的消费水平可能是影响美国营养质量的一个重要因素。我分析了疾病预防控制中心在 2017 年收集的营养调查数据,这些数据旨在确定美国各地的个人消费水果和蔬菜的频率。如下表所示,总体而言,美国的水果和蔬菜消费量很低。在一个特定的州,最多有 12.4%的人口每天食用蔬菜不到一餐。在最坏的情况下,这一比例上升至 23.9%。对于水果消费来说,这甚至变得更糟,因为在一个给定的州中,至多有 30%的人口报告每天消费水果少于一餐;在最坏的情况下,这是某个州 46%的人口。
从下面图 6 所示的地图来看,与美国其他地区相比,从路易斯安那州到加利福尼亚州的美国中西部南部地区每天消耗的蔬菜最少…美国中南部地区似乎每天消耗的水果最少。因此,与北方消费相比,南方消费的水果和蔬菜要少得多。总的来说,美国似乎没有消费足够多的水果和蔬菜,没有达到 HHS 制定的指导方针,因此没有消费营养健康饮食的主要组成部分。这可能有助于解释营养不良问题,这个问题以前与住院率高有关,反过来也与医院费用高有关。
为了评估美国许多其他主要食物种类的营养模式,我分析了美国农业部的人均食物可获得性数据。具体来说,我用经过浪费、变质和其他损失调整后的食物可获得性来代表一段时间内的消费。我在数据中寻找美国人每年食用的不同食物种类的数量(人均磅/年)和人均医院支出之间的相关性。分析过去 40 年的数据显示了美国饮食的一些重要模式。
我首先用这些数据来评估营养模式是如何随着时间的推移而演变的。从下面的图 7A 可以看出,随着时间的推移,消费量增长最快的食物类别包括家禽、高果糖玉米糖浆和食用油。这些变化应该被视为负面的,因为高果糖玉米糖浆和食用油已被证明会导致负面的健康后果。越来越多的研究还表明,大量食用家禽与不同癌症的高风险有关,97%的零售鸡胸肉受到危险细菌的污染。此外,唯一随时间大量减少的主要食物是牛奶;从营养学的角度来看,这应该是负面的,因为 HHS 建议适度饮用牛奶,一般来说,牛奶是许多维生素和营养物质的重要来源,这些对健康饮食很重要。最后,从图 7B 中可以看出,随着时间的推移,平均每日热量摄入从每天 2000 卡路里增加到每天 2500 卡路里。根据梅奥诊所的卡路里计算器,这超过了大多数成年人维持目前体重所需的量;例如,一个中等身高和体重的 40 岁男性,适度运动,需要 2400 卡路里,而具有相应特征的 40 岁女性需要 1850 卡路里。因此,似乎随着时间的推移,由于上述变化,总体营养质量一直在下降;看起来美国确实存在营养问题,消耗了过多的食物,属于国家营养和健康饮食指南推荐的错误食物组。这可能有助于解释所观察到的住院病人营养不良增加的情况,以及因此而增加的住院和医院开支。
营养与医院支出相关吗?
接下来,我想量化营养和医院支出之间的关系。具体来说,我发现了每一种主要食物的人均年消耗磅数与人均医院支出之间的相关性。从下面的相关图来看,集中在顶部的第二行,似乎营养确实在医疗保健支出中起着重要作用。几乎每一种主要的食物类别都与医院支出有中度到高度的关联。与医院支出关联度最高的食物类别包括红肉(r=-0.92)、家禽(r=0.92)、牛奶(r=-0.96)、奶酪(r=0.93)和食用油(r=0.98)。水果和蔬菜的消费与医院费用有适度的关联,有趣的是,每日总热量摄入与医院费用有很强的关联(r=0.87)。
为什么随着时间的推移,营养越来越差?
营养指南可能会很复杂,而且备受争议,美国长期以来的营养模式背后的原因是多方面的。为了对美国营养不良的潜在原因提供一些见解,我分析了美国农业部的食品环境地图集,该地图集从 2011 年开始记录解释美国各地营养差异的不同因素。这些包括在州一级进入杂货店、快餐店和全方位服务的餐馆。此外,美国农业部还开始记录 SNAP 计划的参与情况,该计划为杂货店和低收入地区提供资金,以使人们能够从杂货店购买新鲜农产品和营养食品。虽然我只能获得两年的数据,而且这些数据是在州一级记录的,但我分析了上述因素与同一年州一级医院支出之间的相关性。我这样做是为了深入了解旨在为低收入人群提供营养食品的食品沙漠和政府资助项目是如何影响医院支出的。我假设广泛的食物沙漠、快餐店的便利和收入不平等将构成强有力的因素,有助于解释美国的营养不良模式,进而解释医院支出模式。
如下面的相关图所示,给定州每 1000 人的杂货店数量与给定州的医院支出(用 value.y 表示)适度相关(r=-0.24)。虽然没有其他因素与医院支出显著相关,但在一个给定的州,每 1000 人的快餐店数量与每 1000 人的杂货店数量适度相关(r=-0.39)。因此,随着某个州杂货店数量的增加,该州的医院支出会减少。随着某个州快餐店数量的增加,杂货店的数量减少;这可能会间接影响医院的支出。而且,给定州每 1000 人的杂货店数量平均为 0.27 家,最低为 0.16 家,最高为 0.76 家。这表明,平均而言,只有一家杂货店为 3,000 多人服务。这似乎是一个低值,可能表明美国确实存在食物沙漠问题,这可能对营养产生负面影响,并因此导致医院支出。我相信这些发现可以推广到国家层面。
我们能利用上述发现来预测医院支出吗?
最后,我想看看我是否可以使用美国的营养模式预测全国的医院支出。我建立了一个多元回归模型,在上述分析中使用了与医院支出密切相关的营养模式。下面显示的结果表明,总的来说,该模型是高度显著的(p-value<2.2x10^-16),并具有令人惊讶的高调整的 r 平方值(0.988)。牛奶、食用油和水果的消费量都是美国医院支出的重要预测指标,其系数与上述营养和健康消费的利弊模式一致。例如,根据下面的模型,每人每年多吃一磅水果,他们的医院支出就会减少大约 36 美元。这种模型的局限性包括数据中有限的观察数量和模型中 39 个自由度。更稳健的模型需要更多的数据,模型的解释和意义也需要更稳健。然而,我相信这个模型通过进一步表明营养在帮助医院支出中的重要性,有助于验证上述发现。
我也很好奇,想知道在一个特定的州,每 1000 人中杂货店和快餐店的数量是否是州一级医院支出的预测指标。如下所示,该模型具有统计显著性(p 值=0.023),给定州每 1000 人的杂货店数量是给定州医院支出的高度统计显著性预测因子(**显著性)。该模型的调整后 r 平方为(0.0373),表明美国营养不良的根本原因是复杂的。我认为这个模型更稳健,因为它使用了更多的数据(147 个自由度和跨越 4 年数据收集的 150 个观察值)。食物沙漠/获取新鲜产品似乎是美国医院支出的一个重要因素
结论
总体而言,美国的医疗保健支出似乎已经成为一个非常大且持续增长的问题。医院支出是这个问题的主要原因,随着时间的推移,美国各地的营养不良模式似乎在促成医院支出趋势方面非常重要。有趣的是,随着时间的推移,食物沙漠可能是美国营养不良的原因之一…因此,我认为,寻求降低医疗支出的决策者应该更加重视营养。让营养成为国家级讨论的重要话题可能有助于鼓励人们吃得更健康,并最终有望帮助改善营养,同时减少可预防的住院治疗,进而减少医院支出。
数据和来源
- ERS 食物可获得性(人均)数据系统
- 美国农业部食品环境图集
- 医疗保险中心&医疗补助服务
- 联邦基金跨国医疗保健比较
- 雅培营养和住院研究
- HHS 健康与营养指南
- 疾控中心营养监测系统数据
- 果葡糖浆营养
- 食用油营养
- 牛奶营养
- 家禽营养
- 梅奥诊所卡路里计数器
机器学习从业者在社交媒体上的自我推销是什么样子的?
意见
“自我推销”和“机器学习”这两个词在一个句子里会连在一起吗?
“当你擅长某件事时,你会告诉所有人。当你擅长某件事时,他们会告诉你。”
―华特·培顿
让我们从自我推销的定义开始吧。我希望您在本文不同地方记住这个定义。
自我推销是通过你的声音展示和展示你的能力、成就和行动的行为。
人们倾向于回避自我推销的想法,因为自我推销的人有一些特质,例如傲慢、过度自信、寻求关注等。
但我们要记住,现在是 2020 年,世界更加嘈杂,你很容易被忽视,不管你有多努力或多有才华。
不要怕无耻的塞自己。只要确保你是在正确的时间、正确的地点、对正确的观众做这件事。
例如,我倾向于无耻地将我的每周简讯塞给机器学习从业者,让他们订阅和接收我的文章和我创建的其他 AI/ML 内容的朋友链接。
本文将介绍自我推销对机器学习从业者的重要性,并添加您可以用来通过社交媒体宣传自我的现代方法。
你为什么要自吹自擂呢?
从什么时候开始,要求机器学习从业者具备销售和营销技能,甚至建立个人品牌?
让我陈述明显的事实。
一般的机器学习从业者擅长他们的工作,我们大多数人都对技术及其可能性充满热情。
懂软件工程原理的机器学习工程师;了解至少三种现代编程语言;拥有在线作品集;甚至知道特斯拉自动驾驶汽车系统的秘密——开玩笑在这个时代被认为是好的。
不太好,很好。
优点可以让你在人工智能和机器学习行业中走得更远。
没有功德的自我推销只是噪音。但是没有自我宣传的优点在大多数情况下是沉默。
什么是沉默?
沉默被忽视了,即使你可能是这份工作的最佳人选。
沉默是没有得到你应得的晋升或加薪。
沉默是你不为人知的最佳作品。
以下是一些令人信服的与职业相关的理由,说明你为什么应该自我推销
- 竞争很激烈。
- 每个人都可以做你能做的,在某些情况下,他们可以做得更好。
- 你并不像你想象的那样独一无二,还有其他几个工程师拥有和你一样的技能和技术。
- 你和下一个人一样值得被认可。
你可以自我推销的方法
现在你确信你至少应该做一些自我推销。这里有一些在网上推销自己的简单方法。
1.中等
Medium 不仅仅是一个博客平台。
嗯,确实是。
但是从现在开始,你需要把 Medium 看作一个展示你的知识和专长的平台。媒介是你的投资组合、个人品牌和通向世界其他地方的渠道。
**‘ME’**是单词 Medium 的前两个字母。我,就是你。
不是我,是你…
我想说的是,媒介是一个自我服务的平台,可以用来将你的技能和专业知识传达给合适的受众。
在这种情况下,合适的受众可能是顾客、招聘人员、客户或未来的雇主。
以下是我在媒体上自我推销的方法:
- 我简化计算机视觉/机器学习的思想和概念。
- 我写下我的失败,并把它们变成成功。
- 我写下我的经历和旅程。
- 我不怕写我强烈感受到的话题
一个动作:选择一个 ML 主题,比如反向传播或模型实现,写并发表一篇文章,展示你在所选主题上的知识。目标是重复这个过程 5-10 次。在简历中加入你发表的文章的链接,并在 LinkedIn 上分享。
2.油管(国外视频网站)
来自像素的freestocks.org的照片
使用 YouTube 进行自我推销,比本文中包含的其他自我推销方法需要更多的工作和努力。但是如果做得正确,在 YouTube 上的自我推销可以让你与众不同。
对于机器学习从业者来说,自我推销可以采取以下形式:
- 记录你在机器学习行业的职业进展
- 教授观众机器学习技术的教程视频
- 讨论与机器相关的话题(职业、投资组合开发、面试等)。)
- 流行的或在技术上难以理解的研究论文的摘要和概括。
- 还有更多…
让我把你的注意力带到我最近偶然发现的一种自我推销的直观方法上。
Ken Jee 是一些机器学习从业者可能熟悉的名字;他创建了关注数据科学相关主题的 YouTube 内容。
Ken 有一个视频系列,他在其中对机器学习从业者的投资组合和简历进行了深入的评论。他的评论对作品集和简历所有者都很有用,但对那些拥有与他的视频系列中呈现的技能集或简历相似的机器学习从业者也很有用。
现在,你可能还不清楚肯·吉如何把审阅你的简历或作品集视为自我推销,所以让我把它说得更清楚一点。
Ken Jee YouTube 平台目前拥有 78000 名订阅用户,数千名机器学习从业者观看他的视频。他的视频的一些观众可能是能够雇佣和招募人才的机器学习从业者。
审查你的投资组合或简历不仅能为你提供一些来自经验丰富的数据科学家的有用反馈,还能让你接触到寻找免费招聘人才方法的潜在雇主。
在 YouTube 上创建机器学习相关的内容是一种自我推销的方法,提供了大量的好处。
我相信,如果你能给他们发送一个你的 YouTube 频道的链接,在那里你可以创造性地展示你的技能和专业知识,那么面试一个角色或向客户推销会顺利得多。
动作:如果你有更多的时间和资源,为什么不创建一个 YouTube 频道,用视频的形式描述一些机器学习的概念和想法。或者,如果你像我一样害怕面对镜头,为什么不把你的作品集和简历寄到 kenjee.ds@gmail.com
3.商务化人际关系网
你可能在一英里外就看到了这个平台。
LinkedIn 是专业人士的首选社交媒体平台。这是一个可以用于多种用途的工具,LinkedIn 最常见的用途之一就是自我推销。
你可能见过学生和机器学习从业者在 LinkedIn 上发布课程完成证书;这是一种自我推销的方法。你不必担心所有与自我推销相关的负面特质,LinkedIn 是一个鼓励自我宣传的平台。
但是,为什么机器学习从业者还要在 LinkedIn 上自我推销?
LinkedIn 拥有超过 7 亿多用户,所以可以肯定你未来的顾客、导师、客户、学生和雇主都在 LinkedIn 上。
事情是这样的,自我提升不仅仅是成就和成功的专属。我见过有人发帖抱怨工作被拒或学业失败。
你为什么要这么做?
首先,机器学习是一个艰难的领域,失败并不一定意味着无能,大多数机器学习从业者都意识到了这一点。承担一个程序甚至开始一个项目的勇气是机器学习社区钦佩和称赞的属性。
也许你现在没有在找工作;尽管如此,LinkedIn 是一个有效的平台,可以推广你正在进行的、已经完成或尚未完成的项目、研究或想法。
请记住,你不仅要宣传你旅程的最终结果,还要让人们了解你的进步和其间的小收获。
行动:如果你还没有 LinkedIn 账户,就创建一个。联系并追随你领域内志同道合的人或你钦佩的人。不要害怕发布在你的机器学习生涯中发生的发展。
结论
我在本文中提到的在所有社交平台上创建账户和内容还有一个额外的好处。
每一个提到的平台都有很高的谷歌网页排名领域权威。这意味着当人们搜索你的名字时,他们会找到你在这些平台上创建的内容。
当你遇见一个新的人时,你做的第一件事是什么?你可以在谷歌上搜索他们的名字。
员工和客户做着完全相同的事情。当他们看到你的简历或简介时,他们会在谷歌上搜索你的名字。最好的事情就是你最好的工作和项目成为他们接触到的第一件事。
文章作者的名字在谷歌上搜索。
我会在这里结束一切。
记住,当你优秀时,你会告诉别人,但当你优秀时,别人会告诉你。但是你必须付出很多努力,让人们知道你是好的。不要被忽视。
我希望这篇文章对你有用。
要联系我或找到更多类似本文的内容,请执行以下操作:
你和马克·扎克伯格有什么共同点?在这篇文章中找出,以及其他几个原因,为什么…
towardsdatascience.com](/the-importance-of-side-projects-in-machine-learning-edf9836bc93a) [## 2020 年(及以后)机器学习从业者创收的 5 种方式
了解如何利用机器学习技能增加收入或创造新的收入来源
towardsdatascience.com](/5-ways-a-machine-learning-practioner-can-generate-income-in-2020-and-beyond-2f541db5f25f)
网络看到了什么?
人工智能
用当时最流行的网络之一探索直觉
杰里米·帕金斯在 Unsplash 上的照片
吕底亚(小亚细亚)的国王克罗伊斯曾经问特尔斐的神谕,他是否应该对波斯开战。当时的波斯由“居鲁士大帝”统治,也称为“老居鲁士”。女祭司说——“如果克罗伊斯开战,他将摧毁一个伟大的帝国”。克罗伊斯很高兴听到这个消息,并准备他的军队,出发越过哈利斯河征服波斯。当冬天来临的时候,克罗伊斯按照当时的惯例解散了他的军队。然而,赛勒斯却没有——他出其不意地击倒了克罗伊斯!
典型的含糊不清的神谕让克罗伊斯失望了——因为克罗伊斯对其预言没有三思。从那以后,一次又一次的事实证明,盲目地跟随一个预测会导致一个人的失败。
从那以后,我们进化成了更聪明的生物。我们不会盲目相信占星家的预测,对吗?的确,我们不再怀有迷信——但我们仍然盲目地追随它们。占星师?不要!—神经网络!
神经网络一直是人工智能研究社区的最大福音——它们帮助解决了人工智能领域完全无法解决的问题,并在很短的时间内取得了出色的成果。然而,随着这些结果,他们给人工智能带来了一个新的术语— 黑盒
在神经网络或启发式算法(通常用于描述“学习”计算机或“人工智能模拟”的计算机术语)中,黑盒用于描述程序环境中不断变化的部分,这些部分不容易被程序员测试。在可以看到程序代码的上下文中,这也被称为白盒,但代码非常复杂,在功能上相当于黑盒。—https://en.wikipedia.org/wiki/Black_box
现代复杂的人工智能技术,如深度学习和遗传算法,自然是不透明的——人们可以猜测,但永远无法知道网络内部实际发生了什么。由于它们的不透明性,在临床领域应用它们几乎是不可能的,因为人们无法信任一个无法解释的网络。
这自然产生了可解释的人工智能——一个由神经网络提供的解决方案由专家检查并可能解释的研究领域。然而,可解释的人工智能(XAI)仍在开发中,并且尚未取得重大进展来弥合研究人员和机器之间的差距。到目前为止,研究工作在很大程度上依赖于直觉和 XAI 积分的混合。
让我们探索一个简单的 CNN 分类器网络工作背后的直觉,这是当时最流行的网络之一。
[注意:这不是 CNN 的指南——相反,我希望读者对 CNN 及其工作有一些了解,因为这是对所用方法的基于直觉的解释。不用说,这篇文章不会涵盖一个通用 CNN 的全部基础知识]
卷积神经网络
重温一下基本知识,卷积神经网络是一种神经网络,在这种网络中,我们将输入与机器学习的核进行卷积,然后获得输出。换句话说,卷积核不断更新其参数,直到输出接近期望值或损失函数达到最小值。
一幅绘画作品会是—
使用 3x3 滤镜卷积的 32x32x3 图像
因此,我们可以看到 3x3 内核将 32x32 输入卷积成 30x30 输出。一个 3x3 窗口滑过输入图像(所有通道),我们获得 3x3 窗口和内核的点积——我们在输出中用单点表示。因此,单个卷积运算给出了单个通道图像。一组“n”个卷积滤波器或一个卷积“块”将给我们一个“n”个信道输出,因为来自每个滤波器的输出沿着信道宽度被级联。但是,为什么要使用‘n’个过滤器呢?
单个过滤器最多可以捕获单个特征或检测输入的特定特征。单个过滤器无法捕获更多数据,这使得在需要研究多个特征的情况下必须使用多个过滤器。
随着时间的推移,网络学习所有卷积中的所有滤波器的滤波器矩阵的值,从而开始识别它之前看到的输入中的模式。它现在可以执行复杂的任务,如对象检测和分割。
由于我们正在生成滤波器值,我们可以说这既是一个分类问题,也是一个回归问题——我们回归核矩阵,最终对图像进行分类。
现在,如果我们最终使用滤波器并获得输出,为什么我们不能在单个卷积块中完成整个网络?
我们不能使用单个 conv 块来完成整个工作,因为功能也是分层次的!除非从图像中提取低级特征,否则我们无法获得中级或高级特征。因此,我们必须首先在网络开始时使用的卷积的帮助下从图像中提取低级特征。提取低级特征后,我们对卷积输出执行未来操作,以分别提取中级和高级特征。实际上,我们从简单的特性开始,然后将它们聚合成复杂的特性。
VGG-16 架构中不同级别功能的实例
现在,图像中的底层特征到底是什么?
对于低级特征,我们谈论的是像边缘和边界这样的特征——所有信息中最基本和最重要的。中级特征将表示角点和斑点等特征,最后,我们将获得高级特征,这些特征将帮助我们按照我们的要求对图像进行分类或分割。
这是我们为什么使用卷积和为什么在一个完整的卷积网络中使用这么多层的一般直觉。所述网络还有其他方面——如用于控制正则化的丢失、用于引入非线性的激活、用于归一化每层激活的批量归一化等等。如果你想了解更多关于网络这些方面背后的直觉,请告诉我——我不会让你失望的;)
查看我的博客以获得更快的更新,不要忘记订阅:D 优质内容
克罗伊斯,吕底亚(小亚细亚)的国王,曾经问特尔斐的神谕,他是否应该对波斯开战…
www.theconvolvedblog.vision](https://www.theconvolvedblog.vision)
Hmrishav Bandyopadhyay 是印度 Jadavpur 大学电子与电信系的二年级学生。他的兴趣在于深度学习、计算机视觉和图像处理。可以通过以下方式联系到他:hmrishavbandyopadhyay@gmail.com | |https://hmrishavbandy . github . io
“不确定性”是什么意思?
第 3 部分,共 3 部分——风险、不确定性和模糊性之间的区别
在我的文章 “什么是暧昧厌恶?”
这里的事情可能变得相当学术,所以这篇文章是对过分感兴趣的人的一个脚注。我猜你来到这个页面是因为你渴望知道更多,所以让我尽我所能来进一步迷惑你…
什么是风险?
客观风险
在行为经济学中,在客观风险(或简称为“风险”)下的决策涉及已知的客观概率,例如抛硬币、玩骰子/纸牌。(不是现在,认识论者,安静。)
主观风险
主观风险下的决策涉及已知的主观概率,通过决策者努力处理未知的客观概率而获得,例如,你最喜欢的马赢得明天的比赛(如果你的马参加比赛的话)。换句话说,经过一些努力后,决策者觉得有能力把他们的意见/猜测/假设作为概率的占位符,以取得某种进展。
什么是歧义?
在模糊下的决策涉及未知决策者感到无力应对的主观概率,例如,任何我没有任何怪异想法并且无法开始思考概率可能是什么的情况。
在这种框架中,主观风险和模糊性之间的区别与决策者的技能、感知和感觉有关,他们是否有资格做出将主观概率分配给情况参数所需的假设。
如果你熟悉贝叶斯术语,我在 这里 有一些额外的注释供你娱乐。(文字搜索“贝叶斯”,开始阅读。)
什么是不确定性?
这要看你是在哪个领域,哪个年代长大的。这里有一个不完整的列表,只包括我在自己易受影响的年代里读过其学术论文的领域(我,呃,肯定这个术语也被我一无所知的各种领域以其他方式使用):
- 在 20 世纪 20 年代的经济学中,不确定性意味着模糊性。歧义这个词还不是讨论的一部分——它在埃尔斯伯格之后在经济学中变得流行起来(见之前的文章)。有时,今天的书呆子们将模糊性称为“奈特不确定性”,以此向奈特 1921 年的论文致敬,该论文在埃尔斯伯格出生之前很久就开启了整个“不确定性是经济学家应该更多谈论的东西”的混乱局面。
- 在 21 世纪 20 年代的经济学中,不确定性往往意味着(主观)风险(T21)。
- 在心理学和神经科学中,不确定性往往意味着主观风险和模糊性的总称,但它与(客观)风险是分开的。(你的头还疼吗?)
- 在统计和数据科学中,不确定性应该意味着风险和模糊性的总称(即不确定性将是他们喜欢的另一个词:确定性之外的一切),但通常被用来表示风险,因为大多数数据人员没有受过处理这种心理学东西的训练,缺乏精确的语言来区分细微差别。
- 在数学和计算机科学中,通常是与统计学相同的**,直到你对信息论或模糊逻辑之类的小众东西感兴趣,这时你就会喜欢上诸如香农不确定性和哈特利不确定性之类的小众行话,加上诸如模糊性和不精确性之类的一大堆让人崩溃的概念。**
- 在科学领域,这通常是与统计学领域相同的**,但也取决于易受影响的年轻科学家一直在读什么书。**
- 在物理学中,有一种东西叫做测不准原理 …不,我不去那里。我已经学会避免触及物理学,因为否则我将无法从我的物理学博士家庭那里听到它的终结。为了这个列表的目的,把它和其他科学放在一起。凯西,物理是唯一的科学“是啊,无论如何,爸爸。”
- 在哲学中,语言变得更奇怪,因为突然间你不得不微妙地与不同种类的不确定性作斗争。当心这种令人厌恶的对三种主要不确定性的粗略总结:本体不确定性涉及不符合经验的心智模型;认知不确定性涉及因无知而缺失的事实()“什么,你的意思是告诉我科学还没有完成?!");偶然的不确定性涉及对未来的未知。唉,你需要大量的纸张来公正地处理这些细微的定义,所以也许你最好忘记我提到过它们。如果你很好奇想详细地看看它们,请注意这是一个很大的兔子洞。
- 在管理和政治中,它的意思要么是*“我不知道”要么是“也许我知道,也许我不知道,现在问我一个不同的问题(不管怎样,是谁让你进来的?)"*
如果你对所有这些语义不确定性感到不安(哈!是哲学笑话!),不用担心——理解风险和模糊性的区别对大多数读者来说已经足够了。系列中这一篇之前的文章【2】会为你直观的做出区别。
即使你是一名经济学家,你可能也不会特别费心去净化你对“不确定性”这个术语的使用,除非你真的在细化你的决策理论,在这种情况下,你可能已经知道什么是 ROCL (不是“笑得前仰后合”,另一个),并且应该根据它的违反来进行你的讨论。随便说话的人不会因为误用不确定性这个词而被扔出大炮作为惩罚。
现在是完全不同的东西…
感谢阅读!如果你在这里玩得开心,并且对人工智能感兴趣,这里有一个初学者友好的介绍供你娱乐:
在这里欣赏整个课程播放列表:bit.ly/machinefriend
喜欢作者?与凯西·科兹尔科夫联系
让我们做朋友吧!你可以在 Twitter 、 YouTube 、 Substack 和 LinkedIn 上找到我。有兴趣让我在你的活动上发言吗?使用表格取得联系。
对于未来的数据科学家来说,“致力于解决实际问题”意味着什么?
打破对最常见建议的期望
如果你向任何数据科学招聘经理寻求面试建议,他们会告诉你解决一个真正的问题,并在线上传你的代码/演示文稿。很难反驳这一点,因为谁不想要一个已经可以做这项工作的人呢?
然而,对于一个没有任何经验的学生(本科生或博士),这个建议令人沮丧。不为人知的秘密是,大多数招聘经理也无法告诉你他们到底想要什么。我们只知道,有了有经验的候选人,面试会更顺利,我们的信心也会更高。另一方面,与没有经验的候选人交谈,我们常常会觉得缺少了什么。这篇文章主要是为学生写的,但新经理也可能会有所了解。
语境
在我分解细节之前,让我告诉你在招聘经理与你通电话之前刚刚发生了什么:我们刚刚从一个不同的会议中出来,回忆起这个职位是干什么的,当我们拨你的号码时,开始浏览你的简历。简历有助于我们了解你可能的强项/弱项,并有望为一次良好的对话提供一些素材。在这一点上,我们已经厌倦了工作,厌倦了重复的问题,但真的希望你能成为结束狩猎的人。
好的一面是,我们支持你。另一方面,我们已经采访了足够多的人,这种对话可能会感觉像重播。多亏了你学校里敬业的指导老师,你的课堂项目可能太过修饰,无法提供我们喜欢的小灵感或教育片段,这与在探索频道(过去)看一集好节目没有太大区别。
如果你认为这似乎倾向于偏见,你没有错。幸运的是,我们通常被要求写下我们对面试的看法,以及我们如何判断你在沟通、技能和是否适合该角色方面的各种才能。这个文档过程很好地过滤了偏见,因为我总是写评论,相信候选人有一天会看到它们。
我们在“真正的问题”中寻找什么
我将跳过面试中的非技术性部分,描述我在“真正的问题”中寻找什么。
你明白解决问题意味着什么吗?
- 观众是谁?医疗保健中的问题可能针对临床医生、患者、保险公司或机构。不同国家的医疗保健也大不相同。你应该能够清楚地表达这一点和你潜在的未来观众。
- 您的受众如何验证解决方案是否有效?在农业上,这可能需要一个带状试验,需要整个种植季节。在技术方面,你的团队可能需要在 AB 测试中看到注册情况的改善。在某些情况下,定性反馈可能就足够了。记住你是销售的人,所以你的观众可能不知道他们想看什么。
- 有时间表吗?给你多少时间来解决这个问题,你将如何分配时间?一个典型的学生错误是花太多时间在解决方案的生成上,而很少时间在验证或交付解决方案上。
- 你的解决方案解决了问题的哪个方面?如果你试图为一个非盈利事业增加会员,你的解决方案是通过增加曝光率来增加漏斗顶端,还是通过增加保留率来减少附带影响?没有阐明问题中的细微差别是你还没有被现实生活压垮的头号标志。
- 存在哪些资源或限制?是否存在现有的数据收集,是否有法规要求,是否有预算限制?
- 现状是什么,你为什么不把时间花在另一个问题上?这真的是个值得解决的问题吗?如果只是为了好玩,一定要知道这一点。
你能用数学的严谨来形式化想法吗?
- 形式化一个反馈意味着什么?在 Kaggle 上,评估指标和标签会给你。对于一个真正的问题,提出指导算法的客观的和数据是更具挑战性的任务。通过选择一个目标,你也应该有意识地拒绝它的选择。这可能是因为获得标签的可行性或者指标与您的最终目标无关。确保你能清楚地说明理由。
- 你对你的问题和你的数据之间有数学上的理解吗?学生们常常认为数据是“正确的”,却没有意识到采样、测量和处理所面临的挑战。可悲的是,这也是人们经常忘记的统计学的第一课:数据充其量只是现实的一瞥。理解这种污染对于理解你的工作的局限性是至关重要的。如果你不理解你的数据,我为什么要相信你基于它的解决方案?
- 你从你的模型中学到了什么?统计学生喜欢谈论他们尝试的模型,编程学生喜欢谈论他们的代码迭代了多少个模型。问题是,随着机器学习平台的成熟,拟合模型是一项可以自动化的任务。您对数据、模型和/或问题有所了解了吗?我想雇用一个人,因为系统是复杂的,不断变化的,你能告诉我什么时候我们应该重新训练模型吗?对任何科学家来说,模型都是为了简化现实,帮助增进我们的知识。当初级数据科学家向我展示 scikit 的几页输出时,我感到很难过——除了哪个模型最适合数据之外,我几乎没有什么洞察力。
- 你能帮助非数学人员量化他们的直觉吗?如果你能做到这一点,你应该可以轻松地向非量化受众传达/销售你的结果——这是数据科学家通常倡导的技能。不幸的是,对于初学者来说,这又是一项难以理解和训练的技能。量化他人意见的能力需要同理心、数学严谨性和实践。幸运的是,与“将你的模型传达给领导层”不同,将非数学直觉形式化可以从与你的非量化朋友讨论一个问题开始。
你能处理不确定性吗?
- 你如何处理意外?真正的问题从来不缺少惊喜,你如何应对这些?您的数据源可能不再可用,您的包可能被弃用,您的受众可能对您的解决方案不再感兴趣,您的合作伙伴可能突然退出,那么您该怎么办?这让我们对你可能如何处理问题有了一点了解。你会继续解决这个问题还是会停下来,你是如何做出这个决定的?有展示勇气的时候,也有早早放弃的时候。可悲的是,好的教学往往伴随着最小的惊喜,所以这是很难从学校学到的。
- 你会问一些降低问题不确定性的问题吗?我对面试初级数据科学家最大的抱怨之一是他们经常害怕提问。学校里的问题可能是显而易见的,但真正的问题很少如此。问题可以让人们关注同一个问题,并展示对细微差别的理解程度。对于面试官来说,这是关于“和你一起工作感觉如何?”的最现实的数据点所以问!
- 你能集中注意力吗?有些人可以没完没了地谈论一个问题的细微差别,然后跑题。虽然这展示了对主题和问题的深刻和广泛的理解,但是人们经常会忘记原来的问题。在初级数据科学家中,这通常表现为对你过去看到的所有分析的盲目尝试,或者围绕某个主题的随机事实的回流。当面对看似无穷无尽的选择时,告诉我你可以在没有指导的情况下导航。
你能发现问题吗?
- 如果你能向我们展示一些企业家的洞察力,那就太好了,但仅仅注意到数据中的异常是否需要进一步调查就足够了。数据、模型和关系可能是混乱的,所以当你发现它们是需要并且能够解决的问题吗?类似于对数据的无知,发现问题需要一定程度的关注细节,一些训练,以及一颗不认为事情理所当然的好奇的心。这可能是最难学习的技能,但这也是为什么人们经常建议你在你热爱的领域解决问题。没有好奇心去发现问题的人真的应该考虑一条不同的职业道路。
- 什么类型的工作让你兴奋?从你的语气中可以清楚地看出激励你的工作类型,以及如果我们聘用你,你是否会继续担任这个职位。我不鼓励你假装,但我鼓励你在看似无聊的问题中发现兴奋。#数据质量
你能执行吗?
- 在你建议的所有事情中,你自己能做多少?要解决一个真实的问题,你能写下问题吗,你能收集数据吗,你能拟合模型吗,你能验证结果吗,你能推销它吗,你能支持它吗,你能扩展它吗?每一步都需要不同的技能。虽然数据科学家的角色主要集中在这个过程的建模和编码方面,但你肯定需要对挑战和每个步骤所需工作量的理解。一位朋友告诉我,我们不应该告诉别人做我们不愿意或没有能力做的事情。我希望你也听从这个建议。
- 你熟悉基本术语和工具吗?你应该假设所有参加面试的候选人都可以勾选这个框。如果你知道某个工具(如 tensorflow)或技能(如遥感)特别适合这个职位,试着把它偷偷放进你的项目和面试中。请注意,这方面是最低限度的,很少区分你和其他人。
结论
没有人指望一个早期的数据科学家去完善上面提到的每一个方面。如果这篇文章给你的问题比答案多,那你就在正确的轨道上。
正如我在上一篇文章中提到的,区分专家和业余爱好者的关键不仅是执行的质量,更重要的是有意识决策的数量。致力于一个“真正的问题”会让你在学校里的导师隐藏起来的所有决定浮出水面,并迫使你做出许多有意识的选择(记住不做决定也是一种选择)。希望这篇文章能让学生们对这个建议有所了解。
你的 Word Cloud 对你的 Youtube 观看稍后播放列表说了什么???
自然语言处理,词云,降维,K-均值聚类
Youtube 遮罩应用词云,图片由作者提供
大多数经常使用 Youtube 的人都有大量的观看后播放列表,就像我们大多数人一样,过了一段时间后,我们完全忘记我们在那里放了什么,这就是我们的日常生活日程。稍后,在放松或停顿的时刻,我们意识到我们已经积累了很长的清单。
我们懒得检查它什么时候是这么长,如果我们检查它,我们滚动几次,然后离开它,等等…
今天在这篇文章中,我们将通过一种方式来创建一个词云,它将遍历这个“稍后观看播放列表”的所有视频标题,并从这个播放列表中生成一个词云,它将生成一个播放列表内容的摘要。我们看看它会怎么说你?
此外,我们将应用一些维度减少,并在二维空间中可视化它们,以更好地分析我们的选择。
首先,你需要的是你的 Youtube 稍后观看播放列表…我们如何得到它???
嗯,谷歌对所有账户都有一个很酷的功能,可以让你下载与你的账户相关的所有数据:谷歌外卖
谷歌外卖截图
一旦你进入主页,让我们取消所有选择,只选择 Youtube 播放列表,这可以通过点击取消所有选择然后向下滚动来完成,一旦完成,点击下一步,它会问你想下载什么,勾选播放列表,然后点击下一步,在通过一些认证检查后,你就可以走了。
一旦你下载了文件,你将有一个包含多个文件的文件夹,我们感兴趣的是“watch-later.json”。它将是一个 JSON,包含所有的视频集合及其描述等等,如下图所示。
我的手表-后来的 JSON
让我们开始破解代码吧
Print(videos[1]['snippet'])
获取所有视频的原始标题!!!
这里我们得到的是所有未经预处理的标题的总和,我没有做任何预处理,如词干化或词汇化,因为我对实际的上下文和标题名称感兴趣,所以我保持不变。
停止言语
当然,我们不希望最常见的互联网/youtube 使用的术语出现在我们的词云中,所以让我们将它们添加到原始的停用词列表中,这样它们就可以被过滤掉。
创造词云
现在,我们为什么要创造一个简单的词——云呢?当我们可以用两行代码创建一个很酷的。我们只需要下载一张你喜欢的图片,把这个蒙版应用到单词云上。我为我的 word_cloud 选择了下面这张图:你可以用任何你喜欢的图片来尝试,我个人用的是 Youtube 的 logo。灵感来自:this:https://www . data camp . com/community/tutorials/word cloud-python
在我的播放列表上生成单词云
有趣的是,我们看到有大小不同的单词,没有一个单词被重复,每个单词的大小表明了它的频率或重要性。
现在让我们尝试一些别的东西,为什么我们不在 2D 空间可视化这些视频,看看它们是如何聚集的?
首先,我们需要将集合转换成 TF-IDF 特征的矩阵。
这产生了形状的稀疏矩阵(80,382)
什么是稀疏矩阵?
形状的 x 稀疏矩阵(80,382)
it 是一个包含极少非零元素的矩阵。当稀疏矩阵用二维数组表示时,我们可能会浪费大量内存空间来表示它。[ 1 ]
截断奇异值分解(又名 LSA)
这通过截断奇异值分解(SVD)来执行线性维数缩减。与 PCA 相反,这种估计器在计算奇异值分解之前不集中数据。这意味着它可以有效地处理稀疏矩阵。[ 3
在 2D 空间中可视化视频
现在我们已经减少了维度,我们可以清楚地看到它们有两个/三个集群,一个集群有最多的视频,而第二个集群在顶部遥遥领先,只有四个视频。
为了更加准确,让我们使用肘方法:在聚类分析中,这是一种用于确定数据集中聚类数量的启发式方法。方法包括绘制解释的变化作为聚类数的函数,并选择曲线的弯头作为要使用的聚类数。[ 2
聚类的最佳数量是 3。
k 均值绘图函数
应用 K-均值
定义集群
CLUSTER_1,绿色数据点是什么视频?
簇 1 的视频索引
群组 1 视频
CLUSTER_2,紫色数据点是什么视频?
簇 2 的视频索引
CLUSTER_3,红色数据点有哪些视频?
簇 3 的视频索引
Cluster_3 视频
通过查看这两个集群,我们可以看到集群 1 包含播客,而集群 3 包含食物类型视频和 F1 的混合。这两个是一种很好的分布,其余的视频在集群 2(蓝色点)这里,我认为这可能是两个集群本身。
TF-IDF、K-means 和截断 SVD 的组合在得出 2D 分布和进一步选择这些聚类方面做得非常好,并且降维技术在没有太多信息损失的情况下工作得非常好。
摘要
我上面获得的单词云和 2D 空间分布偏向于我的播放列表(我的播放列表相对较小,只有 80 个视频),它设法使用三个集群来分离视频,尽管它可能会更精确一些,但分析具有更多数据点的更大的播放列表会更有趣。
非常有趣的是,其他每个人都有自己的分布,所以集群的组织方式和单词 cloud 一样不同,所以我强烈建议您尝试一下,亲自做这件事并查看我的结果非常有趣。还可以进一步应用一些东西来更好地评估这种分析并获得更好的见解,例如,代替应用 K-means,您可以尝试使用 GMM(高斯混合模型),尝试实现一些主题建模等等。
行列式到底是什么?
它不仅仅是一个任意的公式…
在最近的一篇博文中,我提出了一个相对简单的问题——为什么线性代数教得这么差?
线性代数是机器学习的基石之一。这比你想象的更直观
towardsdatascience.com](/why-is-linear-algebra-taught-so-badly-5c215710ca2c)
它引起了比我预料的更热烈的反应。许多评论分享了我的沮丧——线性代数教科书和课程的特点似乎是完全缺乏直觉,几乎是故意的不透明。为了论证这一点,我设了一个问题:下面这个矩阵的行列式是什么?
由于下面的公式,我们一致认为答案是 2:
但是为什么是?就此而言,什么甚至是是的决定因素?
首先,让我们回到线性转换的思维模式。回想一下之前的博客,任何矩阵都可以被认为是线性变换。特别是,对于一个 2x2 矩阵,该矩阵的列告诉我们基向量[1,0]和[0,1]发生了什么,分别称为*和 ĵ.*
单位向量,ĵ和
例如,通过取矩阵 a 的列[[2,0],[2,2]],我们可以看到和和 ĵ 发生了什么,从中我们可以看到,它所表示的线性变换是一个水平向右的剪切,随后是因子 2 的缩放。
记住,在线性变换过程中,单位向量的变化,必然定义了整个 2D 平面上每一点的变化。如果我们将上述变换应用于任何 2D 矢量v**=[x, y ],则该矢量将在由 x 批‘已变换的*’加上 y 批‘已变换的 ĵ 给出的新位置处结束。所以即使变换可以很好地用单位向量来定义,我们也应该考虑变换对整个空间的影响。***
但是有没有一种方法可以在这个“空间”层次上量化一个转变的效果呢?考虑以下转换:
- 顺时针旋转
- 缩放比例(在这种情况下为负)
- 水平剪切
三种类型的线性变换——想想它们是如何影响整个 2D 平面的。
在这些变换下,平面的面积会发生什么变化?我们可以看到旋转不会影响区域,但是尺度和剪切呢?我们知道,2D 平面永远向前延伸,因而具有无限的面积。但我们可以从绿色和粉色网格线中清楚地看到,在这些情况下发生了一些挤压——无限空间正在“变小”(尽管,当然,它仍然无限大)。
这显然是一次思维旅行,所以让我们回到我们信赖的单位向量t1】和 ĵ 。考虑由单位向量形成的正方形的面积,其中顶部和底部由和给出,边由 ĵ.给出****
很明显,这个正方形的面积是 1,因为每个单位向量的长度都是 1。现在让我们考虑矩阵[[2,0],[2,2]]所表示的变换。再一次,让我们画出和和 ĵ 发生了什么,另外,那个方块发生了什么。
注意—平行四边形的顶部和底部仍由表示,左侧和右侧仍由ĵ 表示
我们可以看到正方形延伸成平行四边形(当然,正方形是平行四边形的一种特殊类型)。我们知道这个形状的面积是由高度乘以底边长度得出的,在本例中是 2*2 = 4。
值得注意的是,由于线性变换的“规则”(平行线保持平行,平行线之间的距离保持相等,原点保持在原点),我们可以对 2D 平面中的任何形状应用相同的变换,而不仅仅是由和 ĵ 形成的正方形,其面积也将增加 4 倍。
我们能概括这种想法吗?假设我们有一个由以下矩阵表示的线性变换:
那么,这个变换会以什么系数增加 2D 平面上一个图形的面积呢?我们可以通过计算变换后的ĵ.和变换后的平行四边形的面积来回答这个问题
为此,我们可以执行一些几何欺骗,如下所示:
于是我们看到矩阵[[a,b],[c,d]]所表示的线性变换,会使一个形状在 2D 平面上的面积增加 ad-bc 的倍数。如果这个公式看起来很熟悉,那是因为它应该:
事实上,一般来说,行列式就是这样的——空间被给定的线性变换扩展的因子。
现在,尽管这很好很简洁,但这还不是整个故事。如果你以前处理过行列式,你会知道它们可能是负值——当然没有任何公式 ad-bc 排除负值。但是这个空间膨胀因子为负意味着什么呢?你不可能有一个面积小于零的形状。**
让我们看看能不能找出发生了什么。考虑以下成对的变换和变换ĵ,以及它们各自的行列式:**
我们保持转换后的(蓝色)不变。随着我们将变换后的 ĵ 移得更近,我们可以看到行列式变得更小,直到 ĵ 最终移过和,行列式变成负数*。*****
事实上,这种和和 ĵ 的“翻转”正是决定一个行列式是正还是负的原因。事实上,空间是否被“翻转”,是我们可以从行列式中立即得知的另一个方面。**
还有一个与上面相关的特例——行列式为零的情况。事实上,学习所有这些的主要动机通常是检查一个矩阵何时是“零行列式”的。但是这样一个矩阵在线性变换方面有什么作用,它的结果是什么?
考虑变换后的和和变换后的 ĵ.形成的平行四边形我们已经展示了行列式是由这个形状的面积给出的,那么在什么情况下它会等于零呢?**
对于这个面积为零的形状,我们需要底或者高等于零。这种情况发生在一些小情况下(即当[a,c] = [0,0]或[b,d] = [0,0]时),但当变换后的和变换后的 ĵ 彼此平行时也会发生。这种情况可能发生在它们互相叠放在一起的时候,或者它们正好相对的时候。**
有一些先存线性代数知识的可以更精确;特别地,当变换后的和变换后的【ĵ】(即矩阵的列) 线性依赖 时,我们有一个零面积平行四边形(因此有一个零行列式矩阵)。****
如果我们从线性变换的角度考虑正在发生的事情,也就是变换“挤压”2D 平面的程度,这就有了重要的结果。如果变换后的和变换后的 ĵ 是线性相关的,那么根据定义,变换后的和变换后的 ĵ 的所有线性组合都被限制在一条线上。本质上,我们失去了*一个维度;2D 空间被压缩到一条 1D 线上。*****
对于给定的零行列式矩阵,它会自动告诉我们一些事情。通过考虑线性变换,看看你现在能否用简单的英语来论证为什么下面的东西适用于这样一个 2x2 矩阵, M :
- M 无逆。
- M 的行是线性相关向量(以及列)。**
- 与 M 相关的线性方程组或者无解,或者有无穷多个解(即没有唯一的解)。
如果对行列式及其代表的意义没有直观的了解,你可能会认为这些是理所当然的(就像我刚开始学习线性代数时一样)。
不言而喻,在整篇文章中,我们一直关注行列式背后的直觉。这里没有什么是特别严格的,而且我敢说,我还没有真正在数学意义上“证明”任何东西。我们通过纯粹的二维思维相对简单地保存了事物(尽管同样的直觉在更高维度中有效——平行四边形的面积变成了平行六面体的体积,等等)。
这是故意的。正如我之前的博客一样,这种更高层次、直觉驱动的思维受到了格兰特·桑德森的视频系列“线性代数的本质”的启发(我强烈推荐给任何对数学、数据科学或机器学习感兴趣的人)。用桑德森自己的话说:
“这里的目标不是试图教你所有的东西,而是你带着强烈的直觉离开……这些直觉让你未来的学习更加富有成效……”—格兰特·桑德森******
每个有抱负的数据科学家需要了解的编码知识
尤其是如果你没有计算机科学的背景
在 Unsplash 上拍摄的 ThisisEngineering RAEng
如果你是数据科学的新手,你可能会纠结于编码。也许你有时会遇到一个错误,让你觉得你可能永远无法解决它。也许你觉得解决出现的错误花费了你太多的时间。我来告诉你这没关系。而事实上,它其实是好的。让我告诉你为什么。
你们中的一些人可能知道,我在近两周前推出了我的在线课程掌握数据科学方法。该课程旨在引导学生完成他们的第一个项目。所以它非常实用,并且包含大量的编码。
虽然我的前几个学生已经通过了课程,他们一直在与我分享他们的经验。我所看到的是,对于学生来说,在编码时处理出现的问题是一个挑战。他们纠结的不是代码的构建,而是错误的解决和调试,因为他们陷入了从未经历过的问题。
我为我的学生提供日常支持,帮助他们摆脱困境,并确保他们不会失去动力,但我认为听到这一点将有助于任何正在迈出第一步的人:在编码时陷入困境,不知道该做什么是正常的!
你感到不知所措的原因是你以前从未经历过这种类型的问题。你的大脑需要一些时间来适应新的解决问题的模式。解决方案?不管你喜不喜欢,都是在做动手的工作,陷入困境并找到出路。
我的一个学生在评论中说:
“当我在这个领域找工作时,我关心的一件事是,当数据科学家陷入困境时,他们的期望是什么。我自己不切实际的期望就是不会卡。”
这让我意识到,许多数据科学初学者缺乏我认为理所当然的理解:编写代码时陷入困境是工作的一部分。对于大三大四的每个人…
不过,我理解有人担心这些小乡巴佬。我记得我在大学的头几年。在编码的时候,我被卡住了很多次。每次我陷入困境,我都不敢寻求帮助,因为我觉得只有我一个人在经历困难。我觉得我是个耻辱。我想我应该更擅长这个。我生自己的气,因为我没有更快地解决问题,浪费时间用头撞墙试图理解一个错误。当我环顾我的同学时,从外表上看,每个人都编写了完美的代码。但随着我对自己的技能越来越有信心,我意识到,出现错误/漏洞,有时一连几天都无法摆脱,这就是工作的现实。毕竟,有这么多这样的漫画是有原因的:
来自 CommitStrip 的超赞漫画
Or 迷因是这样的:
当然,如果你得到一个错误,你花了三个小时试图理解什么是错的,然后你看到它是变量名的一个错别字,你可能会觉得你浪费了三个小时的宝贵学习时间。但这与事实相去甚远。因为这个痛苦的经历,下次你看到类似的错误,相信我,你要检查的第一件事就是变量名。如果你愿意,可以称之为创伤,它会让你更快地解决错误。
当你有了足够多这样的经历,你将会成为你现在羡慕的人之一,他可以看一眼你已经努力了几天的代码,并立即告诉你哪里出了问题。
所以,如果你不断遇到错误,并且花了你大量的精力和时间去修复它们,不要气馁。对自己好一点,明白这都是进步的一部分。如果你从好的一面来看,由于这些经历,你开始享受乐趣,并开始嘲笑编码迷因。
🐼想更多地了解熊猫吗? 获取我的免费熊猫小抄。
每个数据科学家需要了解的集群知识
机器学习导论
机器学习是一个经常被谈论的术语,然而人们往往对它的不同领域缺乏了解。
机器学习的第一个区别是所谓的监督学习和非监督学习。
当你在机器学习和数据科学的世界中铺平道路时,对这种区别和其中任何一个的目的/应用有一个基本的理解将会非常有帮助。
监督和非监督学习
监督学习当然是更著名的类别。
监督学习由分类和回归组成,这实际上意味着,你确定一个响应变量和解释变量,并使用它们来建模一种关系——无论是为了解释还是预测。(你可以在这里了解更多关于这个区别的)。
分类有效地代表了确定一个分类变量和其他变量的某种组合之间的关系。这可能是预测电子邮件属于哪个收件箱,预测某人是否会拖欠贷款,或者预测销售线索是否会转化。
回归还试图对因变量和自变量之间的关系进行建模,然而在这种情况下,我们试图对连续变量进行建模。回归可能是你听到最多的。这可能是模拟房价、收入数字、树龄、汽车最高速度、客户产品使用等。
无监督学习
既然我们已经解决了所有这些问题,让我们来谈谈无监督学习。
简而言之,我们不是预先决定我们希望我们的算法找到什么,而是提前给算法提供很少甚至没有指导。
换句话说,我们不是明确地告诉我们的算法我们想要预测或解释什么,而是踢回去,把接力棒交给算法来识别给定特征中的突出模式。
让我们从一个例子开始,看看如何在住房数据上使用监督和非监督学习方法。
一种受监督的方法可能是利用这些数据训练一个模型来预测房价。
无监督的方法可以是识别价格的自然分组或一些变量的组合,例如价格和房间数量。
我刚才解释的实际上是我们在这里学习的技术。让我们开始吧。
要了解更多关于这些机器学习领域之间区别的信息,你可以访问这里的!
到底什么是聚类或聚类分析?
为了更好地理解集群,首先要理解它的基本目的。
目的
如果你是一名数据科学家,任何分析的先决条件之一就是要在某种程度上理解你的数据。这种理解的一个方面来自于数据集记录之间相似性的概念。
为了进一步定义这个想法,我们想要了解任何和所有记录之间的相对相似性或不相似性。
实现这一点的一种机制是通过识别记录的自然分组。这些分组可以被定义为彼此最相似而与其他分组的记录最不相似的记录。
如果不明显,这就是集群发挥作用的地方。这是创建所述分组的算法方法。
为了进一步阐明这一点,聚类分析可以帮助您回答一个基本问题:任意两个观察值有多相似或不相似?
如何衡量?
我们试图评估两个记录的相似性,并使用这些记录之间的距离来帮助定义。
相异度度量或距离被定义为 1-相似度
距离越大,差异越大,反之亦然。
让我们用下面的假设数据集来说明。
chess <- data.frame(
y = c(2, 4),
x = c(5, 3))
row.names(chess) <- c('knight', 'king')
我创建了一个小数据集,详细描述了棋盘的 x 轴和 y 轴。我不知道国际象棋棋盘的每个轴是否真的有名字…我知道其中一个包含字母,但为了简单起见,跟我来。
我们将使用dist
函数,默认为两点之间的欧几里德距离。如你所见,它将骑士和国王之间的距离定义为 3.46
dist_chess <- dist(chess)
您也可以手动计算两个片段之间的欧几里德距离。也等于 2.82。
knight <- chess[1,]
king <- chess[2,]piece_distance <- sqrt((knight$y - king$y)^2 + (knight$x - king$x)^2)
让我们在一个阴谋上放弃我们的部分!
ggplot(chess, aes(x = x, y = y)) +
geom_point() +
lims(x = c(0,8), y = c(0, 8))
聚类的应用
在所有这些解释之后,集群到底是为了什么?你为什么要花时间去学习它?
任何时候,当你想评估相似性时,聚类分析都是非常有用的。
你可能在一家软件公司工作,在那里你想了解不同的用户是如何相似或不相似的,有可能改变产品、信息等。
这些应用也远远超出了商业范畴。从植物和动物物种的分析,用户行为,天气,以及任何我们可以测量模式的东西…
什么时候用最好?
可能有许多潜在的合适时间来使用聚类分析。其中最突出的是在探索性数据分析期间。如果你不熟悉探索性数据分析,你可以在这里了解更多关于探索性数据分析的基础知识。
无需深入探究探索性数据分析(EDA)的原理,EDA 的主要目的是让自己熟悉正在处理的数据集。
在这个过程中,集群非常有用。
聚类准备
让我们进入一些在进行分析之前需要的预处理步骤。
不要忘记缩放!
让我们跳回象棋的例子。值每增加 1 个单位,代表给定方向上的一个单元。这是一个很好的例子,说明了欧几里德距离是完全有意义的。
但是,如果您使用不同规模的指标进行聚类,比如年收入和员工数量,或者脚的大小和垂直跳跃,该怎么办呢?
当我们使用的价值观不能相互比较时,挑战就来了,正如我前面的例子所示。
想想下面两个场景,
场景 1:
你有两家员工人数相同的公司,但其中一家的收入比另一家多 1000 美元。
现在让我们交换不同的变量,它们有相同的收入,但其中一个比另一个多 1000 名员工。
第一种情况是两个公司非常相似,只有 1000 美元的收入差异很小,可能意味着两个公司的价值非常相似。具有讽刺意味的是,第二个例子凸显了两家截然不同的公司。它可能在行业、细分市场或其他方面有很大差异。
虽然这两个场景中的差异是 1000,但这种差异对于两个不同场景中的不同事物来说是显著的。
变化组值的问题是它们有不同的平均值和不同的变化。这正是我们刚刚讨论过的情况。
因此,在执行聚类分析时,我们调整我们的指标以具有相同的平均值和可变性是非常重要的。
我们将使用一种称为标准化的方法,有效地将我们的指标的平均值变为 0,标准差变为 1。
从技术上讲,我们可以手动缩放给定的变量,如下所示。
scaled_var = (var - mean(var))/sd(var)
虽然熟悉计算的逻辑很好,但是只使用 r 中的 scale 函数也很方便。
缩放和远离住房数据
让我们对住房数据进行同样的练习。
我从 kaggle 下载了西雅图房价数据。你可以在这里找到。
让我们快速可视化数据集的前两个数据点。
以下是我们正在处理的数据点:
housing <- housing[1:2, c('price', 'sqft_lot')]
ggplot(housing, aes(x = sqft_lot, y = price))+
geom_point()
housing <- housing[1:2, c('price', 'sqft_lot')]
ggplot(housing, aes(x = sqft_lot, y = price))+
geom_point()housing_dist <- dist(housing)housing_scaled <- scale(housing)
housing_scaled_dist <- dist(housing_scaled)
分类数据的相似性得分
到目前为止,我们一直在讨论两点之间的欧几里德距离,并用它来代表不相似性。
在分类数据的情况下我们该怎么做?
幸运的是;类似于范畴的欧几里得距离,我们使用一种叫做 Jacaard 指数的东西。
让我解释一下 Jacaard 指数。
假设您有一个包含案例 a 和 b 的分类字段,Jacaard 索引为我们提供了两个案例 a 和 b 都出现的情况相对于其中一个出现的次数的比率。
你也可以把它想成 a & b 的交集与 a & b 的并集之比。
使用我们之前使用的相同的dist
函数,但是在这种情况下,只需将method
改为'binary'
,您就可以测量距离了。
让我们首先创建一个数据集进行实验。下面你可以看到我为每家公司提出了两个分类变量。
companies <- data.frame(
industry = c('retail', 'retail', 'tech', 'finance', 'finance', 'retail'),
segment = c('smb', 'smb', 'mid market', 'enterprise', 'mid market', 'enterprise'))
row.names(companies) <- c('a', 'b', 'c', 'd', 'e', 'f')
companies$industry <- as.factor(companies$industry)
companies$segment <- as.factor(companies$segment)
确保将您的类别声明为因子!
现在我们将把我们的范畴转化为虚拟变量,你可能也听说过术语一热编码。其思想是将分类的每个值转换成一个列,并用 1 或 0 填充行值。我们将在 r 中使用dummies
包中的dummy.data.frame
。
companies_dummy <- dummy.data.frame(companies)
如上所述,您会注意到,对于行业的每个价值,我们会看到一个与每个价值相关联的列:金融、零售和技术。我们看到每一列都是一样的。
现在让我们运行我们的dist
函数。
dist <- dist(companies_dummy, method = 'binary')
在这里,每家公司都在相互比较。A & B 是 0,因为它们之间没有距离。如果你记得他们都是中小企业零售。1 是如果他们没有相似性。你会注意到,对于 C & E,它们只有一个相似之处,因此距离为 0.67。
结论
我希望您喜欢这种分类。
我们已经讨论了机器学习的两个主要领域。
聚类的定义、目的、应用和度量。
我们已经学习了预处理以及如何计算两点之间的距离,无论是数值还是分类。
随着您在分析中继续学习和实施不同的聚类方法,这些课程都将被证明是非常基础的。
祝数据科学快乐!
每个数据科学家需要从艺术中学到什么
因为你也必须和非书呆子打交道
艺术家可以教你很多东西。斯蒂夫·约翰森在 Unsplash 上拍照
W 帽子是一个数据科学家最大的痛苦?根据 Quora 上的这篇帖子,最痛苦的部分是数据:因为它不完整或不可靠。
当你向下滚动时,另一个反应是很难说服企业领导人接受数据科学家的工作。
YCombinator 的黑客新闻上的回应指向了类似的方向。对于一位受访者来说,最大的痛苦是与不尊重统计和数据科学的人打交道。另一方面,当人们要求他们对复杂的问题给出简单的非黑即白的答案时,这很糟糕。
艺术可以解决这一切。
艺术就像止痛药。不相信我?请继续阅读。
如果你已经相信我了,你会在这篇文章的结尾找到一切。
1.不完整数据
所以你有缺失或不完整的数据。你现在在想什么?
你可能在考虑创建内插或外插来使这一切工作。你担心你美丽的结论会被拒绝,因为对于任何非数据科学家来说,它是建立在推测之上的。
别担心了。现在。人类并不像你认为的那样倾向于逻辑思维。至少,那些不是数据科学家的人类。
让您的数据变得美丽
你知道内插法和外推法不是缺陷,当然也不仅仅是推测。但是其他人不知道。所以你需要用其他方式说服他们。
让你的数据变得漂亮。更重要的是,让你的结果变美!
大多数数据科学家来自计算机科学或相关背景。他们学会了如何与机器对话,但没有学会如何说服人类。好消息是有很多工具可以提供帮助。
你会惊讶地发现,如果你在正确的地方添加一些颜色和形状,会有更多的人——甚至是非常理性的人——欣赏你的成果。
在数据科学领域,数据可视化无疑是当今的热门词汇。
towardsdatascience.com](/9-data-visualization-tools-that-you-cannot-miss-in-2019-3ff23222a927)
2.不可靠的数据
许多数据科学家将不一致和不可靠的数据视为痛苦,因为这非常耗时。一旦对工作的第一波热情过去,你会觉得自己更像一个看门人,而不像一个科学家。
你失望吗?想想你以前所有的工作角色,以及它们听起来有多华而不实。然后想想那些隐藏在华而不实的头衔背后的肮脏工作。
在艺术领域,浮华的外表和冷酷的内心之间的差异无处不在。
想想你最喜欢的五位艺术家——无论是音乐、绘画、文学还是其他领域。我敢打赌,其中相当多的人面临着比你经历过的任何事情都要糟糕的逆境。
当然,这些艺术家中的大多数都已经成名了。他们在生活中有一些可怕的经历,但现在他们以艺术闻名,他们过着奢侈的生活。而你还在清理数据。
你不是艺术家,但你可以向艺术家学习。弗兰·霍根在 Unsplash 上的照片
现在想一想你可能认识的艺术家,他们可能还没有成名。事实是,对于每一个成名的艺术家来说,地下有 1000 个永远不会成功的艺术家。
艺术家们创造出无人能见的神奇事物。没人会听的。他的作品,无论多么辉煌,都将在时间的长河中褪色。他们的名字将成为饥饿艺术家长长的墓地名单上的又一个条目。
现在,看看你自己。你作为数据管理员的工作并不鼓舞人心。你的客户甚至不感激你的肮脏行为。但最终,这可能会帮助你建立模型,为你的客户带来洞察力。如果他们没有,至少你会得到报酬。
不像数以百万计的艺术家每天创作鼓舞人心的作品,却永远不会激励任何人。因为没人会看到。
下次你抱怨数据清理的时候,想想这一点。
40%是吸尘器,40%是清洁工,20%是算命师。
towardsdatascience.com](/data-scientist-the-dirtiest-job-of-the-21st-century-7f0c8215e845)
3.为复杂的问题提供简单的答案
这是几乎每个数据科学家在职业生涯中都会遇到的痛苦。客户会给你一堆复杂的数据,并要求你用简单的黑白方式给出答案。
作为一名科学家,过于简单化是违背你的精神的。那么你将如何给出一个简单的答案呢?
再想想吧。客户真的想要一个简单的答案吗?不。客户想要一个他能理解的答案。
所以你的工作不是过度简化你的结果。你的工作是让他们可以理解。这就是你问艺术家的地方。
你可以在没有先前知识的情况下看一幅画或听一首歌,仍然建立联系。你不能用科学做到这一点。
科学是漫长而艰苦的研究,直到你得出结论。艺术是有趣的实验,直到你找到能引起你和他人共鸣的东西。
艺术给你一种理解的感觉,即使你还没有理解。
为了让你的客户高兴,用一些艺术技巧处理你的结果。你不需要降低复杂性。你需要做的就是把它转化成能引起客户共鸣的东西。
您的客户需要能够从您的结果中学习,而不是自己成为数据科学家。艺术是实现这一目标的工具——想想视觉化,还有更广泛的创造性方面。
这将涉及一些额外的工作。但是你的客户会爱上你的。
创意才是王道。照片由艾伦·斯盖尔斯在 Unsplash 上拍摄
4.与非数据科学家打交道
你是数据科学家。您最喜欢的职业是独自拿着笔记本电脑坐在某个地方,根据数据集构建一个漂亮的模型。宇宙很简单:你。你的笔记本电脑。你的模特。
但你是人,你需要与人交往。那么你和谁出去?当然,还有其他数据科学家。
你们有很多共同的兴趣,并且你们不同的技能可以相互促进。你们互相学习。你们从彼此中成长。
但是数据科学家并不需要彼此。
你需要商业领袖。你需要为你的工作付钱的人。
问题是,他们不知道他们付钱给你是为了什么。他们有一个问题,例如,获得更多的客户。他们知道解决方案就在现有客户数据堆中的某个地方。但是他们不知道怎么做。你需要提取它。
但你是科学家。你知道研究很难,需要很长时间。你知道一旦你解决了一个问题,你就会面临另一个问题。你知道你做的事情很复杂。非常复杂。
这就是你讨厌截止日期的原因。你讨厌设定目标。你喜欢四处游荡,自由地寻找灵光乍现的时刻。
艺术家也喜欢四处漫游。他们喜欢随心所欲的自由。他们讨厌最后期限。但是他们比你有一个优势:
创造力。
当科学家面对商业规则时,他们会变得麻木。想想最后期限或公司目标。如果目标是本周五交报告,他们将在六个月内完成。数据科学家不想处理这种东西。
当艺术家面对规则时,他们会变得有创造力。他们可能不会违反规则,但他们会想办法绕过它。如果他们需要在周五之前交报告,他们甚至可以提前一天交。但是他们会确保他们选择了一种别致的字体,并把它印在亮粉色的纸上。不能一般!
结合双方的优点。你的存在依赖于让你的客户开心。所以你必须遵守他们的规则。不要打破最后期限。不要错过企业目标。但是稍微改变一下规则——不要太多,只要足够——加入你的个人情趣。毕竟这是你的工作。
更多关于艺术和数据科学的关系。8 篇必读文章
towardsdatascience.com](/november-edition-art-data-science-4789c30da4ea)
5.说服商业领袖
你是科学家,不是推销员。你可以在工作中加入你的个人趣味——不管是圈内人的笑话、有趣的迷因还是任何能激发你灵感的东西。但是你不能也不想像商人一样思考。
你担心这会影响你的工作。你是科学家,你的正直源于像科学家一样思考。商业逻辑只会让你头脑混乱。
再想想。
我不是要求你在清理或分析数据时像一个商人一样思考。如果需要业务逻辑,你的客户会自己完成这项工作。
但问题是你如何展示你的作品。一个商人雇佣了你,所以你的结果的最终展示应该根据他们的需求来定制。
在得到任务和做最后陈述之间发生了什么是你的事情。但你的目标必须始终是为你的客户增加价值。
甚至在准备你的最终陈述时,你也不需要用商业逻辑来思考。但是你需要从对客户有意义的角度考虑问题。
不要试图给商务人士留下深刻印象。给商业门面背后的人留下深刻印象。
吸引他们的情感皮层。
不要想:“当他们看到这个结果时,他们会怎么想?”
而是想:“当他们看到这个结果时,他们会有什么感觉?”
使用字体、颜色、形状和视觉效果。让你的作品尽可能的精美。你的客户会因此而喜欢你的。
给你的工作增添一些情趣。照片由佛罗里达本地民间艺术家朗达克在 Unsplash 上拍摄
将数据科学与艺术相结合。提高你的产出。
你是科学家,而科学是你最擅长的。
但有时拓宽你的视野到其他学科是值得的。这会让你对工作有新的看法。了解艺术有助于你:
- 要知道,尽管很辛苦,但你的工作比其他许多工作都要好。
- 让你的数据变漂亮。那比打扫卫生有趣多了。
- 增加价值。确保你的客户能从你的结果中获益。
- 要有创意。变通规则,但不要违反规则。
- 润色你的成果。让他们与你的客户产生共鸣。
你不是艺术家,但你可以向他们学习。并获得两个学科的优势。
每个数据科学家都需要向商业领袖学习什么
因为软技能很重要。
商业技能不会损害你的科学诚信。女同胞在 Unsplash 上拍照
D ata 科学家习惯于向商业领袖传授他们的手艺。商业领袖习惯于从许多不同的领域学习大量的东西。
因此,难怪互联网上充斥着面向商业领袖的数据科学课程——来自 edX 、 Coursera 以及许多其他平台。
但是反过来呢?不知何故,数据科学家被视为魔法大师,他们可以与数据交谈,并从中提取商业信息。只有一个问题:大多数数据科学家对商业一无所知。
目前,数据科学家的就业市场相当不错。但这并不意味着你不应该不断提高自己的技能。事不宜迟,以下是每位数据科学家都应该具备的商业领袖的七项关键能力。
1.效率
你是科学家。如果你和我一样,你喜欢在数据集中漫游,没有一个集中的问题,让数据和你说话。
但问题是:你可能在浪费时间。
对自己诚实。你多久决定探索一次,却一无所获?你每天花多少时间调查对你的客户没用的事情?
如果你和我一样,你的很多时间并不会带来实际的结果。事实上,我经常把大部分时间花在探索事物和学习新事物上。当我不小心的时候,我花了太多的时间却没有任何产出。
商业领袖总是想着变得更有效率。他们的首要任务是试图理解如何以最小的努力获得最大的产出。
当然,你需要用新的眼光和开放的心态来看待你的数据。但不要让这导致产量减少。
我喜欢每天安排一个时间,在那里我可以自由地在数据中漫游。剩下的一天致力于项目的目标。通过这种方式,我对目标进行了优先排序,同时对我可能会错过的新发现保持开放。
想得伟大,做得伟大。Jo Szczepanska 在 Unsplash 上拍摄的照片
2.项目管理
想想你最近合作过的五位科学家。他们中有多少人在项目管理方面非常出色?他们中有多少人不擅长这个?
当然有科学家在组织他们的项目、计划下一步和控制他们的成功方面做得很好。但是也有很大一部分数据科学家可以在上面做一些课程。
因为你一直在做项目,这是一项值得投资的技能。即使你认为你已经很擅长了。
好消息是,你不需要获得 MBA 学位,也不需要狼吞虎咽地学习一大堆在线课程。通过观察那些以项目管理为生的人——商业领袖,你可以学到很多关于项目管理的知识。
无论如何,你可能每天都会见到商业领袖。为什么不向最优秀的学习呢?
3.人际关系技巧
我是那种在笔记本电脑前最开心的人。如果我不得不与人交谈,那会让我感到压力。这对科学家来说并不罕见。
但是你可能和我一样,每天都需要和人打交道。如果你搞砸了一次谈话,那可能会毁掉对未来的展望。所以你想把它做好。
当你在的时候,你是如何让人感觉良好的?你如何让他们开心?你如何让他们做你想让他们做的事?
商业领袖是——很好的——领袖。让人们做事是他们的工作职责。
观察商业领袖如何对待他们周围的人。他们如何对待处于较低、较高或同一层级的人?他们对你怎么样?他们如何满足期望?
蔻驰。教书。成长。图片由 NESA 制作在 Unsplash
4.辅导
伟大的领导者是伟大的教练。他们教他们的团队去哪里和做什么。他们增强团队的技能,让团队产生更大的影响。
他们这样做是因为他们知道一件事:提升别人,你自己也会被提升。
在数据科学中,这有点难。但是如果你曾经指导过实习生,或者帮助过学生,你就会知道你在这个过程中学到了多少。你不仅提高了别人的技能,也提高了你自己的技能。
你不仅扩大了自己的技能范围,还让别人对你的工作有了新的看法。你也在提高你的人际交往能力。
通过教导人们,你可以确保你的知识在你有生之年都不会过时。
5.决策
如果你认为你没有太多的决定要做,请三思。从业务人员的角度来看,数据科学的目的就是帮助做出决策。
数据有助于你决定是在 A 国还是 B 国投资更有利可图,还是生产更多的 X 产品或 y 产品。实际上,你是告诉企业领导人如何决定的人。
也就是说,如果你了解客户的技能,这将帮助你为他们带来更多的价值。如果你受雇帮助决策,但这正是你所不擅长的——那么你充其量只是一个平庸的数据科学家。因此,学习更多关于决策的知识是你最大的责任。
随着时间的推移,展示东西变得不那么可怕了。活动发起人在 Unsplash 上的照片
6.商业演示
同样,这是大多数商业领袖的常规活动。虽然你没有生意可以展示,但你有另外两件你可以也应该展示的东西:你的工作成果和你自己。
以一种令人惊叹的方式展示你的工作成果将确保你的客户爱你。展现自己将为新的机会打开大门。
你喜欢商业领袖展示的幻灯片吗?在你的下一个主题演讲中使用他们的技巧。
你老板展示他们愿景的方式真的激励了你?下次你展示结果时,试着传达一个真正鼓舞人心的信息。
如果你更喜欢规避风险,不要害怕:尝试新方法并不意味着你会有任何损失!如果你对自己诚实,你目前的方法可能很糟糕,所以几乎任何改变都是有益的。
因为你也必须和非书呆子打交道
towardsdatascience.com](/what-every-data-scientist-needs-to-learn-from-art-402b8e8eb07b)
7.谈判
如果你和我一样,你想协商更高的薪水,但你真的不知道怎么做。你已经阅读了所有的建议,但仍然不放心去敲你经理的门。
同样,这也是商业领袖一直在做的事情。他们经常在利益冲突中航行——无论是领导和员工之间,短期利润和长期质量之间,等等。
一个好的领导者通过让其他人相信这对他们来说也是最好的解决方案来确保企业的最佳结果。同样的,你可以让你周围的人相信这也是对他们最好的,从而确保对自己最好的结果。
在你认识的商业领袖谈判时观察他们可能会让你得到应得的加薪。
[## (Top)每个数据科学家都应该阅读的 5 本业务相关书籍
这份改变思维方式的书籍精选清单将帮助你成为一名更好的数据科学家
towardsdatascience.com](/top-5-business-related-books-every-data-scientist-should-read-6e252a3f2713)
从商业中学习来增强你的科学
你是个伟大的科学家。但是你可以做得更多。
观察你圈子里的商业领袖会让你的职业生涯更上一层楼。试试看!
每个数据团队在首次公开募股前需要知道的事情
恭喜——你的创业公司要上市了!但是数据呢?
图片由 Shutterstock 上的Evgeniya Porechenskaya 提供。
几十年来,当一家公司准备上市时,财务和法律团队首当其冲。随着上市前公司越来越依赖数据来推动创新和增强竞争优势,数据团队也必须帮助规划公开募股的路线。以下是方法。
许多人最近都在想“我的数据团队可以做些什么来为我们公司的 IPO 做准备?”
虽然有大量的文献支持财务团队踏上上市之旅,但很少有人帮助面临同样挑战的数据团队——这是一个问题。
随着 Palantir 、 Snowflake 和 Asana 等公司在过去几周上市,以及更多公司将上市( Airbnb 和 DoorDash ),我们正在关注你!),我汇集了我的关系网,列出了数据组织为其公司成功上市做准备所需的 5 个基本步骤。
了解您的数据存储在哪里以及谁在访问它
据优步数据团队的前成员称,任何数据组织在 IPO 之前的第一项工作都是审计你正在收集和存储的数据,以及谁有权访问这些数据(他们称之为“数据爆炸半径”)。
成长中的企业(也就是你的初创企业)将广泛依赖于驻留在传统数据仓库系统中的企业级事务数据;同时,您的数据团队将希望投资构建事件流和其他数据平台功能,包括您公司的运营战略。这两个需求都强调需要一个健壮的自动化数据目录来捕获企业数据的含义、位置、使用模式和所有者。
尽早并经常与您的隐私、安全和法律团队合作
一旦确定了谁有权访问哪些数据,您就需要与您的隐私、安全和法律部门合作,以确定如何继续管理数据访问。这不仅对你即将到来的首次公开募股很重要,对任何经常处理 PII 或在数据使用方面有严格指导的地理区域运营的公司也很重要(考虑:GDPR、CCPA 等)。).
您的法律和隐私团队可能会负责定义这些规则,但您需要构建解决方案来确保数据用户遵守这些规则。你们需要一起回答以下问题:
- 我们应该将数据存储多长时间?
- 谁应该有权访问这些数据?
- 我需要如何改变我当前的数据模型来遵守这些指导方针?
提示:在适用的情况下,存档而不是删除过时但具有法律意义的数据,以降低成本冷藏。
借助护栏,实现数据民主化
在您为 IPO 做准备时,您的团队将需要他们能够获得的所有帮助,以满足贵公司的日常数据需求。是时候投资一些自助工具了。
数据民主化最重要的步骤之一是投资于数据探索和元数据管理,不仅针对结构化数据,也针对非结构化数据。大多数处于指数增长的早期创业公司都有大量关于数据的内部知识,因此在一个单一来源的中心捕获和管理它(我们重复一遍:数据目录!可探索的是你成功的关键。
优先考虑财政问责制
上市公司必须按照规定的数据要求和严格的 SEC 会计和披露准则,按季度和年度向 SEC 提交财务报表。
你的公司可能会在 IPO 流程开始前几年就开始大量招聘会计师和财务分析师,以期待这一重大日子的到来;尽早与他们的组织合作,并获得他们的认可;沿着这条路合作会更容易。
投资于数据的可观察性;提供数据可靠性
端到端数据可观察性解决方案可以突出字段级血统,通过 Looker 和 Tableau 分析仪表板提供对下游依赖项的可观察性。图片由蒙特卡洛提供。
无论你制定了什么样的数据准则,或者使用了什么样的分析解决方案(有人看起来像吗?),只有当您的数据资产值得信赖和可靠时,您的数据分析才会有价值。
据 PriceWaterhouseCooper 称,公司“必须准备好满足新的外部利益相关者的需求和要求,包括对**透明度和数据可靠性的更高期望,**对预算和预测的更严格审查,以及加速申报的要求。”
数据团队可以通过提供从接收到分析的端到端数据可观察性的解决方案来确保数据的可靠性。这种方法可以跟踪您的数据存储在哪里,谁在访问这些数据,并对数据中的异常情况进行监控和警告。数据可靠性解决方案提供了以下优势,从而实现了两全其美,包括:
- 高数据质量,确保符合数据治理标准
- 高度的数据完整性,带来更丰富、更准确的见解,推动您的业务发展
- 节省的资金和时间用于实际产生收入或推动业务创新的数据项目
- SEC 和其他管理机构对您公司的信任,更不用说您的客户了
以下是为公司上市做准备的数据团队的一些额外资源:
你的公司正在考虑 IPO 吗?联系 巴尔摩西 和其余的 蒙特卡洛 团队,帮助您的数据组织准备一次成功的公开募股。
关于管理数据科学和人工智能项目,每个项目经理都应该知道什么
剧透:如果你是从需求开始,请三思
布鲁斯·马斯在 Unsplash 上的照片
如果你是一个项目经理,被分配到一个数据科学或人工智能项目可能是一种冲突的经历。
到 2021 年,仅人工智能一项就将创造高达 2.9 万亿美元的商业价值(是的,有一个“t”),尽管冠状病毒的整体阻尼器,仍然处于推动复苏的技术前沿。但与此同时,项目交付成功的几率对你不利。对该领域项目失败的估计开始于 80% 并走下坡路,2019 年 7 月 VentureBeat AI 的一份报告估计,87%的数据科学项目从未投入生产。
这并不是因为缺乏尝试。关于管理数据科学和人工智能项目的话题,我们有著名的大学课程、发表的研究、专业工具和成熟的专业认证。但是,尽管做出了这些努力,我们似乎并没有离成功更近一步,除了了解到部署更多的人员和资金可能——令人惊讶的是——不是答案。
这是因为资源就像计算。在一个问题上投入更多的资源并不能得到正确的答案,只会更快地得到错误的答案。
在一个问题上投入更多的资源并不能得到正确的答案,只会更快地得到错误的答案。
从现代计算的早期开始,我们就一直在分析数据来支持决策。我们已经实施系统来帮助这些决定几乎同样长的时间。那么,为什么是把他们聚集在一起,如此。可恶。努力?
项目经理拥有非常好的技能。最根本的是,他们通过处理风险、问题、请求和提议来管理不确定性——通常在一个项目中处理几十个(甚至几百个)。此外,他们具有直觉和利益相关者管理技能,这些技能随着经验的增加而增加,使他们能够适应项目执行过程,并使他们成为从需求到解决方案的大师。
具有讽刺意味的是,正是这种从需求到解决方案的“端到端”规划的精通导致了许多数据科学和人工智能项目的失败。因为除非你已经考虑了数据的不确定性,否则从需求开始就是一个陷阱。
除非你已经考虑了数据的不确定性,否则从需求开始就是一个陷阱。
数据科学和人工智能项目的独特风险
数据科学项目的独特风险是数据的不确定性。这是一个问题:
“数据中是否有足够的信息来开发足够有用的模型?”
如果不回答这个问题,那么开发和扩展一个不能交付商业价值的解决方案将会面临真正的危险,因为模型性能还没有达到值得使用的阈值。如果这听起来很抽象,例子可能包括:
- 预测性维护:在制造环境中,事故和偏差通常会引发稳健的缓解策略,确保故障模式很少重复,因此很难通过传统的监督学习方法进行预测。
- 情感分析:根据模型开发的方式和所用数据的性质,性能会有很大的不同。如果一个正负情绪分析工具只有 60%的准确率,考虑到一个随机的猜测可以让你达到 50%,它可能几乎没有用处。
在每种情况下,由于手头数据的限制,项目最终都是不可行的。当一个项目的可行性还没有确定的时候,围绕架构、自动化管道和运营的对话就毫无意义。如果一个项目注定会因为数据而失败,那么让一个数据科学家工作两周来发现这个问题,不是比六个月后由十个人组成的团队来发现更好吗?
换一种方式表达,一个数据科学或人工智能项目只有在你有高预测信号或数据中有用信息的情况下才有价值。如果不存在,无论用例的业务价值和可用数据的质量如何,项目都是失败的。
那么我们应该如何构建数据科学项目呢?
问题的根源其实是茎
混乱是其核心,这种纠结来自于对 STEM(科学、技术、工程和数学)学科的捷径思考。这个首字母缩写很容易脱口而出,以至于人们很容易把 STEM 专业人士视为一个同质群体。但他们绝不是这样。
参考埃里克·德雷克斯勒对科学和工程的解释,不仅两者“不太一样”,而且通过信息流的镜头来看,它们是完全相反的*。科学从现实出发,收集数据,然后——通过探究的视角来看待问题——以一个新的有用模型结束。工程始于相反的终点。它从一个模型开始,通过规范增加细节,然后——通过设计的透镜看问题——以一个新的有用的现实结束。*
这是相关的,因为数据科学和人工智能项目正是在这两个阶段得到有效管理,大致对应于科学和工程的镜头:
- “科学”是数据科学项目的初始部分的特征,其中可行性是有疑问的。从一个广泛的问题范围或假设出发,这一阶段的主要目标是解决数据不确定性问题,并在项目扩大规模并“投入生产”之前确定项目是否可行。在这里,空间需要迭代和实验。这是一个明确的努力和不确定的结果的世界,为了赢得长期的比赛,管理层必须允许快速连续地尝试和失败。在这一点上——作为一名 IT 专业人员,我这样说——需求和它的大部分是无关紧要的。事实上,项目管理意义上的需求是这个阶段的输出,而不是它的起点。**
- 当需求变得清晰时,工作就转变为“工程”。这是项目经理熟悉的领域:一个定义了结果、人员、过程和技术的世界。在这里,解决方案架构选择的广阔领域侵入您的世界。性能、安全性、自动化和可扩展性变得至关重要。严格的规范和时间表的管理是没有商量余地的,范围蔓延是一个需要被压制的敌人。
数据科学的两个“兄弟姐妹”——不同但友好。眼睛为乌木在 Unsplash 上拍照
数据科学项目失败的一个主要原因是科学和工程的混搭,在项目被认为可行和有价值之前,就讨论了长期的架构和操作考虑。这种功能障碍也延伸到团队,其中“成熟”数据科学团队的想法等同于使其“更加工程化”,反之亦然。
两者都是需要的,但是每一个都与数据科学项目的不同部分相关。每一种都需要截然不同的管理模式和技能组合才能茁壮成长。当有可用的工程解决方案时,进行核心研究是不必要的,而更严格的工程控制不会使科学实验室更具创造性。
要让数据科学奇迹发生,科学和工程都必须做得正确。
从这个角度来看,有几个问题值得注意:
- 支持一个单个决策的技能与开发支持多次决策的系统所需的技能大相径庭。这是数据科学角色混乱的根本原因。作为数据科学家探索建模方法的一部分,进行数据清理与作为数据工程师建立一个自动化系统来执行相同的任务有很大的不同。
- 培训课程经常引起混淆,因为它们隐含地在迭代科学部分或 IT 密集型工程部分的背景下教学。
- 许多数据科学家兼任数据工程师、模型操作和系统测试人员,但数据科学家的明确职责是处理数据不确定性和检查预测信号的强度。没有其他团队成员可以胜任这个角色。
- 如果项目没有投入生产是可行性研究早期失败的结果,并防止企业在以后遭受昂贵的失败,那么它们绝对是好的。
综上所述,我们应该分两个阶段来思考数据科学或 AI 项目。第一个明确关注处理数据不确定性,方法是派遣一个专注于数据科学的小型团队利用手头的数据进行建模,以查看是否有足够的预测信号使用例可行。如果我们在这里失败了,我们失败得很好。
当且仅当数据不确定性已经得到处理,并且可扩展的 IT 解决方案现在是明确的议事日程时,项目管理的领导地位才开始发挥作用。这是团队成长的地方,全方位的 IT 能力变得至关重要。
数据科学和 AI 魔法就发生在这里。
或者至少假设我们对数据科学和人工智能的应用是负责任和道德的。但那是另一个故事了。而且很长。
上面显示的所有图像仅用于非商业说明目的。本文是以个人身份撰写的,不代表我所工作或隶属的组织的观点。
元流到底是什么?
网飞用于数据科学的 Python 框架的高级视图
TL; 【T4 博士】
Metaflow 是网飞开发的用于数据科学的 Python 框架;于 2019 年 12 月作为开源项目发布。它解决了数据科学家在可伸缩性和版本控制方面面临的一些挑战。处理流水线被构建为图中的一系列步骤。Metaflow 使得从在本地机器上运行管道转移到在云资源上运行(目前仅 AWS)变得容易。每一步都可以在一个单独的节点上运行,具有唯一的依赖关系,元流将处理相互通信。下面,我将我认为的关键特征进行了分解。
我总是在寻找让生活变得更简单的方法,尤其是在从事数据驱动的项目时。 Metaflow 声称“它可以快速、轻松地构建和管理现实生活中的数据科学项目”,所以我洗耳恭听。我的第一个问题是:“它实际上是做什么的?我不得不做一些调查来找出答案。在阅读了文档和教程之后,我在这里总结了我的发现。
Metaflow 使得从运行在本地机器上转移到运行在云资源上变得很容易。
主要的好处(在我看来)是元流在计算资源之上提供了一个抽象层。这意味着您可以专注于代码,而 Metaflow 将负责如何在一台或多台机器上运行它。用文档的话来说,它提供了“基础设施栈的统一 API”。
有向无环图
元流使用一个有向无环图(DAG)——包含要运行的操作的流——来提供这种抽象。管道中的每一个操作都是一个step
,并且被定义为一个 Python 类中的一个方法,带有一个装饰器:
元流图是使用一个子类化 FlowSpec(网飞技术博客)的类定义的
在并行定义步骤的情况下(例如上图中的两个模型拟合步骤),如果资源可用, Metaflow 可以并行运行它们。当在单个机器上运行时,这是并行处理的一个途径,类似于 Python 中的multiprocessing
包。然而,当您想要在云资源上运行时,主要优势就来了。一旦配置了集群,一个附加的命令行参数将告诉Metaflow在云中运行代码:--with batch
。虽然目前只支持 Amazon Web Services,但我想这在将来会有所改变。
在每一步的末尾都有一个检查点,并且可以在稍后的阶段恢复每一步的执行,以帮助调试。但是你不能一行一行的检查你的代码。
版本控制
机器学习模型的版本控制有点挑战,所以 Metaflow 也解决了这个问题。代码和数据都被散列。图形的每次执行都会被记录下来,结果会与关键超参数一起存储:
这些可以作为命令行参数轻松操作:
python metaflow_parameter.py run --alpha 0.001
元数据以 JSON 格式存储在文件系统中,您可以访问每个步骤中存储的变量数据。回读上一次运行也很容易:
run = Flow(flow_name).latest_successful_run
依赖性管理
元流也提供了一种管理依赖关系的机制,可以使用装饰器在flow
级别或step
级别指定它们。这些可以指定特定的 Python 版本或特定的包:
从命令行运行时指定了conda
环境标志:
python metaflow_conda.py --environment=conda run
后续步骤
如果您想试用metaflow
,从命令行安装很简单,文档中有一组很好的教程:
pip install metaflow
元流—入门:docs.metaflow.org](https://docs.metaflow.org/getting-started/tutorials)
结论
Metaflow 的目标是“无缝的可伸缩性”,看起来它做得很好。有一点手动设置让它与 AWS 一起工作,但它的相当好地记录了。如果你可能需要将你的分析项目扩展到云,并且关心部署,你可能应该看看 Metaflow 。我还没有想出如何从版本控制和细粒度依赖管理中获得最大价值,但它们看起来像是强大的功能。
你试过 Metaflow 吗?欢迎在下面的评论区留下任何体验和反馈。
Rupert Thomas是一名技术顾问,专门研究机器学习、机器视觉和数据驱动产品。 鲁伯特·托马斯
参考
https://docs.metaflow.org/getting-started/tutorials
机器学习中的欠拟合和过拟合到底是什么?
你可能听说过这些术语,但是你理解这个概念吗?
公平地说,机器学习作为一门科学,既复杂又非凡。其核心是高度技术性和数学化。但是如果你不能以非技术的方式理解技术属性,你就不能开始触及机器学习的表面。例如,如果你去参加一个数据科学家的面试,你不可避免地会被问到,“你能解释一下关于机器学习的欠适应和过适应吗?”。他们不是要你拿出图表;相反,他们想知道你理解这个概念。那么,机器学习中的欠拟合和过拟合到底是什么?
过度拟合
让我们从一个简单易懂的例子开始。假设你训练你的狗在你挥动左手的时候举起它的爪子。你有一只聪明的狗,它学得很快,每次都做对了。然而,有一个问题。当你的朋友试图模仿你的左手波时,你的狗茫然地看着他们。困惑中,你再次演示了这个技巧,只是这次你用了右手。你的狗还在发呆,但是为什么?原来你的狗只是在看到你的左手做动作时才学会如何做这个动作。此外,他只学会在你做手势时做,所以他永远不会回应你的朋友,不管你的朋友用什么手。这太合身了。
德克斯·伊齐基尔在 Unsplash 上拍摄的照片
简而言之,过度拟合就是当你有一个机器学习模型试图过多地适应你所拥有的数据。当机器学习算法或统计模型捕捉到数据的噪声并显示出低偏差但高方差时,就会发生这种情况。在机器学习中,偏差指的是由于过于简单或错误的假设而产生的错误。因此,高偏差意味着算法错过了特征中的重要趋势。在高方差的情况下,模型非常适合数据,但不擅长处理新数据集,因为它捕捉了训练数据中的所有随机性。换句话说,当模型或算法与数据拟合得太好,以至于模型无法有效实现其目标时,就会发生这种情况。
欠拟合
你可能已经猜到了,适配不足是适配过度的反义词。它的特点是低方差和高偏差。该模型没有很好地跟踪训练数据,而是忽略了经验教训,无法了解输入和输出之间的关系。例如,模型可能会看到许多带有条纹的斑马,但它不理解所有的斑马都有条纹。
一般来说,欠拟合比过拟合谈得少,因为它更容易发现。如果你的模型不合适,那么你应该很容易发现它,并能够在前进之前快速纠正它。相比之下,过度拟合往往直到后来才被发现。尽管如此,不合身也是不容忽视的。为了避免过度拟合或欠拟合,您应该使用验证和交叉验证来评估预测准确性。
在某些地区,过度拟合和拟合不足可能是有害的。想象一个试图对肿瘤进行恶性或良性分类的模型。你肯定不希望它过度拟合并做出错误的预测。
现在你已经理解了过度适应和欠适应的概念,你知道当它们发生时检测它们并尽可能避免它们的重要性。
可解释的人工智能无法解释什么(以及我们如何解决这个问题)
神经网络是精确的,但不可解释。决策树是可以解释的,但是在计算机视觉中是不准确的。我们有解决办法。
由 author⁰设计
别拿走它。让我们来看看的关存泰,他承认“许多机器决策仍然知之甚少”。大多数论文甚至建议在准确性和可解释性之间进行严格的二分法。
可解释的人工智能(XAI)试图弥合这一分歧,但正如我们下面解释的那样, XAI 在不直接解释模型的情况下证明了决策的合理性。这意味着金融和医学等应用领域的从业者被迫陷入两难境地:选择一个不可解释的准确模型,还是一个不准确的可解释模型。
什么是“可解读”?
为计算机视觉定义可解释性或可解释性具有挑战性:解释像图像这样的高维输入的分类,甚至意味着什么?正如我们下面讨论的,两个流行的定义涉及显著图和决策树*,但是这两种方法都有它们的弱点。*
可解释的人工智能无法解释的
显著图
许多 XAI 方法产生被称为显著图的热图,其突出显示影响预测的重要输入像素。然而,显著图关注于输入,而忽略了解释模型如何做出决策。
关于显著性图的更多信息,请参见这些 显著性 教程和 Github 资源库。
描绘原始图像(左),使用 Grad-CAM 方法的显著图(中),以及另一个使用引导反向传播的显著图(右)。上图是“阶级歧视”的典型例子。以上显著图取自https://github.com/kazuto1011/grad-cam-pytorch。
显著性图未能解释什么
为了说明为什么显著性图没有完全解释模型如何预测,这里有一个例子:下面,显著性图是相同的,但是预测不同。为什么?即使两个显著图都突出了正确的对象,一个预测是不正确的。怎么会?回答这个问题可以帮助我们改进模型,但是如下所示,显著图无法解释模型的决策过程。
(左)模型预测 Eared Grebe。(右)模型预测角鱼 Grebe。这些是在加州理工学院-加州大学圣迭戈分校 Birds-200–2011 或简称 CUB 2011 上训练的 ResNet18 模型的 Grad-CAM 结果。尽管显著图看起来极其相似,但模型预测却不同。因此,显著性图不能解释模型是如何达到最终预测的。
决策树
另一种方法是用可解释的模型代替神经网络。在深度学习之前,决策树是准确性和可解释性的黄金标准。下面,我们说明决策树的可解释性,它通过将每个预测分解成一系列决策来工作。
上面的决策树不是只预测“超级汉堡”或“华夫饼干”,而是会输出一系列决策,这些决策会导致最终的预测。然后,这些中间决定可以被单独验证或质疑。因此,经典机器学习将这种模型称为“可解释的”。
然而,就准确性而言,决策树在图像分类数据集上落后于神经网络高达 40%的准确性。神经网络和决策树的混合也表现不佳,甚至在数据集 CIFAR10 上也无法与神经网络相匹配,该数据集具有如下图所示的微小 32x32 图像。
展示 32x32 有多小的例子。这是来自 CIFAR10 数据集的示例。
正如我们在论文(第 5.2 节)中所示,这种精度差距损害了可解释性:需要高精度、可解释的模型来解释高精度神经网络。
进入神经支持的决策树
我们通过建立既可解释又准确的模型来挑战这种错误的二分法。我们的关键见解是将神经网络与决策树结合起来,在将神经网络用于低级决策的同时保留高级别可解释性,如下所示。我们将这些模型称为 神经支持的决策树 (NBDTs),并表明它们可以匹配神经网络的准确性,同时保留决策树的可解释性。
在该图中,每个节点包含一个神经网络。该图仅突出了一个这样的节点和内部的神经网络。在神经支持的决策树中,预测是通过决策树进行的,保留了高级别的可解释性。然而,决策树中的每个节点都是一个做出低级决策的神经网络。上面神经网络做出的“低级”决策是“有香肠”还是“没有香肠”。
NBDTs 和决策树一样可以解释。与当今的神经网络不同,NBDTs 可以输出预测的中间决策。例如,给定一幅图像,神经网络可以输出狗。但是,一只 NBDT 可以同时输出狗和动物、脊索动物、食肉动物(下图)。
在该图中,每个节点包含一个神经网络。该图仅突出了一个这样的节点和内部的神经网络。在神经支持的决策树中,预测是通过决策树进行的,保留了高级别的可解释性。然而,决策树中的每个节点都是一个做出低级决策的神经网络。上面神经网络做出的“低级”决策是“有香肠”还是“没有香肠”。上面的照片是在 Pexels 的许可下从 pexels.com 拍摄的。
**NBDTs 实现神经网络精度。**与任何其他基于决策树的方法不同,NBDTs 在 3 个图像分类数据集上匹配神经网络精度(< 1%差异)。在 ImageNet 上,NBDTs 的精度也达到了神经网络的 2%以内,ImageNet 是最大的图像分类数据集之一,拥有 120 万张 224x224 图像。
此外,NBDTs 为可解释模型设定了新的最先进的精确度。NBDT 的 ImageNet 准确率为 75.30%,比基于决策树的最佳竞争方法高出约 14%。为了将这种准确性的提高联系起来:对于不可解释的神经网络来说,类似的 14%的提高花费了 research⁴. 3 年的时间
神经支持的决策树如何解释
个体预测的合理性
最有见地的理由是模型从未见过的对象。例如,考虑一只 NBDT(如下),在一只斑马上运行推理。虽然这个模型从来没有见过斑马,但是下面显示的中间决定是正确的——斑马既是动物又是有蹄动物(有蹄动物)。对于看不见的物体来说,看到个体预测的合理性的能力是至关重要的。
NBDTs 甚至可以对看不见的物体做出准确的中间决策。在这里,模型是在 CIFAR10 上训练的,以前从未见过斑马。尽管如此,NBDT 正确地将斑马识别为动物和有蹄动物。上面的照片是在 Pexels 的许可下从 pexels.com 拍摄的。
模型行为的正当性
此外,我们发现使用 NBDTs,可解释性会随着准确性的提高而提高。这与导言中的二分法相反:NBDTs 不仅具有准确性和可解释性;他们还将准确性和可解释性作为同一目标。
ResNet10 层次结构(左)不如 WideResNet 层次结构(右)有意义。在这个层次中,猫、青蛙和飞机被放在同一个子树下。相比之下,WideResNet 层次在层次的每一侧都清晰地划分了动物和车辆。上面的图片直接取自 CIFAR10 数据集。
例如,精度较低的 ResNet⁶层级(左)就没什么意义了,将青蛙、猫和飞机组合在一起。这是“不太明智的”,因为很难找到所有三个类共有的明显的视觉特征。相比之下,更高精度的 WideResNet 层次结构(右)更有意义,它清晰地将动物与车辆区分开来——因此,精度越高,NBDT 就越容易解释。
理解决策规则
对于低维的表格数据,决策树中的决策规则很容易解释,例如,如果菜里有一个小圆面包,则选择正确的子元素,如下所示。然而,对于像高维图像这样的输入,决策规则并不直接。
这个例子演示了如何用低维的表格数据来解释决策规则。右边是几个项目的示例表格数据。左边是我们根据这些数据训练的决策树。在这种情况下,决策规则(蓝色)是“是否有 bun?”所有带有圆面包(橙色)的项目被发送到顶部的子项目,所有没有圆面包(绿色)的项目被发送到底部的子项目。
正如我们在论文(第 5.3 节)中定性发现的那样,模型的决策规则不仅基于对象类型,还基于上下文、形状和颜色。
为了定量地解释决策规则*,我们利用了一个名为 WordNet⁷的现有名词层级;有了这个层次,我们就可以找到类之间最具体的共享意义。例如,给定类别猫和狗,WordNet 将提供哺乳动物。在我们的论文(第 5.2 节)和下图中,我们定量地验证了这些 WordNet 假设。*
**
左边子树(红色箭头)的 WordNet 假设是 Vehicle。右边(蓝色箭头)的 WordNet 假设是动物。为了定性地验证这些意义,我们针对看不见的物体类别测试了 NBDT:1 .寻找训练中没有看到的图像。2.给定假设,确定每个图像属于哪个子图像。例如,我们知道大象是一种动物,所以应该去右边的子树。3.我们现在可以通过检查有多少图像被传递给正确的孩子来评估这个假设。例如,检查有多少大象图像被发送到动物子树。这些每类的精度显示在右侧,看不见的动物(蓝色)和看不见的车辆(红色)都显示高精度。
注意,在具有 10 个类的小数据集即 CIFAR10 中,我们可以找到所有节点的 WordNet 假设。然而,在具有 1000 个类的大型数据集(即 ImageNet)中,我们只能找到节点子集的 WordNet 假设。
一分钟内尝试 NBDTs
有兴趣尝试 NBDT 吗,现在?不需要安装任何东西,你就可以在线查看更多示例输出,甚至尝试我们的网络演示。或者,使用我们的命令行实用程序来运行推理(使用 pip install nbdt 安装)。下面,我们对一只猫的图片进行推理。
*nbdt https://images.pexels.com/photos/126407/pexels-photo-126407.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=32 # this can also be a path to local image*
这将输出类别预测和所有中间决策。
*Prediction: cat // Decisions: animal (99.47%), chordate (99.20%), carnivore (99.42%), cat (99.86%)*
您也可以用几行 Python 代码加载一个预训练的 NBDT。使用以下内容开始。我们支持几个神经网络和数据集。
*from nbdt.model import HardNBDTfrom nbdt.models import wrn28_10_cifar10model = wrn28_10_cifar10()model = HardNBDT( pretrained=True, dataset='CIFAR10', arch='wrn28_10_cifar10', model=model)*
作为参考,请参见我们上面运行的命令行工具的脚本;只有大约 20 行直接参与转换输入和运行推理。有关入门和示例的更多说明,请参见我们的 Github 库。
它是如何工作的
神经支持决策树的训练和推理过程可以分为四个步骤。
训练 NBDT 分两个阶段进行:首先,构建决策树的层次结构。第二,用特殊的损失项训练神经网络。若要运行推理,请将样本通过神经网络主干。最后,将最后一个全连接层作为决策规则序列运行。
- 构建决策树的层次结构。该层次结构决定了 NBDT 必须在哪些类别集之间做出决定。我们将这种层次称为诱导层次。
- 这个层次结构产生了一个特定的损失函数,我们称之为树监督损失 ⁵.训练原始的神经网络,没有任何修改,使用这个新的损失。
- 通过将样本传递到神经网络主干来开始推断。主干是最终全连接层之前的所有神经网络层。
- 通过运行最终的全连接层作为决策规则序列来完成推理,我们称之为嵌入式决策规则。这些决定最终形成了最终的预测。
更多细节,请参见我们的论文(第 3 节)。
结论
可解释的人工智能没有完全解释神经网络如何实现预测:现有的方法解释了图像对模型预测的影响,但没有解释决策过程。决策树解决了这个问题,但不幸的是,images⁷是决策树准确性的克星。
因此,我们结合了神经网络和决策树。与实现相同混合设计的前辈不同,我们的神经支持决策树(NBDTs)同时解决了(1)神经网络提供调整和(2)决策树获得高精度的失败。这为医药和金融等领域的应用开创了一个新的精确、可解释的 NBDTs 类别。要开始,请参见项目页面。
其中*表示同等贡献
[0]由作者 Alvin Wan 设计。脚注的存在是为了澄清我们有权使用这个图形。
[1]有两种类型的显著图:一种是白盒,其中该方法可以访问模型及其参数。Grad-CAM 是一种流行的白盒方法,它使用梯度和类别激活图来可视化注意力。可以从论文《Grad-CAM:通过基于梯度的定位来自深度网络的可视化解释》http://open access . the CVF . com/content _ ICCV _ 2017/papers/selva raju _ Grad-CAM _ Visual _ expansions _ ICCV _ 2017 _ paper . pdf。另一种类型的显著图是黑盒,其中模型不能访问模型参数。上升就是这样一种突出方法。RISE 会遮罩输入图像的随机部分,并将此图像传递给模型-对准确性损害最大的遮罩是最“重要”的部分。你可以从论文《崛起:解释黑箱模型的随机输入抽样》,http://bmvc2018.org/contents/papers/1064.pdf中了解更多。
[2]在 TinyImageNet200 上显示了决策树和神经网络之间 40%的差距。
[3]这三个数据集特别是 CIFAR10、CIFAR100 和 TinyImageNet200。
[4]ImageNet 准确性的提高是显著的:对于不可解释的神经网络,ImageNet 上类似的 14%的提高花费了 3 年的研究。为了进行这种比较,我们考察了一个类似的准确性增益,它花了 3 年时间,从 2013 年的 Alex net(63.3%)到 Inception V3 (78.8%)。从 NofE (61.29%)到我们的 nbdt(75.30%),NBDT 在大约相同的范围内比以前的最先进结果提高了约 14%。然而,还有其他因素在起作用:一个明显的因素是,计算和深度学习库在 2013 年并不容易获得。一个更公平的比较可能是使用 ImageNet 最新的 14%的收益。最近 14%的增长用了 5 年时间,从 2015 年的 VGG-19(74.5%)开始,到 2020 年的 fix efficient net-L2(88.5%)。然而,这在技术上也是不可比的,因为在更高的精度下更难获得大的增益。尽管缺乏完全可比的基准进度,我们只是取了两个时间范围中的最小值,试图说明 14%的差距有多大。
[6]在 CIFAR10 上,ResNet10 的精度比 WideResNet28x10 低 4%。
[7] WordNet 是各种单词的词汇层次结构。大多数单词是名词,但也包括其他词类。更多信息见官网。
[8]要理解树监督损失的基本思想: Horse 只是一个类。不过它也是有蹄类和动物*。(参见“个人预测的理由”中的图表。)在根节点处,因此需要将马样本传递给子节点动物。此外,节点动物需要将样本传递给有蹄动物。最后,节点有蹄动物必须将样本传递给马。训练每个节点以预测正确的子节点。我们称这种损失为树木监管损失。*
[9]一般来说,决策树在处理低维数据时表现最佳。图像是这种最佳情况的对立面,非常高维。
Airbnb 上的挂牌价格是由哪些功能决定的?
通过 Tableau & Seaborn 可视化西雅图 Airbnb 数据
从 2000 年中期开始,Airbnb 已经成为我们日常旅行中必不可少的一部分。如今,在线旅行社业务需求巨大。但是你有没有停下来想一想到底是什么因素促成了挂牌价?
作者图片
上图显示了 Airbnb 上平均挂牌价格的密度图。整个城市的价格相差很大。
简介:
今天,我想通过 4 个步骤来探讨这些话题:
- 哪些小区均价差不多?给定一个具体的预算,你去哪里找 Airbnb?
- 挂牌均价排名前 10 的邻里团有哪些?
- 哪个评审得分与挂牌价的相关性最高?
- 挂牌价有哪些预测因素,我们如何在 Airbnb 上给房子定价?
第一部分:相似邻域(K-均值聚类)
如果我有 X 美元的预算,我应该去哪里找 Airbnb?
使用 tableau,我们可以很容易地根据标价对邻居进行聚类。
作者图片
上图显示了三个聚类在平均价格和列表数量方面的关系。颜色梯度显示价格差异。方框的大小表示 Airbnb 上的房源数量。
聚类一(深红色)表示具有很少列表和较低价格(低于 100 美元)的邻居组。集群 3 具有第二高的列表数量和最高的平均价格。而集群 2 具有最高数量的列表。
作者图片
简言之,
- 如果您的预算低于 100 美元,请选择 1 区的酒店。
- 如果你的预算在***【100 美元到 150 美元*** 左右,就选集群 2 吧。
- 最后,如果你有更多的钱可以花,你可以在集群 3 中找到更贵的选择。
第二部分:平均价格排名前 10 的社区
价格最高的 10 个街区——作者图片
正如上面的单词 cloud 所示,不难看出,Magnolia 东南部房价最高的社区和第二高的社区是 portage Bay,这两个社区每晚的平均房价都超过了 200 美元。
第三部分:哪些评审分数与挂牌价相关性最高?
在 Airbnb 上,有几个审核评分来帮助区分每一个房源。评审分数也是一种反复的方法,用来巩固优秀和改正缺点。点评分数和挂牌价有关联吗?让我们仔细看看。
可变热图-作者图片
令我惊讶的是,没有一个的点评分数与上市价格有显著相关性。(皮尔逊相关系数小于 0.1)既然我们知道点评分数不是上市价格的关键指标。下一个问题是:决定挂牌价格的关键因素是什么,我们如何给房子定价?
第四部分:挂牌价的预测因素是什么?
决策树和回归分析
我想你是 Airbnb 的房主,你会知道你的定价策略是否合理。一个快速评估的方法是取你所在地区标价的平均值。然而,不同的房子之间有很大的差异,即使是在同一个邮政编码或社区。我们需要通过机器学习和可视化来了解哪些因素影响了价格。
让我们仔细看看与挂牌价相关的其他属性。
- 数量特征
成对情节—作者提供的图像
从上面的图中可以看出,可容纳床位和的数量与价格正相关,而评论数量显示出很小的负相关性。
2.定性特征:
作者图片
如上面右图所示,我们看到一个明显的趋势,从共享房间转移到整个房间,最后是专属财产。此外,更多的床位通常意味着更高的价格。然而,在 1000 美元的价格标签周围有一些异常值
此外,在左图中,我们可以看到大多数高价房源都是房子,只有少数公寓例外。
决策树建模:
作者图片
最后,让我们仔细看看决策树模型的结果。根据上面显示的预测值,该模型可以解释 50%的挂牌价格变化。(r = 0.5)
从顶部开始,模型对卧室数量≤ 1.65 进行分割,表明卧室数量是区分挂牌价格的关键指标。沿着这个分支,我们必须确定房间类型是否是公寓,因为人们倾向于花更少的钱买公寓,花更多的钱买房子。我们还根据可用床位的数量和房间的大小分类,在适应度不超过 7.5 的情况下进行了划分。树的第三层具有作为分割点的浴室和市中心街区。
前 5 名的重要分数-作者图片
上面的列表显示了根据决策树模型的重要性影响价格的前 5 个特征。
第五部分:结论
在本文中,我们研究了影响西雅图 Airbnbs 挂牌价格的因素。
- 我们根据标价将社区分成三个不同的群,并创建了一个基于预算的策略来寻找合适的位置。
- 然后我们看了价格方面最热门的社区。
- 然后,我们调查了与标价相关的特性。我们发现评论分数与标价不相关。
- 最后,我们查看影响上市价格的定量和定性特征,我们可以使用这些特征构建决策树模型。前 5 个关键属性是**、卧室数量、房间数量、整个公寓空间、浴室数量以及位于市中心**。
附录:
作为一名数据科学家,什么适合你?
数据科学
发现你的位置,找到正确的方向
蒙蒂·艾伦在 Unsplash 上的照片
数据科学致力于理解自然界,而自然界本来就非常复杂。但是怎么做呢?分析数据,大量的数据(所谓的大数据,试图理解它们并挤压知识和经验,从而做出决策和解决问题。为了更好地了解什么是数据科学和机器学习领域的体验,请查看我关于机器学习和人工智能的介绍性文章(下面的链接)。
答案是否定的。我来告诉你为什么。
medium.com](https://medium.com/swlh/artificial-intelligence-and-machine-learning-are-they-the-same-thing-a9f6c8019a89)
作为一名数据科学家,首先要知道的是由步骤组成的数据生命周期。
数据收集
如今,数据收集是一件容易的事情。数据收集是从各种来源收集数据的行为:网页、新闻、社交媒体、报告、图表、表格等。都是数字原始数据的来源,随时可供感兴趣的人使用。
数据流—来自 Giphy
在这个领域,一个优秀的数据科学家会对这个世界产生一种与生俱来的好奇心;他是数据驱动型的,所以他花费大量时间收集数据来回答感兴趣的问题。所需技能包括:
- 想想解决你所涉及的问题需要哪些数据
- 知道如何从各种来源收集数据,以及如何以结构化的方式组合它们
- 了解一些收集数据和 ETL(提取、转换和加载)的工具或应用
数据清理
一旦收集,大多数时候,原始数据是“凌乱”的。
一个非常凌乱的办公室,有一堆文件和原始数据要整理——图片由 Wonderlane 在 Unsplash 上拍摄
数据清理是一项复杂的任务,包括:
- 检测和纠正由于部分或缺失数据收集而导致的损坏或不准确的数据
- 基于相关现象信息的数据验证和缺失值估计依赖于问题。
- 通过数据的协调和标准化来增强数据
- 转换数据以获得数据集中值的一致性和可比性
探索性数据分析
探索性数据分析(EDA)是一组技术的集合,用于观察数据能告诉我们什么。在 EDA 中,我们使用数学模型和常识来处理数据的重要性。
数据的图示——照片由 Stephen Dawson 在 Unsplash 上拍摄
作为数据科学家,我们必须知道从我们收集的数据中可以期待什么,必须制定一个假设,并“填补”我们所拥有的信息中的空白。
有许多工具可以帮助我们:
- 描述性统计:用表格、图表、汇总值等来表示数据。
- 推理统计学:利用我们收集的数据(这是对现实的不完全描述)来推断、假设现象的基本特征。
- 对环境的深刻理解,也就是说,对我们试图用数据科学技术解决的问题的背景的深刻理解。
值得回忆的是,在经典的机器学习 (ML)中,数据生命周期的这一阶段取决于我们这些数据科学家。当在深度学习 (DL)甚至在强化学习 (RL)中时,这取决于模型,机器,来应对这种情况。在 DL 中,在训练阶段,算法学习所提供数据的特征并适应它们。在 RL 中,环境甚至是学习过程中的一个活跃部分。
模型结构
模型构建是 ML 过程的基本部分。当我们创建一个模型时,我们可以训练机器学习我们数据(训练集)的模式,以预测未知或未来的数据。
要有创意…是时候做模型了!—Jo Szczepanska在 Unsplash 上拍摄的照片
在模型构建中,我们试图从分析中预测结果。
同样,有些技能是必不可少的:
- 将正确的学习模式应用于我们的数据,以解决特定的问题(回归、分类、关联、聚类等)
- 通过定义的指标测试和评估模型训练的结果,以计算性能
- 结合多种技术和模型,以在预测、模型的稳健性等方面获得更好的结果。(合奏造型)
模型部署
当我们的模型准备好了,并且我们从训练和测试集(训练和评估阶段)得到了好的结果,就该把它投入生产了。这是我们从数据中获得结果的最后阶段,用于商业、学习、研究,或者也可能用于娱乐!
获得结果的时间到了——照片由 NeONBRAND 在 Unsplash 上拍摄
我们需要知道:
- 如何在各种现成的、先进的框架上部署我们的模型。想想,也就是在 Python 工具和库中,比如 NumPy、pandas、scikit-learn (ML)、TensorFlow Keras、PyTorch (DL)、openai tools for RL 等。
- 如何将结果应用到生产环境中,用于优化、异常检测、自动化、预测等。
- 如何向利益相关者总结结果
那么,下一步是什么?
到目前为止,我们已经讨论了这个过程。但是,每一步都需要谁呢?我们先明确一下概念,涉及到哪些角色。
首先,我们用一张图总结一下所有的过程
角色和数据管道—作者
数据科学家
正如你所看到的,一个数据科学家被期望做从数据收集到模型部署的所有事情;他必须意识到真正的问题,并且他必须知道关于过程的每个阶段的许多技术。因此,所需的技能是:
- 掌握如何使用 SQL 和其他方法查询数据集
- 对代数、统计和集合论有深入的理解,有助于数据建模技术
- 了解 Python、R、Java、C++或其他用于数据清理、数据操作、EDA 和可视化的语言。
- 能够根据数据和预期结果选择或组合适合解决问题的建模技术
- 了解如何将生产环境中的数据管道与结果的可视化和呈现方法相结合,如 web 应用程序、报告、机器命令等。
数据工程师
A 数据工程师更专注于数据收集和数据清理。在这个职位上,除了能够从各种来源提取、转换和加载数据之外,我们还必须非常精通数据库和数据查询技术。然后,我们必须知道如何清理数据,处理空值或不一致的值,以及更多的技术,为下面的 ML 模型建立一个坚实的来源基础。
数据分析师
一个数据分析师在数据清理和 EDA 上努力。他精通统计学,无论是描述性的还是推理性的,并且总是试图从数据中挤出每一点信息。他的角色对于数据建模和构建能够实际捕捉环境行为的可靠模型至关重要。在通往知识的数据科学道路上,在我看来,这可以是第一步,然后我们可以探索该过程的其他阶段。
机器学习工程师
一个机器学习工程师知道如何充分利用数据,基于各种技术和 ML 算法;他精通 ML 模型、超参数优化、评估和度量,并处于该领域最新研究的前沿。除此之外,他还知道如何将模型扩展和部署到生产系统中。
如您所见,有许多通往数据科学的途径。在我看来,每个兴奋地参与这一领域的人都必须意识到,为了更好地理解数据和机器学习技术,从一个新的角度看待现实,他可能会对进步和未来的道路做出什么贡献。
我希望你喜欢这篇文章,并随时留下评论,关注我未来在 Medium 上的帖子。感谢大家,很快再见。
对于 DL 训练,我应该以什么格式存储我的 ECG 数据?
优化心电图数据布局提升深度学习训练性能的案例研究。
从历史上看,我们保存数据是为了我们可以读取它。现在,随着数据科学的快速发展,机器正在读取我们的数据。我们正在从人类访问小数据转变为深度学习脚本重复访问大量数据。
这是将患者的 x 射线加载到监视器上进行视觉评估与通过神经网络运行 x 射线 1000 次之间的区别,神经网络将原始图像转换为向量,裁剪它,旋转它,模糊它,然后尝试识别气胸。
这就是为什么我们看到 GPU 越来越多地用于深度学习——我们需要对我们的数据执行越来越多的数学运算。GPU 中的计算元素专为大规模数据并行数学运算而设计,这些运算是现代图形管道的基础。事实证明,深度学习工作流程背后的数学。
但是没有[数据→ GPU]那么简单
虽然 GPU 执行深度学习的复杂数学,但每个训练工作都是一个管道,在 GPU 工作之前有一些步骤。
在训练中,在数据进入神经网络之前,它在一系列操作中得到预处理**。预处理通常包括一系列任务:索引(列出)训练数据集中的项目,对它们进行洗牌,从存储中实际加载它们,然后执行变形。预处理通常发生在 CPU 上(通常发生在 GPU 服务器中的 CPU 上)。**
因此,数据必须通过 CPU 从存储位置转移到 GPU 进行计算。
数据负载本身通常是训练管道最大吞吐量瓶颈的原因。
如果你正在加载一个病人的 x 光片给看,你可能会发现 0.04 秒的数据加载时间是可以接受的。您几乎不会注意到延迟,因为您的“回顾”时间可能有几分钟长。
另一方面,一个只需要 0.001 秒来“检查”图像的 GPU 服务器会因为 0.04 秒的数据加载时间而变慢。和延迟化合物。对于包含不是一个项目而是数千个或数百万个项目的大规模训练数据集和迭代计算(例如,单个作业中的 20 个历元),数据加载延迟会发生很多次。
不管你的 GPU 有多快,你的训练工作只能和你的数据加载时间一样快。
因此,确保数据加载高效会带来巨大的性能优势。
这篇文章描述了我们与 Geisinger 的成像科学和创新部门的项目,以优化心电图结果数据集的训练吞吐量。我们为优化测试生成了一个数据大小和类型匹配的模拟数据集。
首先,确定性能基线
开始 DL 性能调查的一个好地方是检查数据加载工作持续时间和培训工作持续时间之间的比率。
在我们运行这个基本任务分解之后,我们发现数据加载时间明显大于训练时间。这是非常低效的,因为在列车:负载比为 1:4 的情况下,我们的 GPU 在作业持续时间内处于空闲状态。
在我们等待下一批加载时,每一批都有 75%的 GPU 时间处于空闲状态。
我们需要更快地加载数据。
为什么文件加载很慢?
我们的合成训练数据代表来自 15 导联 ECG 测试的日志:15x 5GB HDF5 文件,每个文件包含 1,000,000 条记录(患者)。每个文件代表一个 ECG 通道,其中“patient_id”是关键字,该通道的结果是其记录。
我们将 HDF5 视为键值存储,但该文件格式实际上是为了支持更复杂的数据结构而设计的。HDF ( 分层数据格式)非常适合存储包含大量元数据的大型数值数据集。它支持文件内的分组,有效地使 HDF 文件成为可移植的文件系统。HDF 主要用于 HPC 用例中的科学数据集。
然而,该功能的一个缺点是,每次读取 HDF5 文件都会产生大量开销。
我们可以使用 strace 来窥探在我们发出单个 read(通过 h5py python 库发出)时发生的系统调用。
“lseek”用于将文件指针移动到文件中的特定位置,然后“read”用于实际读取数据。最后一行是一个 4992 字节的读取,以检索组成我们的 HDF5 文件的键值对中的一个值。前 5 次读取是对文件内的元数据(指针)的读取,这些元数据是定位所需数据所必需的。
为什么会有这么多元数据读取?因为 HDF 使用 a B 树结构来帮助提高其类似文件系统的元数据查询的性能。就像在文件系统上一样,知道在哪里寻找数据可能比将数据移动到 CPU 中更困难。
在看到 HDF 读取需要多少冗余系统调用后,我们确信有一种更具读取性能的方法来保存我们过于简单的数据集。我们并没有真正使用赋予 HDF 名字的层级功能。
最优会是什么样子?
作为一个思想实验,我们从一个问题开始,“文件中键值数据的最佳布局是什么,以获得最大的读取吞吐量?”
我们在解决什么?
1。我们不需要保存复杂的元数据
我们用于记录的唯一描述性信息是密钥。
让我们远离 HDF 中我们没有使用的功能。
2。快速读取单个记录和收集密钥列表
正如在培训工作中常见的那样,我们的脚本从打乱数据集开始。必须先枚举数据集的内容,然后才能洗牌。由于这个枚举步骤发生在每个作业的开始,我们不想通过缓慢的键收集(我们在 HDF5 中见过)来建立前端延迟。
3。IO 越大越好
我们更喜欢从远程存储上保存的数据集进行训练。为什么?首先,数据管理更简单,我们不必提前花费时间将数据集复制到本地设备。第二,我们的数据集太大,无法完全放入本地内存,所以如果我们从本地存储位置进行训练,我们必须管理一些数据分片过程。
因此,由于我们将发出必须通过网络到达存储的读取,我们也可以通过增大读取大小来优化网络往返成本。
我们首先将所有 15 个心电图导联的数据合并成一个记录。这一变化既简化了我们的数据集,又有助于增加 IO 大小;现在,读取单个患者的心电图结果可以通过网络在 1 次旅行中收集,而不是 15 次。
每个记录包含来自所有 15 个 ECG 导联的数据阵列:
[[第一频道],…,[第十五频道] ]
我们可以简单地通过其在数组中的位置将单个结果与其来自的 ECG 导联编号相关联。
键块包含每个记录的[key_id,value_location]。现在我们可以直接跳到文件中特定记录的数据。
我们在文件末尾存储了一个包含所有密钥的数组。打开文件后,我们会读取一个文件头,其中包含文件配置信息,如模式规范,最重要的是文件中关键块的位置。密钥加载效率极高,因为我们可以直接跳到密钥块的起始位置,然后一次性读取所有密钥。
在 HDF5 文件中,密钥随机分布在整个文件中。在我们的新文件格式中拥有连续的键允许对键块进行大量的顺序读取,从而最小化网络开销。
30 倍的解决方案
由此产生的文件格式,我们将其命名为“Fleet”并在 GitHub 上提供,为我们的工作负载提供了比 HDF5 高 30 倍的读取吞吐量。更好的是,我们的火车:负载比现在超过了 1:1(对于远程存储和本地存储)。我们可以在 NFS 利用我们的心电图数据进行有效的训练。
我们认为这样一种轻量级的文件格式最适合用于深度学习训练的大型数值数据集。如果需要分组,可以创建附加的车队文件来代表每个组。
Fleet 是一种开源文件格式。你可以在舰队 GitHub 页面上找到代码和几个助手脚本。
我们学到了什么
虽然使用 JPEG 图像或张量记录的训练脚本已经在人工智能生态系统中进行了广泛的测试和调整,但其他文件格式的训练可能需要一些性能分析,以优化整体作业吞吐量。
有时,训练数据集的格式可能会引入读取模式或计算需求,从而降低整体训练工作的速度。在这种情况下,我们通过切换到轻量级、读取优化的文件格式来优化训练性能。
随着我们继续将深度学习方法应用于更广泛的用例和数据集,我们应该继续问自己,“如果我们解决了最佳训练吞吐量,我们的数据会是什么样的?”
这项研究是我的同事 Brian Gold 在 Pure Storage 和 Geisinger 的成像科学和创新部门共同开展的项目。特别感谢 David Vanmaanen、Sush Raghunath 和 Alvaro Ulloa Cerna。
什么是卓越的图形以及如何创造它
作为一名数据科学家,了解如何制作重要的图表至关重要
动机
假设您从 4 个不同的来源收集了 4 个数据集。你想看看他们彼此之间有多大的不同。
F.J. Anscombe,“统计分析中的图表”,《美国统计学家》,第 27 期(1973 年 2 月),第 17-21 页。
你发现它们是由**完全相同的线性模型描述的。**在数据数量、X 的平均值、Y 的平均值、回归线方程、标准误差、相关系数等方面没有差异。如果你要得出这些数据集是相同的结论,那么在做出任何结论之前,推迟诱惑,用 5 分钟来绘制这些数据点。
F.J. Anscombe,“统计分析中的图表”,《美国统计学家》,第 27 期(1973 年 2 月),第 17-21 页。
他们的图形显示明显不同!这就是绘图如此重要的确切原因。当我们听到数据时,我们通常会想到用数字来表示。但是的数字和计算不足以显示数据的洞察力。为了不做出错误的结论,我们不需要仅仅被统计数据所蒙蔽。
但是任何一种图形都有意义吗?答案是否定的。这就引出了图形优秀的定义。
卓越的图形
卓越的图形应该:
- 引导观众思考物质而不是方法论、图形设计或技术
- 在最短的时间最小的空间给观众最多的想法****
- 告诉数据的真相
如果你仍然不相信这些标准对于一个优秀的图表是重要的,我们将通过例子来说明这些标准应用于数据科学中最常用的两个图表:地图和时间序列
地图
现在有很多工具可以让我们用地图来可视化数据。但是真正有用的地图不需要花里胡哨、色彩斑斓,而是要在最短的时间内展示最多的想法。
早期最有价值的地图是著名的约翰博士的点状地图,显示了 1854 年 9 月伦敦市中心死于霍乱的地点。
E.吉尔伯特,“英格兰健康和疾病的先驱地图”,《地理杂志》,124 (1958),172–183。
死亡人数用圆点标出,11 个水泵的位置用十字标出。通过检查地图表面的散布,斯诺观察到霍乱几乎完全发生在那些住在水泵附近的人中间。因此,他把被污染的水泵的把手拿掉了。
看地图时的一个小小的观察结束了这场夺走了 500 多条生命的流行病,并拯救了成千上万条生命!当然,泵和疾病之间的联系可以通过任何计算很容易地揭示出来。但是这张地图是一个强有力的例子,证明有时图形分析可以比任何计算更有效地证明数据。****
时间序列
时间序列图是数据科学最常用的形式之一。一维以秒、分、小时、天、周、月、年、世纪的节奏行进。这种时间顺序的安排给了这张图表解释的力度和效率,这是其他图表所没有的。
当听到时序图时,我们通常会想到这种图:
从显示器中检索
事实上,上图是最常用的一种时序图。但是你知道时序图也可以是这样的吗:
查尔斯·约瑟夫·米纳德,《米纳德 1845-1869 年的绘画和卡特尔形象》
当将空间维度添加到图形的设计中时,时间序列显示的解释力得到增强。上图是查尔斯·约瑟夫·密纳德的经典之作,展现了拿破仑军队在俄罗斯的可怕命运。上图中有几点需要注意:
- 从左边开始,粗的褐色流线显示了入侵开始时大军的规模(422,000 人)。
- 这条带子的宽度显示了地图上每个地方军队的规模。随着军队到达莫斯科,规模变得越来越小。
- 拿破仑从莫斯科撤退的路线是较暗、较低的带,它与温度等级和日期有关。
数据地图和时间序列的结合有效地描绘了拿破仑的俄罗斯战役中遭受的一系列毁灭性损失。那是一个严寒的冬天,许多人在离开俄罗斯的途中冻死了。如果我们被告知军队的规模最初是 422,000 人,最终是 10,000 人,我们可能不会真正意识到损失的巨大数字。但是通过观察图表,我们可以生动地想象出这个人是怎么熬过来的,以及感冒有多严重。
那么我们应该如何绘制图表呢?
这篇文章并没有详尽地展示一个优秀图的每一个标准。但是我希望这篇文章给你一个重要的信息:一个优秀的图形不是用先进的图形技术展示美丽设计的图形。一个优秀的图表是由清晰、精确和高效的复杂想法组成的。一个优秀的图表,在最短的时间最小的空间里,给浏览者最大数量的想法。一个优秀的图表揭示了数据的真相。
因此,在制图时,首先要明确你的目的和你想通过图表传达的想法,然后找到表达你想法的方法。
我喜欢写一些基本的数据科学概念,并尝试不同的算法和数据科学工具。你可以通过 LinkedIn 和 Twitter 与我联系。
如果你想查看我写的所有文章的代码,请点击这里。在 Medium 上关注我,了解我的最新数据科学文章,例如:
如何比较列表、集合和其他方法的性能
towardsdatascience.com](/timing-the-performance-to-choose-the-right-python-object-for-your-data-science-project-670db6f11b8e) [## 使用 Python 最大化您的生产力
你创建了一个待办事项清单来提高效率,但最终却把时间浪费在了不重要的任务上。如果你能创造…
towardsdatascience.com](/maximize-your-productivity-with-python-6110004b45f7) [## 用 Python 选择要投资的股票
您计划在未来 3 年投资几只股票,每只股票的每一美元都有不同的预期回报…
towardsdatascience.com](/choose-stocks-to-invest-with-python-584892e3ad22)
参考
爱德华·塔夫特。"定量信息的可视化显示."图形出版社有限责任公司。2007 年 8 月