TowardsDataScience 博客中文翻译 2020(九百)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

从 Python 开始会让你成为更好的数据科学家的五大理由

原文:https://towardsdatascience.com/top-5-reasons-starting-with-python-will-make-you-a-better-data-scientist-82677c0a0c9b?source=collection_archive---------58-----------------------

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

泰勒·弗兰塔在 Unsplash 上的照片

随着对拥有数据科学技能的人的需求激增,公司已经在寻找满足这种需求的方法。一种方法是公司走出去,招聘封装所有数据科学的人,这通常包括精通一种编码语言,可能是 Python。这是因为 Python 是数据科学中使用的一种流行的编码语言。另一种方法是观察你的公司内部,看看谁拥有这些技能,让这些人成为你的数据科学家。公司也可以看看自己的内部,找到接近他们想要的数据科学家的人,并对他们进行培训。为了加快内部数据科学人员的增长,公司有时会购买能够快速交付数据科学解决方案的商业工具。如果你发现自己属于一群准备提升技能成为公司数据科学家的人,那么这是一份适合你的列表。

来自世界各地的顶级科技公司已经开发了优秀的工具来帮助所有的数据科学,其中许多只需要很少或没有编码经验就可以开始。如果您的公司正在考虑使用数据科学工具或平台(或者已经使用了),那么您可能会想“如果不需要,我为什么还要尝试编码”,或者“我现在没有时间学习编码。”这些都是你头脑中非常自然的想法。我想做的是给你一些不这么想的理由,以及为什么我认为学习 Python 会让你成为一名更好的数据科学家

原因 1:知道“为什么”

作为任何机器学习或分析项目的数据科学团队的一部分,你需要回答从使用什么数据到如何训练模型的所有问题。写代码对你有什么帮助?你可能会有一个更结构化的方法来设置项目步骤,因为用没有结构的代码编写解决方案是一个真正的陷阱,而有结构的思想可以让你在回答问题时不显得无所事事。使用编码语言设置模型的训练也使您接触到模型的参数和超参数,这将使您了解它们是什么以及它们如何影响算法的训练或模型的性能。将解决方案“开箱即用”时,这些主题可能不会出现

原因#2:了解陷阱并排除故障

你在高速公路上开车时用过巡航控制吗?在城市街道上平行泊车时,你会使用巡航控制吗?为什么不呢?忽略自动驾驶和自动泊车的汽车,我要说的是,有时我们使用的工具只适用于某些情况。当你想保持速度,但你仍然需要注意和转向时,巡航控制是很好的,但对于其他目的来说,它不是很好。在这里,拥有动手编程的体验就像知道如何在高速公路上驾驶的每一个细节,即使有巡航控制。如果有什么奇怪的事情发生,你可以调整。数据科学过程的某些部分最终会中断,会出现错误和其他灾难,有时事情会完全失败。不仅仅是知道如何打开巡航控制,还能让你排除故障并适应这些情况。编码有什么帮助?编写代码时,您可能会面临各种各样的错误。编码教你如何保持冷静,回溯到出错的地方,诊断并记录问题(保持透明)并修复问题。

这里最后一点:在编写代码时,了解机器在数据集操作方面可以和不可以处理什么,将有助于您理解数据科学工具可以和不可以处理什么。例如,一些计算需要在整个数据矩阵上执行。在代码中尝试这样做将会抛出某种错误,也许您可以在将来避免这个陷阱。

原因 3:知道什么是可能的

如果你决定在成为数据科学家时完全避免代码,你可能会错过商业工具中还没有的技术。你曾经想要一个机器学习模型同时对两个目标进行预测吗?在你的其他特征旁边添加一系列特征怎么样?如果你知道要搜索什么,这些是可能的,但是在你的公司提供的工具中可能不明显。询问什么是可能的问题将不可避免地将你直接引向用编码语言编写的东西。

原因 4:对工具领域的了解和欣赏

无论是特别分析还是训练深度学习模型,即使你只有编写代码完成任务的一点经验,你也会理解为什么这些工具存在,并开始欣赏它们。随着时间的推移,您将学会使用工具和技术来履行您的职责,但是拥有一点编码背景有助于您确切地了解您从中受益的是什么。例如,现代工具允许您在过滤时指定应用于数据集中某些列的条件,并保持这是您的过程的一个保存和透明的部分。这是一项常见的数据预处理任务,但是将它隐藏在代码中可能会有问题。我见过这样的例子,在团队意识到他们忘记在上游应用一个条件之前,下游流程已经被执行了。有效使用数据科学工具可以防止这种情况。

另一方面,如果你有为机器学习问题编写代码的经验,你会对自己的能力充满信心,并理解完成任务所需的技术。这可以为贵公司对数据科学工具的评估注入一些急需的现实。例如,当你了解到这项任务可以使用开源语言用十几行代码完成时,你对购买一个企业级平台来训练人工智能模型以预测单一产品的客户流失的看法将发生巨大变化。以这种方式拥有一些 Python 经验有助于您成为一个有见识的消费者。

原因 5:知道自己并不孤单

有时,为了成为一名成功的数据科学家,您觉得需要了解的信息量可能会令人望而生畏。尽管如此,有时似乎有些人让它看起来很容易。从代码开始,我会鼓励你简单地在网上搜索代码相关问题的解决方案。你会很快发现有一个全球社区在那里帮助你的旅程,你会看到许多其他人也在问类似的问题。花一点时间通过搜索关于某个特定算法的指南或文章来深入研究它。您会发现这些指南或文章大多使用 Python 来解释这一主题,因此舒适地阅读代码对您最有利。

如果你正在开始你的数据科学之旅,那么我希望这些原因已经说服你考虑编码。我还希望,如果你已经进入了使用一个流行的数据科学工具来推动价值的 5 年计划,你可以花一些时间来看看 Python,并获得更多的“实践”最后,本文并不是要阻止那些没有 Python 背景的人成为数据科学家。虽然我认为学习一点代码会让你变得更好,但这并不是说没有它你就不能成为伟大的

使用散景的简单数据可视化技术

原文:https://towardsdatascience.com/top-5-simple-techniques-for-data-visualization-using-bokeh-a7fa4e05d6e6?source=collection_archive---------56-----------------------

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

DilUnsplash 上拍摄的照片

使用散景库快速总结 5 种最简单、最有效的交互式可视化技术

没有恰当的形象化,任何故事都是死的。只有少数已知的(但不总是来自可靠的来源)被称为“古鲁”、“圣人”、“老师”,有时是“主”,经常是“殉道者”的超人,因为能够在没有适当视觉支持的情况下讲述一个鼓舞人心的故事而获得了不朽的名声。其他人必须使用不同的支持技术来传达他们的故事。

有很多方法可以让你的故事变得有趣并吸引观众。你可以把语言和非语言的技巧结合起来使用,但是只有一样东西是真正重要的——一张好照片。一点不错,胜过千言万语!而数据科学绝对不是例外。这就是为什么我们大多数人从一开始就在学习基本的可视化库(Matplotlib、Plotly、Seaborn——这只是个开始)。

我最近偶然发现了一个叫做散景的图书馆,我非常喜欢它!它非常直观,非常简单,学习曲线非常平缓。但是从一开始,人们就开始创造很酷的交互式可视化。这篇文章是我的散景爱情故事的开始。完整的故事(包括 Jupyter 笔记本和所有文件)在我的 Github 上。

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

照片由 JJ 英Unsplash 上拍摄

我们大多数人都见过并喜欢这样的照片,照片前面的许多明亮的颜色与一些模糊的背景结合在一起。这被称为“bokeh”(有时拼写为“boke”)——一个日语单词,意思是“模糊”。在摄影中,这是一种很受欢迎的方法,可以让照片看起来更有吸引力。它也成为了一个 Python 交互式可视化库的好名字!

让我们来看看 5 个最简单的散景可视化技术,它们代表了一个温和渐进的散景学习曲线。我在联合国开放数据源找到了一个相对较小的世界社会经济发展数据集。在其他指标中,它代表了 2000-2015 年全球传染性疾病流行率的数据,这是前新冠肺炎时代的美好时光。

单线图

对于每个熟悉 Python 基础的人来说,代码看起来非常简单。为了简单起见,我只包含了有意义的块,省略了辅助和技术部分(导入库等)。).

*#Initializing our plot with the 400x400 dimensions and standard tools (zoom, save, etc.)*p = figure(plot_width=400, plot_height=400, tools=TOOLS)*#We need to set the axis and pass the values from the dataset.
#Our horizontal axis X will be years, and our vertical axis Y will be life expectancy*x = data[data['country']=='Afghanistan']['year']
y = data[data['country']=='Afghanistan']['life expectancy']*#Initializing our glyph. Only two parameters are necessary - x and y*p.line(x,                            #horizontal axis
       y,                            #vertical axis
      line_alpha = .7,               #line opacity                   
      line_color = 'red',            #line color
      line_width = 4,                #line width
      line_dash = 'dashdot',         #line type(dotted,dashed, etc)
       legend_label='Afghanistan'    #line legend
      )*#Additional visualization parameters*p.xaxis.axis_label = "Year"                #horizontal axis' label
p.yaxis.axis_label = "Life Expectancy"     #vertical axis' label
p.legend.location = "center"               #legend's location
p.xgrid.grid_line_color = 'green'          #horizontal axis' color
p.xgrid.grid_line_alpha = .3               #horizontal axis opacity
p.ygrid.grid_line_color = 'blue'           #vertical axis' color
p.ygrid.grid_line_alpha = .3               #vertical axis' opacity*#Finally, we want to see our visual and we need to ask Bokeh to show it to us.*show(p)

结果是:

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

就这么简单,而且代码注释比代码本身还要长!

同一地块上的多个依赖项

同样,编码部分非常简单直观。让我们看看 2000 年至 2015 年几个随机国家的预期寿命数据。

*#Initializing our plot*p = figure(plot_width=600, plot_height=600, tools=TOOLS)*#Horizontal axis - year*x = data[data['country']=='Afghanistan']['year']*#Vertical axis for several countries' life expectancies*y = data[data['country']=='Afghanistan']['life expectancy']
y1 = data[data['country']=='Romania']['life expectancy']
y2 = data[data['country']=='France']['life expectancy']
y3 = data[data['country']=='Japan']['life expectancy']
y4 = data[data['country']=='Chad']['life expectancy']*#Drawing our 5 curves. Each line has its own style and label*p.line(x , y, 
       line_alpha = .7, line_color = 'red', line_width = 4, line_dash = 'dashdot',
       legend_label="Afghanistan")p.line(x , y1, 
       line_alpha = .7, line_color = 'green', line_width = 4, line_dash = 'dotdash',
       legend_label="Romania")p.line(x , y2, 
       line_alpha = .7, line_color = 'blue', line_width = 4, line_dash = 'dashed', 
       legend_label='France')p.line(x , y3,
       line_alpha = .7, line_color = 'orange', line_width = 4, line_dash = 'dotted',
       legend_label='Japan')p.line(x , y4, 
       line_alpha = .7, line_color = 'magenta', line_width = 4, 
       legend_label='Chad')*#Additional visualization parameters*p.xaxis.axis_label = "Year"
p.yaxis.axis_label = "Life Expectancy"
p.legend.location = "center_right"       #Choosing legend's location*#Showing the visualization*show(p)

渲染的结果是:

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

同样,非常简单。我们也可以为我们的情节和不同的字形选择不同的风格。散景中的字形是表示数据的可用符号(象形文字)之一。请看下面的代码,并绘制同一时间段内不同随机国家的预期寿命数据。

*#Initializing the plot*p = figure(plot_width=800, plot_height=500,      #plot size
           background_fill_color='lightblue',    #background color
           background_fill_alpha=.2,             #background opacity
           title = 'Life expectancy 2000-2015',  #visual's title
           title_location='above',               #title's location
           tools=TOOLS                           #standard tools
           )*#Horizontal axis*x = data[data['country']=='Afghanistan']['year']*#Vertical axis for several countries' life expectancies*y = data[data['country']=='Brazil']['life expectancy']
y1 = data[data['country']=='India']['life expectancy']
y2 = data[data['country']=='Italy']['life expectancy']
y3 = data[data['country']=='Egypt']['life expectancy']
y4 = data[data['country']=='Cuba']['life expectancy']*#Drawing our 5 curves. Each line has its own style and label*p.diamond(x , y, size =15, fill_alpha = .5, fill_color = 'red',
          line_alpha = .5, line_color = 'green', line_width = 1.5, 
          legend_label="Brazil")p.circle(x , y1, size =15, fill_alpha = .5, fill_color = 'green',
         line_alpha = .5, line_color = 'red', line_width = 1.5, 
         legend_label="India")p.asterisk(x , y2, size =15,  line_color = 'blue', line_width = 1.5,
           legend_label="Italy")p.triangle(x , y3, size =15, fill_alpha = .5, fill_color = 'orange',
           line_alpha = .5, line_color = 'blue', line_width = 1.5, 
           legend_label="Egypt")p.cross(x , y4, size =15,  line_color = 'magenta', line_width = 2, 
        legend_label="Cuba")*#Additional visualization parameters*p.xaxis.axis_label = "Year"
p.yaxis.axis_label = "Life Expectancy"
p.legend.location = "top_left"*#Showing the visualization*show(p)

结果是:

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

简单、直观、直截了当。

聚合字段和组合绘图样式

散景功能的美妙之处在于,我们可以传递 Panda 的 groupby 结构(以及许多其他结构)作为绘图的参数。我们还可以直观地为相同的图形组合多种样式。让我们以发达国家和发展中国家的平均脊髓灰质炎发病率比较为例来说明这一点。

*#Plotting a line for developing countries by passing Pandas groupby aggregate structure
#directly to the plotting finction*p.line(
        data[data['status']=='Developing'].groupby(['year']).mean()[['polio']].index,
       data[data['status']=='Developing'].groupby(['year']).mean()['polio'],
        line_color='blue',
        line_width = 3
        )*#Plotting datapoint circles for developing countries* p.circle(
        data[data['status']=='Developing'].groupby(['year']).mean()[['polio']].index,
       data[data['status']=='Developing'].groupby(['year']).mean()['polio'],
        size = 15,
        fill_color='azure',
        legend_label = 'Developing countries'
        )
*#Plotting a line for developed countries* p.line(
        data[data['status']=='Developed'].groupby(['year']).mean()[['polio']].index,
       data[data['status']=='Developed'].groupby(['year']).mean()['polio'],
        line_color='red',
        line_width = 3
        )*#Plotting datapoint circles for developed countries
* 
p.circle(
        data[data['status']=='Developed'].groupby(['year']).mean()[['polio']].index,
       data[data['status']=='Developed'].groupby(['year']).mean()['polio'],
        size = 15,
        fill_color='salmon',
        legend_label = 'Developed countries'
        )*#Setting the legend's location*p.legend.location = 'bottom_right'*#Showing the visualization*show(p)

我们在这里:

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

轻松、简单、省事。通过使用可用的散景字形、颜色和样式以及这种“超集”技术的任何可能的组合,我们可以在同一个地块上绘制无限数量的图形。

多线绘图

Bokeh 还为我们提供了减少使用多行绘图功能在同一绘图上绘制多个依赖项所需的代码量的方法。让我们以发达国家和发展中国家的麻疹综合统计数据为例,看看这是如何工作的。

多行绘图功能根据以下方案工作:

 p.milti-line([x[0]:x[i]], #list of horizontal values for each curve
            [y[0]:y[i]],  #list of vertical values for each curve
            ...........,  #lists of properties for the lines) 

代码看起来像这样:

p.multi_line(
            [data[data['status']=='Developing'].groupby(['year']).mean()[['measles']].index,
            data[data['status']=='Developing'].groupby(['year']).mean()[['measles']].index],

            [data[data['status']=='Developing'].groupby(['year']).mean()['measles'],
            data[data['status']=='Developed'].groupby(['year']).mean()['measles']],

            color=['blue','red'],

            width=[3,3]

            )

结果如下:

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

同样,简单直观。有无数种方法可以增强视觉细节。

网格图

对于许多可视化库来说,同时创建大量的图并将它们排列在网格中是一项非常艰巨的任务。不适合散景。让我们来看看几个随机国家及其历年 0-5 岁婴儿死亡率。

*#Choosing the data*y1 = data[data['country']=='Turkey']['under-five deaths']
y2 = data[data['country']=='Brazil']['under-five deaths']
y3 = data[data['country']=='Thailand']['under-five deaths']*#Creating the first plot*p1 = figure(width=250, height=250)
p1.triangle(x, y1, size=10, color="firebrick", fill_alpha=0.25)
p1.line(x,y1, color='salmon', line_width=2, legend_label='Turkey')
p1.title.text='Mortality rates for infants 0-5 years 2000-2015'*#Creating the second one*p2 = figure(width=250, height=250)
p2.square(x, y2, size=10, color="orange", fill_alpha=0.25)
p2.line(x,y2, color='pink', line_width=2, legend_label='Brazil')*#Create another one*p3 = figure(width=250, height=250)
p3.circle(x, y3, size=10, color="olive", fill_alpha=0.25)
p3.line(x,y3, color='lightgreen', line_width=2, legend_label='Thailand')*#Arranging all the plots in a gridplot*p = gridplot([[p1, None], [ p2, p3]], toolbar_location=None)*#Showing the results*show(p)

结果就在这里:

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

我们可以永远用散景的简单技术做实验。该软件包提供了真正无限数量的方法来创建有吸引力的和互动的视觉效果。

这个故事的下一部分将是一些散景的中间技术。

五大雪花 BI 和报告工具:详细比较

原文:https://towardsdatascience.com/top-5-snowflake-bi-reporting-tools-detailed-comparison-110f7792ae42?source=collection_archive---------22-----------------------

数据爱好者/工具

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

作者图片

随着最近席卷整个华尔街的首次公开募股,数据市场领域的每个人都在谈论雪花——一种基于云的数据仓库即服务。

随着公司急切地从传统的基于服务器的数据仓库转向现代的无服务器数据仓库(正如 Lars Kamp 在写给投资者的信中详细描述的),很有可能你的公司正在考虑采用雪花并改造互补的数据堆栈。

作为一名数据分析师/工程师,为了应对这一趋势,您着手为该数据源寻找最兼容的 BI 和报告工具。

虽然雪花已经友好地列出了所有可以互操作的 BI 工具,但是我们仅仅决定哪一个适合我们公司的数据需求是不够的。

这篇博客将为您提供五大雪花 BI 和报告工具的详细比较,希望能为您选择最适合您当前数据堆栈的工具提供一些指导。

整体主义

Holistics 是一个自助式 BI 工具,让数据分析师在雪花和许多其他 SQL 数据仓库中建模和转换数据。然后,非技术用户可以自己对 insights 进行分析,而不必再依赖分析师。

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

作者图片

Holistics 最著名的是其数据建模功能,它可以帮助分析师创建一个单一的事实来源,您可以在其中将业务逻辑应用于您自己的数据,并确保它是准确的、可维护的和可重用的。

你可以在他们的详细指南中学习如何将 Holistics 连接到 Snowflake。

定价

Holistics 慷慨地在你的 14 天试用期到期后提供了一个免费计划,它不是根据用户数量向你收费,而是根据查询运行次数收费。这意味着,如果你是一家预算有限的自举式创业公司,那么 Holistics 就是你的合适工具。只有当您的公司及其分析需求扩大时,它才会开始收费。

与市场上几乎所有的竞争对手相比,Holistics 每月 200 美元的起价令人印象深刻,尤其是当它的功能同样强大和丰富时。即使您的公司随着更多分析师加入数据团队而扩大规模,您也无需担心每增加一个人的成本。

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

作者图片

优点

  • 允许您使用可定制的 SQL 查询来查询雪花数据库,并通过其缓存层快速获得结果
  • 查询结果的物化视图存储回您自己的 SQL 数据库,以便立即访问和快速可视化和报告。
  • 自动安排报告和仪表板,将最新数据以雪花形式直接发送到您的电子邮件收件箱。
  • 高级 SQL 编辑器:版本历史,自动完成,SQL 片段,突出显示,自动格式化,查询历史,自定义高级逻辑…
  • 供业务用户浏览数据并生成报告以回答特定问题的拖放式界面。
  • 具有竞争力的现收现付定价模式,只能随着您公司的发展而发展。

缺点

  • 虽然功能强大,但对市场而言, Holistics 是一个相当新的工具。许多高级功能仍在他们的路线图上。
  • Holistics 不支持 Git 集成和版本控制,这是许多高级分析师和数据工程师更喜欢的。
  • 仪表板不如其他竞争对手的交互式。目前,Holistics 仅支持按日期向下钻取和钻取到另一个仪表板。

PowerBI

PowerBI 在 BI 行业相当知名,尤其是对于采用微软生态系统的企业。它支持数量惊人的数据源,使公司能够将数据集中在一个地方。

PowerBI 有一个用户友好的界面,具有惊人的数据可视化功能,从分析电子商务指标的简单仪表板到高度复杂的仪表板,如下面的 NFL 足球分析。

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

图片来源:https://sqldusty . com/2017/07/28/power-bi-NFL-football-stats-comparisons-and-analysis-report-is-now-available/

将 PowerBI 连接到雪花相当简单。你可以按照这里的说明

定价

对于拥有小型数据团队的小规模公司来说,PowerBI 定价也很有吸引力。如果你是个人,只需要在本地计算机上安装 PowerBI 来进行分析,那么你可以免费下载桌面版。然而,如果你想使用更多的 Power BI 服务,并在云上发布你的报告,你可以选择 Power BI 云服务解决方案,每个用户每月 9.99 美元。

请注意,如果您的公司担心安全性和内部部署,价格会大幅上涨到每月4,995 美元,并按年订阅。

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

图片来源:【https://powerbi.microsoft.com/en-us/pricing/

优点

  • 支持数百个数据源,从雪花这样的云服务到 Excel 这样的离线文件
  • 强大的数据可视化功能。除了基本的可视化类型之外,PowerBI 还允许高级用户从定制可视化市场中进行选择,或者使用著名的 Javascript 库创建自己的可视化
  • 频繁的更新和创新。关注 PowerBI 的博客,你会看到这个团队在推动新功能和变化方面非常积极。
  • PowerBI 有一个活跃的超级用户和员工社区,他们愿意深入研究您的用例来帮助您。

缺点

  • PowerBI 有一个陡峭的学习曲线。数据分析师必须学习 DAX(数据分析表达式)语言,才能充分利用 PowerBI 的力量,这有时很复杂,也很死板。
  • 有限的数据传输能力。如果要查看 PowerBI 报表,必须安装 PowerBI desktop 或已经安装了 PowerBI 报表服务器。这对于 Mac 用户来说很困难,因为 PowerBI 只能安装在 Windows 设备上。

检查员

最近作为谷歌云平台的一部分, Looker 是一个强大的 BI 工具,为实时数据探索和分析提供了一种创新的方法。

Looker 拥有强大的仪表板功能,可以涵盖大多数数据发现用例。然而,与 Power BI 不同,它需要一个完整的语义模型来存储所有的业务逻辑和指标,而不必向数据库表添加一个略有不同的指标的多个版本。这意味着你不能只拿着 Looker,对着数据库,然后在几分钟内得到你的可视化。它需要使用他们自己的语言 LookML 进行预先定义,这将需要相当长的时间来掌握。

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

图片来源:https://docs . looker . com/dashboards/creating-lookml-dashboards

要将 Looker 连接到雪花,请遵循此处的说明。

定价

Looker 不会公开发布其定价信息,因为他们会为每家公司定制。根据我与一些 Looker 用户的交谈,价格可能在每月 3000 美元到 5000 美元之间(T4),10 个用户每年订阅一次。正如我上面提到的,Looker 是为拥有成熟和专门的数据团队的公司设计的,这些公司愿意采用一种全新的建模语言,并花时间设置 Looker 以适应他们的整个数据堆栈。

优点

  • Looker 完全在浏览器中运行,因此不需要桌面安装,更适合内部和外部用户之间的协作和数据传输
  • Looker 完全对数据库中的数据进行操作。这意味着你直接在你的完整数据集上操作,并得到你的数据库的所有马力,无论是像 Vertica,Redshift,Bigquery 这样的 MPP 像 Impala 或 Spark 这样的基于 Hadoop 的 SQL 设置;或者像 MySQL 或 Postgres 这样的标准 RDBMS
  • 自动报告— Looker 允许您为每日/每周/每月报告安排电子邮件,或者在数据出现异常时发送警报。
  • Looker 集成了 GitHub,因此您可以看到对建模层所做的每个更改,并无缝地结合多个开发人员的工作

缺点

  • 当采用一种新语言(LookML)时,Looker 有一个陡峭的学习曲线&面向最终用户的模型-视图方法。你肯定需要有一个内部团队,专门负责设置它,并让其余的人参与进来。
  • 被锁在站台里。LookML 接管了准备可视化表格的大部分工作。从 Looker 迁移到另一个可视化工具将需要额外的工作来迁移由 LookML 定义的所有内容。
  • 虽然 Looker 提供了一个很大的自定义图表库,但是很难根据您的具体需求定制可视化效果。

(舞台上由人扮的)静态画面

Tableau 以其无与伦比的可视化信息能力而闻名。该应用程序的数据可视化质量优于 Tableau 软件竞争对手提供的产品。如果你想创建具有无缝交互性的复杂仪表盘,Tableau 绝对是必备工具。

要将 Tableau 与雪花联系起来,点击此处阅读更多内容

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

图片来源:https://www . ryansleaper . com/practical-tableau-3-creative-ways-use-dashboard-actions/practical-tableau-sample-dashboard/

定价

Tableau 定价相当复杂,根据您的使用案例和团队成员数量收费。此外,Tableau 还根据用户的角色收费,创建者每月 70 美元,探索者 35 美元,查看者 12 美元。由于这个数字取决于你的业务,如果你决定购买 Tableau,你真的应该提前计划,并为额外费用的激增做好准备。

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

图片来源:【https://www.tableau.com/pricing/individual

优点

  • 强大的可视化功能:庞大的图表库和高度交互的仪表盘
  • Tableau 的友好界面允许所有经验水平的数据分析师快速开始产生引人注目的和有用的分析和可视化。
  • Tableau 可以轻松处理来自各种数据源的数百万行数据,包括电子表格和 SQL 数据库。这允许用户集成不同的数据源,否则这些数据源可能很难连接。

缺点

  • 像 PowerBI 一样,Tableau 不能处理太大的数据集。它会变得非常慢。如果您从多个来源导入数据,并且数据非常庞大,有时会出现延迟崩溃。
  • 缺乏商业智能能力。Tableau 缺乏成熟的商业智能工具所需的功能,例如大规模报告、构建数据表和静态布局。
  • Tableau Desktop 缺少清理和准备要导入 Tableau Desktop 的数据的基本功能。这是它缺少的主要特性之一,你需要 Tableau 的额外支持来添加这些东西。

元数据库

Metabase 不像 Holistics、PowerBI 或 Tableau 那样受欢迎,它是一个开源工具,旨在为非技术用户提供大数据洞察和可视化。

Metabase 最适合希望部署基于云或内部版本的各种规模的企业。您可以将元数据库用于 KPI 监控、数据库管理、错误跟踪、记录过滤、调试和查询生成器。

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

图片来源:https://AWS . Amazon . com/blogs/startups/analytics-is-simple-than-you-think-with-metabase/

Metabase 确实支持连接到 Snowflake,但是您可能需要考虑一些事情。

定价

自由的

优点

  • Metabase 是免费和开源的。Metabase 在 GPLv3 下获得许可,其源代码可以在 GitHub 上获得,您可以使用它在您自己的服务器上进行部署和维护。
  • 元数据库易于安装。
  • UI 简单友好,因此只需很少的培训就能有效地使用该工具。

缺点

  • 元数据库仅适用于单个 SQL 数据源。如果您有来自多个来源的数据,那么您可能想要找到另一个工具,因为它不允许您连接表数据。
  • 尽管有桌面版本,Metabase 有时会出现很多错误,并且渲染结果很慢。
  • 与 Tableau 相反,Metabase 在定制图表外观方面有一些限制。
  • 因为它是自托管的,公司必须自己处理管理问题和应用程序更新,这可能需要大量的时间和精力。

结论

上面提到的五个工具中的任何一个都可以很好地与雪花一起工作,但并不是所有的工具都适合你的公司。

有时候,最强大、功能最丰富的工具可能不是最佳选择,因为它的价格太高,或者学习曲线太陡。

因此,如果你是一个负责寻找这种工具的分析师,一个好的建议是让你的许多同事和最终用户在免费试用期间集中使用该产品。然后,您将了解每个工具的真正瓶颈,并做出最明智的选择。

如果您需要更多的指导来选择合适的工具,您可能想要查看分析设置指南的第 4 章,该章将详细讨论如何导航商业智能工具空间

原载于 2020 年 9 月 23 日https://www . holistics . io

数据科学家需要掌握的五大软件工程技能

原文:https://towardsdatascience.com/top-5-software-engineering-skills-that-data-scientists-need-to-master-cb85d7e83833?source=collection_archive---------7-----------------------

成长为数据科学家所必需的技能

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

图片来源:pix abay @ Pexels.com

在过去几年中,数据科学在许多行业的出现吸引了数百万新人才来发展他们的计算机编程和机器学习技能,并获得了一份数据科学工作。由于数据科学项目大多是在企业软件项目的框架内完成的,软件工程技能对于数据科学家来说是强制性的。在本文中,我们将讨论有抱负的数据科学家所需的核心软件工程技能:

面向对象编程

计算机编程可能是数据科学工作中最关键的部分。编程技能是数据科学家将原始数据转化为有效的分析软件用户体验所需的关键能力之一。这就是为什么数据科学家需要精通不止一种编程语言。

在数据科学家所需的计算机编程技能中,面向对象编程(OOP)占有重要地位。虽然像 Python 和 Java 这样的编程语言使得遵守主要的 OOP 原则变得如此容易,但是数据科学家需要理解与 OOP 相关的概念(比如对象、属性、方法和继承)才能在现实世界的软件项目中工作。

全栈开发

在软件项目中,数据科学家通常需要在后端交付更多的机器学习模块。雇主越来越需要数据科学家将机器学习和分析代码投入生产。数据科学家通常需要使用 Python、R、Java 和 Scala 等编程语言。他们还需要将代码与前端集成,并在大数据生产环境中部署软件模块。因此,全栈开发是数据科学家需要的最关键的软件技能之一。

数据库&大数据

对于软件项目中的数据科学家来说,使用结构化和非结构化数据库技术的能力也是必要的。这些数据库技术可以包括像 PostgreSQL 这样的 SQL 数据库或者像 MongoDB 这样的 NoSQL 数据库。数据库在任何软件系统中的应用都是如此广泛,以至于数据科学项目几乎无处可逃。还有先进的大数据技术,如 Spark 和 Hive,支持与 Hadoop 集群配合工作。

云计算是 2020 年大数据和人工智能行业的一个重要趋势。使用像 AWS、微软 Azure 或谷歌云这样的云环境,可以快速而直接地部署人工智能驱动的软件模块,并将它们与运营软件集成。因此,数据科学家需要收购,以在云基础设施之上开发 AI 和大数据解决方案。

DevOps

对于数据科学家来说,学习 DevOps 是必不可少的。DevOps 可用于优化与数据管道、模型训练、模型测试、模型预测和模型部署相关的软件组件的部署。确保开发运维最佳实践是生产环境中功能性大数据管道的核心,无论是内部部署还是云环境。

DevOps 广泛使用的软件项目领域之一是持续集成/持续交付(CI/CD)。如果没有使用 CI/CD 管道所需的基本知识水平,数据科学家就无法有效地与软件团队协作。与此同时,精通云计算使数据科学家更容易学习和利用云基础架构中现有的 DevOps 功能,这有助于数据科学家更快地调整他们的技能,以适应在生产环境中工作的要求。

结论

时代在变,新技术每天都在涌现。软件项目中的工作过程是不断发展的。因此,数据科学家必须适应这些新技术,以便在企业软件项目中获得更好的性能。

来自本作者的相关故事:

[## 担任数据科学顾问

具有企业意识的数据科学家的职业战略

towardsdatascience.com](/working-as-a-data-science-consultant-e626669ab72b) [## 全栈数据科学家还是大数据项目的超级英雄?

数据科学就业市场的新兴需求趋势

towardsdatascience.com](/full-stack-data-scientists-or-superheroes-of-the-big-data-projects-f245ec66bb6a) [## 初级数据科学家追求的 8 条职业道路

如果你最终实现了自己的目标,成为了一家你喜欢的公司的数据科学家。您已成功登机…

towardsdatascience.com](/8-career-paths-for-junior-data-scientists-to-pursue-3e6041950e4e)

关于作者:

Pouyan R. Fard 是 Fard Consulting 的首席执行官兼首席数据科学家。Pouyan 在数据科学、人工智能和营销分析方面拥有多年的公司咨询经验,从初创公司到全球公司。他曾与制药、汽车、航空、运输、金融、保险、人力资源和销售等行业的财富 500 强公司合作。

Pouyan 也在指导活跃在大数据行业的初创公司和人才。他的热情是通过职业培训培养下一代数据科学家,并帮助他们找到数据科学领域的顶级工作机会。

Pouyan 已经完成了关于消费者决策预测建模的博士研究工作,并对开发机器学习和人工智能领域的最先进解决方案保持兴趣。

每个数据分析师都需要知道的五大 SQL 分析函数

原文:https://towardsdatascience.com/top-5-sql-analytic-functions-every-data-analyst-needs-to-know-3f32788e4ebb?source=collection_archive---------1-----------------------

SQL 分析函数,让您的分析技能更上一层楼

分析功能是 BI/数据分析师中用于执行复杂数据分析的最受欢迎的工具之一。这些函数对多行执行计算,并返回多行。今天,我们将讨论我认为最有用的 5 个函数,以及大量的实际例子。

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

帕特里克·卡尔在 Unsplash 上拍摄的照片

对于外行来说,带有分析功能的查询的相对大小可能有点吓人。别担心,我们会保护你的。这些函数大多遵循一个基本语法:

analytic_function_name([argument_list])
OVER (
[PARTITION BY partition_expression,…]
[ORDER BY sort_expression, … [ASC|DESC]])

这个语法有三个部分,即函数、划分的排序的*。让我们简要介绍一下每种方法的作用:*

  • analytic_function_name:功能名称——如RANK()SUM()FIRST()
  • partition_expression:创建分区或窗框所依据的列/表达式
  • sort_expression:对分区中的行进行排序所依据的列/表达式

好了,到目前为止,我们已经介绍了基础知识。对于实际部分,我们将使用存储在 PostgreSQL 数据库中的订单表:

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

现在让我们从实际部分开始,好吗?

AVG()和求和()

我们都在我们的GROUP BY子句中使用了聚合函数,比如SUMAVGMINMAXCOUNT。但是当这些函数用于一个ORDER BY子句时,它们可以给出运行总和、平均值、总数等。

下面的例子将使它变得更加清晰— 我们要计算每个代理在第三季度的运行平均收入和总收入:

SELECT ord_date, agent_code, AVG(ord_amount) OVER (
    PARTITION BY agent_code
    ORDER BY ord_date
) running_agent_avg_revenue, 
    SUM (ord_amount) OVER (
        PARTITION BY agent_code
        ORDER BY ord_date
    ) running_agent_total_revenue
FROM orders
WHERE ord_date BETWEEN ‘2008–07–01’ AND ‘2008–09–30’;

结果如下:

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

厉害!这些功能很简单,不需要额外的解释。我们继续吧。

第一个值(),最后一个值(),第 n 个值()

FIRST_VALUE()是一个分析函数,从窗口框架的第一行返回指定列的值。如果你已经理解了上一句话,LAST_VALUE()不言自明。它从最后一行获取值。

PostgreSQL 为我们提供了另一个名为NTH_VALUE(column_name, n)的函数,它从第 n 行获取值。是不是很棒?不再有复杂的自连接。

让我们来回答以下问题— 客户第一次购买后多少天进行下一次购买?

SELECT cust_code, ord_date, ord_date — FIRST_VALUE(ord_date) OVER (
    PARTITION BY cust_code 
    ORDER BY ord_date) next_order_gap
FROM orders
ORDER BY cust_code, next_order_gap;

结果如下:

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

这个函数在很多情况下都是有用的。此外,很高兴知道结果可以直接从数据库中获得,所以我们不必用 Python/R 手动进行这种计算。

让我们进行下一个。

超前()和滞后()

LEAD()函数,顾名思义,从下一行取出特定列的值,并将取出的值返回当前行。在 PostgreSQL 中,LEAD()采用两个参数:

  • column_name必须从中提取下一个值
  • index相对于当前行的下一行。

LAG()正好相反。它从前面的行中获取值。

让我们来回答以下问题,让这个概念更清楚一点— 代理销售订单的最后最高金额是多少?

SELECT agent_code, ord_amount, LAG(ord_amount, 1) OVER (
    PARTITION BY agent_code
    ORDER BY ord_amount DESC
) last_highest_amount
FROM orders
ORDER BY agent_code, ord_amount DESC;

结果如下:

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

上面您可以看到last_highest_amount如何清楚地显示每个代理的数据——这就是为什么代理 A001 没有结果,而其他代理的第一个值为空。

秩()和密集秩()

RANK()DENSE_RANK()是编号功能。它们根据分区和排序将整数值赋给一行。在查找表中的第 n 个最高/最低记录时,我不能过分强调这些函数的重要性。

DENSE_RANK()RANK()的区别在于,前者得到连续的等级,而后者是跳过一个平局后的等级。例如,使用DENSE_RANK()的排名将类似于(1,2,2,3),而使用RANK()的排名将是(1,2,2,4)。希望你明白其中的区别。

无论如何,让我们在这些函数的帮助下回答以下问题— 每个月的第二高阶值是多少?

SELECT * FROM (
    SELECT ord_num, ord_date, ord_amount, DENSE_RANK() OVER(
        PARTITION BY DATE_PART(‘month’, ord_date) 
        ORDER BY ord_amount DESC) order_rank 
    FROM orders
) t
WHERE order_rank = 2
ORDER BY ord_date;

结果如下:

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

酷!让我们进行下一个。

DIST CUME()

CUME_DIST()函数用于计算给定分区内值的累积分布。它计算分区中小于或等于当前行的行的比例。当我们必须只获取结果的前 n%时,这非常有用。

让我们用它来计算八月和九月每个订单的收入百分比:

SELECT DATE_PART(‘Month’,ord_date), agent_code, ord_amount, CUME_DIST() OVER(
   PARTITION BY DATE_PART(‘Month’,ord_date)
    ORDER BY ord_amount
)
FROM orders
WHERE ord_date BETWEEN ‘2008–08–01’ AND ‘2008–09–30’;

结果如下:

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

这不是我日常使用的功能,但很高兴知道它的存在。

在你走之前

这就是我在数据库中执行分析时使用的 5 个最常见的分析函数。对我来说,这不像用 Python 和 Pandas 做分析那么常见,但我仍然发现这有时很有用——尤其是对于仅限于 SQL 的分析师。

希望这 5 款能很好的适合你,可以随意自己多研究研究。感谢阅读。

喜欢这篇文章吗?成为 中等会员 继续无限制学习。如果你使用下面的链接,我会收到你的一部分会员费,不需要你额外付费。

[## 通过我的推荐链接加入 Medium-Dario rade ci

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

medium.com](https://medium.com/@radecicdario/membership)

加入我的私人邮件列表,获取更多有用的见解。

每个数据科学家都必须知道的 5 大统计概念

原文:https://towardsdatascience.com/top-5-statistical-concepts-every-data-scientist-must-know-d4bc8740a55d?source=collection_archive---------1-----------------------

统计和数据科学的基本支柱

任何数据科学家都可以从数据集收集信息,任何优秀的数据科学家都知道,收集有用和可靠的信息需要坚实的统计基础。没有它,就不可能进行高质量的数据科学。

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

Unsplash 上由 Tachina Lee 拍摄的照片

但是统计学是一个巨大的领域!我从哪里开始?

以下是每个数据科学家都应该知道的五大统计概念:描述统计、概率分布、降维、过采样和欠采样以及贝叶斯统计。

先说最简单的。

描述统计学

你正坐在一个数据集前。你如何从高层次上描述你所拥有的东西?描述性统计是答案。你可能听说过其中的一些:表示中位数众数方差标准差

这些将快速识别数据集的关键要素,并为您的方法提供信息,无论任务是什么。让我们来看看一些最常见的描述性统计数据。

平均

平均值(也称为“期望值”或“平均值”)是值的总和除以值的个数。以这个例子为例:

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

平均值计算如下:

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

中位数

按升序(或降序)列出您的值。中位数是将数据分成两半的点。如果有两个中间数,则中间数是这两个数的平均值。在我们的例子中:

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

中位数是 4.5。

方式

众数是数据集中出现频率最高的值。在我们的例子中,模式是 3。

差异

方差衡量数据集相对于平均值的分布。要计算方差,从每个值中减去平均值。平方每个差异。最后,计算这些结果的平均值。在我们的例子中:

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

标准偏差

标准差衡量总体分布,通过计算方差的平方根来计算。在我们的例子中:

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

其他描述性统计包括偏度峰度四分位数

概率分布

概率分布是一个函数,它给出了一个实验的每一个可能的结果发生的概率。如果你在描绘一个钟形曲线,你就在正确的轨道上。它一目了然地显示了随机变量的值是如何分散的。随机变量及其分布可以是离散的,也可以是连续的。

分离的

约翰是一名棒球运动员,每次球投给他时,他都有 50%的概率击中球。让我们给约翰投三次球,看看他击球多少次。以下是所有可能结果的列表:

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

设 X 是我们的随机变量,约翰在三次投球实验中击中的次数。约翰得到 n 个命中的概率用 P(X= *n)来表示。*所以,X 可以是 0,1,2,或者 3。如果上述所有八种结果的可能性相等,则我们有:

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

f 代替 P,我们就得到概率函数了!让我们用图表表示它。

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

从图中,我们看到约翰更有可能获得 1 或 2 次点击,而不是 0 或 3 次,因为对于那些值 X ,图更高。常见的离散分布有伯努利二项式泊松

连续的

连续的情况自然地从离散的情况中产生。我们的随机变量可以是棒球在空中的时间,而不是计算击中次数。我们可以使用像 3.45 秒或 6.98457 秒这样的值,而不仅仅是一秒、两秒或三秒。

我们在谈论一组无限多的可能性。连续变量的其他例子有高度、时间和温度。常见的连续分布有正态指数卡方

降维

如果你有太多的输入变量或者你的数据在计算上很难处理,你可能会转向降维。这是将高维数据投影到低维空间中的过程,但是一定要注意不要丢失原始数据集的重要特征。

例如,假设您正试图确定哪些因素最能预测您最喜爱的篮球队今晚是否会赢得比赛。你可以收集数据,如他们的胜率,他们在打谁,他们在哪里打,他们的首发前锋是谁,他晚饭吃了什么,教练穿什么颜色的鞋。

你可能会怀疑这些特征中的某些与获胜的关联比其他的更大。降维可以让我们自信地丢弃对预测没有意义的信息,同时保留最有预测价值的特征。

主成分分析(PCA) 是一种流行的方法,它通过夸大称为主成分的新特征组合的方差来工作。这些新的组合是原始数据点在一个新空间中的投影——仍然是相同的维度——其中的变化被放大了。

总的想法是,在这些新组件中,变化最小的组件可以最安全地丢弃。删除单个组件会将原始维度减少一个,删除两个组件会将原始维度减少两个,依此类推。

如果你想了解更多,这里有一整篇文章专门介绍 PCA :

[## Python 中从头开始的主成分分析(PCA)

以及一些低维空间的可视化。

towardsdatascience.com](/principal-component-analysis-pca-from-scratch-in-python-7f3e2a540c51)

欠采样和过采样

观察值的集合称为“样本”,集合的收集方式称为“抽样”。在需要平等表示少数类和多数类的分类情况下,欠采样或过采样可能会有用。对多数类进行欠采样或对少数类进行过采样有助于平衡不平衡的数据集。

随机过采样(或者,随机欠采样)涉及随机选择和复制少数类中的观察值(或者随机选择和删除多数类中的观察值)。

这很容易实现,但您应该小心行事:过采样会对重复的观察值进行加权,如果它们不是无偏的,这可能会严重影响结果。类似地,欠采样有删除关键观察值的风险。

对少数类进行过采样的一种方法是合成少数过采样技术(SMOTE) 。这通过创建现有观测值的新组合来创建(合成的)少数类观测值。对于少数类中的每个观察值, SMOTE 计算其 k 最近邻;也就是说,它会找到与观察值最相似的 k 个少数类观察值。

将观察结果视为向量,它通过用 0 到 1 之间的随机数对任何一个 k 最近邻进行加权,并将其添加到原始向量中,从而创建随机线性组合。

对多数类进行欠采样的一种方法是使用聚类质心。理论上类似于 SMOTE ,它用矢量组的 k 最近邻簇的质心来代替矢量组。

贝叶斯统计

谈到统计推断,有两个主要的思想流派:频率主义统计和贝叶斯统计。频繁统计让我们做有意义的工作,但也有不足之处。当你有理由相信你的数据可能不能很好地代表你期望在未来观察到的情况时,贝叶斯统计做得很好。

这允许你将你自己的知识结合到你的计算中,而不是仅仅依赖于你的样本。它还允许你在新数据进来后更新你对未来的想法。

**考虑一个例子:**A 队和 B 队交手 10 次,A 队赢了其中的 9 次。如果这两个队今晚比赛,我问你你认为谁会赢,你可能会说 A 队!如果我也告诉你 B 队贿赂了今晚的裁判呢?嗯,那你可能会猜 B 队会赢。

贝叶斯统计允许你将这些额外的信息整合到你的计算中,而 frequentist 统计只关注 9/10 的胜率。

贝叶斯定理是关键:

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

给定 EH 的条件概率,写成 P( H | E ),表示给定 E 也发生(或已经发生)的情况下 H 发生的概率。在我们的例子中, H 是 B 队会赢的假设, E 是我给你的关于 B 队贿赂裁判的证据。

P( H )是常客概率,10%。P( E | H )是我告诉你的贿赂是真的概率,假设 B 队赢了。(如果今晚 B 队赢了,你会相信我跟你说的话吗?)

最后,P( E )是 B 队事实上贿赂裁判的概率。我是一个值得信赖的信息来源吗?你可以看到这种方法包含了更多的信息,而不仅仅是两队之前 10 场比赛的结果。

今天就到这里。让我们在下一部分总结一下。

在你走之前

学习这 5 个概念不会让你成为统计学或数据科学的大师,但如果你不能理解数据科学项目的基本流程,这是一个很好的起点。

如果这听起来仍然像是高级的东西,我的建议是从小处着手。以下是我和许多人投票选出的最佳统计学入门书籍:

[## 数据科学的最佳入门统计学书籍

了解数据科学最重要的支柱

towardsdatascience.com](/the-single-best-introductory-statistics-book-for-data-science-a2601ea7c0be)

我们结束了——感谢阅读。

加入我的私人邮件列表,获得更多有用的见解。

喜欢这篇文章吗?成为 中等会员 继续无限制学习。如果你使用下面的链接,我会收到你的一部分会员费,不需要你额外付费。

[## 通过我的推荐链接加入 Medium-Dario rade ci

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

medium.com](https://medium.com/@radecicdario/membership)

原载于 2020 年 8 月 29 日 https://betterdatascience.com**

在数据科学项目中取得成功必须知道的 5 件事

原文:https://towardsdatascience.com/top-5-things-you-must-know-to-succeed-in-your-data-science-program-8fdc831c2ef0?source=collection_archive---------40-----------------------

办公时间

有抱负的数据科学家的简单指南

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

马文·迈耶Unsplash 上拍摄的照片

2019 年 3 月,我被 NYU 大学数据科学硕士项目录取。我非常兴奋,但不确定我需要知道什么,以及将会发生什么,因为我之前没有数据科学方面的经验。我在第一年之前花了一个夏天做准备,现在我已经是最后一年了,我有一些建议给其他参加类似项目的人。即使考虑到 2020 年前所未有的情况,像这样的一篇文章也可以更好地为我的第一年做准备。

如果你觉得你在同一个地方,按照以下 5 个步骤准备你的数据科学课程。这些建议中的一些对每个人来说可能不是新闻,但对缺乏经验的人来说可能是全新的。如果你被录取了,那意味着你具备成功的条件;你现在必须投入工作!

1.复习微积分、线性代数、概率和统计。

如果你想从这篇文章中学到什么,那就是这篇。如果你像我一样,你可能在所有这些科目上都得了高分,但是你已经很多年没有碰它们了,所以你需要温习一下。概率和统计是数据科学的核心驱动力,所以要非常熟悉贝叶斯和频率统计。对于线性代数,刷新矩阵变换、乘法和特征向量/值。复习微积分,复习导数,积分,对数规则,以及这些在多元空间中的应用。所有这三个主题都出现在你的基本机器学习课上。以下是一些有助于您复习的资源:

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

照片由史蒂文·格林格拍摄

2.练习你的编码技能

Python 是数据科学中最受欢迎的语言之一,因为它的内置包可以让您轻松建模。不仅用 Python 编程是必不可少的,而且能够快速解决基本的编程问题将是非常有益的,尤其是在完成实习的技术面试时。练习这类问题的最好方法是在像**和 LeetCode **这样的网站上。**你可能想关注的一些常见问题包括:**矩阵、数组和字典。解决这些问题的一种常见方法是先过滤出容易的问题,然后再过滤出中等难度的问题。我整个夏天都在这些网站上练习,直到上课,这让我在 NYU 大学的数据科学课程中获得了优势。

另一个有用的资源是 Eric Matthes 的 Python 速成班这是一本信息丰富的 Python 编程入门指南!

3.完成数据科学项目

实习面试的一个巨大优势是之前的数据科学经验。如果你的简历上没有任何数据科学项目,你可以花时间在数据科学竞赛网站上做一个项目,或者自己想一个项目。有些项目网站是 KaggleCodaLab 。避免常见的项目,如泰坦尼克问题;雇主见过太多次了。如果你担心你的专业水平影响你完成项目的能力,从一个你能找到指导的简单项目开始(Github,Medium 等。).然后,把你学到的东西应用到新的领域。所有的资源都可以提供帮助;你需要利用它们。

你自己想出的项目应该是你充满热情的事情;想想你的兴趣(运动、健康、新闻等)。),并创建一个解决题目内某个问题的项目。你可能需要从现有的项目中寻找灵感,但这是值得的,因为大多数雇主更喜欢自己动手的项目。这个自制的项目将展示你的激情,你可以轻松地谈论它。一旦你的简历上有了一个项目,你在课堂上和面试中都有优势。第一学期结束后,你很可能会有小组项目,并将它们添加到你的简历中,但有了这个初始项目,你将有一个良好的开端。

4.仔细阅读最佳实践

NYU 政府推荐了乔尔·格鲁的《从零开始的 T2 数据科学》,这是我第一年最有用的资源。我不知道没有它我会做什么!第一次看的时候,你可能不太懂,但是你可以参考这本书,在课堂上获得对难懂的数据科学概念的简单解释。这本书还提供了对 Github 上代码的访问,这些代码展示了数据科学概念的基本实现。我推荐阅读这本书,并在互联网上寻找其他一些简单的数据科学介绍;让你的好奇心带着你。下面是 Grus 的书的链接和其他一些帮助你开始的链接。

5.建立你的关系网

我从本科商学院获得的最大收获是,你和你的人脉一样好。每天花一点时间建立你的人际网络。与你期望的职业道路或公司的专业人士联系;LinkedIn 让这变得非常容易。联系这些专业人士,请求一个联系的机会,甚至是一个简短的电话。询问他们是如何走到今天这一步的,让他们谈谈自己。然后求推荐;也许你需要一个课程的建议或者一个关注的特定主题(自然语言处理,大数据等)。)成为那家公司的数据科学家。每个数据科学部门都不一样,对数据科学家有不同的定义。如果你想在他们特定的公司工作,了解他们的工作需要什么是很好的。

与专业人士联系没有坏处,在一天结束时,你已经留下了一个好印象,并有了一个新的联系。在第一学期开始前建立你的职业关系网会让你在寻找实习机会的过程中领先一步,并帮助你决定选什么课。

除了与行业专业人士建立关系网,与你的同学建立关系网也很重要。请花些时间在 LinkedIn 上找到那些简历中有你的项目的人。这些学生将很快成为你的队友、学习伙伴和支持者;和他们联系很好,因为我相信他们会很开心。

重要的是要明白,你的同龄人是你的同学,会成为你的职业人脉。这些学生毕业后会找到工作,谁知道呢,也许这将是你梦想工作的一扇门!工作前景不应该是和你的同学联系的主要原因,但这是需要记住的。

现在,您已经为您的数据科学计划做好了准备!通过将你的时间分配给上面的提示,你将为你的数据科学专业做更好的准备,并且已经是比以前更好的数据科学家。请随意评论我错过的任何其他有用的资源或主题。祝你好运!

6 大查询可视化工具

原文:https://towardsdatascience.com/top-6-bigquery-visualization-tools-aa0e520a4549?source=collection_archive---------39-----------------------

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

来源:沉积照片

在本文中,我们考虑六种最流行的 BigQuery 可视化工具。​

让我们从好消息开始——市场上有很多数据可视化服务。有免费的在线服务、付费的离线服务、移动设备服务、桌面服务、允许协作编辑报告的服务、支持不同数据源组合的服务——营销专家(和预算)想要的一切。但是哪种服务最适合您的任务呢?​

如何借助 Data Studio 可视化数据

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

图片由作者提供

要开始在谷歌数据工作室工作,登录你的谷歌账户,去 https://datastudio.google.com。

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

图片由作者提供

  1. 在首页左上角或右下角选择开始一个新的报告(如上图所示)。
  2. 要将数据从 GBQ 加载到 Data Studio,单击创建数据源按钮,并从连接器列表中选择 Google–>big query。

注意:使用 GBQ 中的数据需要一个 Google 云平台帐户。

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

图片由作者提供

在选择数据源时,决定应该与报表连接的项目、数据集和表。然后编辑器窗口将打开,您可以:

  • 更改数据存储的周期
  • 允许访问第三方可视化工具
  • 编辑报告中的字段

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

图片由作者提供

您可以在 Data Studio 帮助中心阅读更多关于在 Data Studio 中处理数据的可能性。

现在您可以可视化您的数据。一旦您为报告选择了一个表,报告编辑器的窗口就会打开。Data Studio 编辑器的界面非常易于理解和使用。

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

图片由作者提供

该编辑器支持 11 种类型的可视化,包括表格和报告、图表和图形、动态排名和地图。报告可视化还有单独的元素:

  • 日期范围
  • 过滤
  • 数据管理
  • 内置元素的 URL

要向报表添加一个可视化元素,只需从下拉菜单中选择它并将其拖到工作区即可。任何元素都可以使用右侧的设置菜单进行编辑。在此菜单中,有两个选项卡,可以在其中更改显示的数据及其显示样式。

在编辑器的最新更新中,有一个深刻的图表规范。例如,现在您可以从显示的国家转到城市。但最重要的是,最新的更新带来了在一个图表中组合不同数据源的机会。

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

图片由作者提供

谷歌不仅准备了简单解释其工作原理的信息图表,还准备了 T2 的 YouTube 视频。

Data Studio 的一个与众不同的特性是可以在报告上进行协作。您可以使用在 Google Drive 中看到的标准共享对话框来访问报告。简单易行!

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

图片由作者提供

如果需要,您可以从任何报告创建模板。为此,菜单中有一个复制报告的选项。若要基于此模板创建新报表,请选择新的数据源。

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

图片由作者提供

Google Data Studio 的优势:

  • 自由的
  • 直观的界面
  • 报告的协作编辑
  • 逐页格式化
  • 在一个报告中使用多个数据源的机会
  • 如果出现错误,可以使用版本历史回滚到报告的前一个版本

Google Data Studio 的缺点:

  • 缺乏广泛的数据准备工具
  • 移动设备没有报告预览

Google Data Studio 使用起来极其简单。它的免费功能、与 Google 产品的集成以及 150 多个连接器足以满足中小型企业的需求。

在 OWOX BI 插件的帮助下导入数据后,在 Google Sheets 中可视化数据

您是否希望在 Google Sheets 中以表格、图表和图形的形式可视化报告,并基于 Google BigQuery 中存储的数据这样做?

如果是这样,OWOX BI BigQuery Reports 插件就是您所需要的。它允许您快速加载数据,安排报告,并将结果发送到 GBQ 中的新表。

您可以从 Chrome 网上商店获取附加组件,或者直接在 Google Sheets 中选择附加组件→获取附加组件 …:

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

图片由作者提供

OWOX BI BigQuery Reports 插件的优势:

  • 不需要登录 Google BigQuery。
  • 您的表不会变慢,所有计算都将在 GBQ 存储中进行。
  • 您只需打开附加组件并创建一个新报告。就这么简单:)

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

图片由作者提供

在 Google Sheets 加载了选择的表之后,您就可以开始可视化数据了。例如,您可以添加一个图表:

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

图片由作者提供

要选择图形和图表,请打开右上角的菜单并选择第一项。在右边,将会有一个带有元素设置的菜单。可以改变图表的类型或选择数据的范围。

注意:Sheets 显示了对于特定数据集应该使用什么类型的图表的建议。

借助标准的 Google access 设置,您可以轻松共享报告。

  • Google Sheets 的优势:
  • 对报告访问的简单控制
  • 报告的协作编辑
  • 与 Excel 兼容

Google Sheets 的缺点:

  • 可视化的最小集合
  • 不可能统一数据源

毫无疑问,Google Sheets 已经成为 Excel 的云替代品。这个工具是移动的,在任何有网络连接的地方都可以使用。如果您不需要复杂的数据可视化,那么这个免费选项绝对适合您。

对于合并来自不同数据源的数据的问题的解决方案,有 OWOX BI

使用就绪连接器的 BI 系统中的可视化

功率 BI

微软的这个工具遵循分而治之的逻辑。要使用 Power BI,您需要同时设置该产品的两个版本:

  1. 用于创建报告的 Power BI 桌面
  2. 用于监控和分析报告的 Power BI 服务。此外,处理数据的机会也很有限。

注意:Power BI 不支持 Linux 或 macOS。

内置的 Google BigQuery 连接器只能在 Power BI 的桌面版中找到。第二个选择是使用来自 Simba 驱动的独立连接器。

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

图片由作者提供

当使用连接器时,Power BI 将请求访问您的 Google BigQuery 帐户,经过身份验证后,用户就可以开始加载数据了。

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

图片由作者提供

加载数据时,可以在两个连接参数之间进行选择:

  1. 导入—传输数据的副本;导入 Power BI Desktop 将使用的所选表和列。
  2. DirectQuery —创建动态连接。不复制或导入数据;要求基本数据源。

使用 DirectQuery 的优势之一是能够处理最新数据,并且数据集没有 1 GB 的限制。

DirectQuery 的缺点:

  • 在编辑器中请求过于复杂的查询时出现错误
  • 所有表必须来自一个数据库
  • 没有基于时间的操作逻辑(日期列的处理:日、月、年)

你可以在官方文档中找到更多关于如何使用 DirectQuery 的细节。

加载数据后,我们可以进入报告编辑器。

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

图片由作者提供

就像在 Google Data Studio 中一样,Power BI 中带有可视元素设置的菜单在右边。您可以从几种类型的可视化效果中进行选择:

  • 简单图表
  • 堆叠图表
  • 聚类图表
  • 地图、传感器和漏斗
  • 表格和矩阵
  • r 脚本和 Python 脚本

您可以基于其构建可视化效果的字段列表也位于右侧。如果您不确定使用哪个图表,只需指定您想要在报告中显示的字段,Power BI 将为您选择合适的数据可视化形式。

注意:如果您添加了太多的值,服务将报告一个错误,并提供更正。

使用 Power BI,您可以直接在请求编辑器界面中准备数据(您可以使用 Change Requests 按钮访问该界面)。您可以对数据执行以下操作:

  • 干净的
  • 重新命名
  • 删除
  • 合并

在 Power BI 中有两种关联请求的方法:

  1. merge(association)-如果需要向表中添加一列或多列,此选项非常有用
  2. 添加(adding)-如果需要将一行数据添加到表中,此选项非常有用

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

图片由作者提供

不幸的是,要共享您创建的报告,您不仅需要该产品的两个版本(正如我们提到的),还需要一个名为 Power BI Pro 的付费服务包。

Power BI 的优势:

  • 数据准备的广泛机会
  • 应用的步骤允许您取消请求编辑器中的步骤
  • 报告预览。可以看到移动设备的报告改编。

电源 BI 的缺点:

  • 免费增值模式:仅在专业版中可以直接共享报告
  • 从 GBQ 缓慢加载数据
  • 不适用于 Linux 或 macOS

Power BI 与微软产品的完全集成可能是您选择该服务的决定性因素。但是,如果你不喜欢 Excel,你可以在操作的界面和执行上发现一些困难。此外,Power BI 在加载大量数据方面表现不佳。

(舞台上由人扮的)静态画面

要开始处理 Tableau 中的数据,请从服务器菜单中选择 Google BigQuery 连接器。

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

图片由作者提供

在打开的窗口中,选择项目、数据集和包含要在报告中可视化的数据的表格。

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

图片由作者提供

在下级菜单中,转到报告的第一页(表 1)。这将带您到报告编辑器。

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

图片由作者提供

右侧菜单中可用的元素将取决于左侧所选参数和指标的数量。除了标准类型的可视化,您还可以找到:

  • 树形地图
  • 散点图和包装气泡图
  • 甘特图表

注意:如果您将光标放在一个元素上,Tableau 将显示它需要哪些参数和度量。

该服务还允许从菜单向报告添加一个数据源。因此,将来自不同数据库的数据结合起来是可能的。

报告可以导出(作为 PowerPoint 或 PDF)并在 Tableau Online 或 Tableau Server 中共享。

Tableau 的优势:

  • 直接从菜单访问视频记录和详细说明
  • 合并数据源的能力
  • 许多报告的机会:可以在报告页面的基础上创建仪表板。

Tableau 的缺点:

  • 使用困难的数据模型时的常见问题

Tableau 因其简单的界面和活跃的用户社区而有别于其他服务。另一个好处是支持 R 语言;但是,在使用此服务之前,需要准备好数据。

QlikView

与 Power BI 一样,在 QlikView 的云版本中,没有与 Google BigQuery 的直接连接器。
要将桌面版 QlikView 连接到 GBQ,您需要设置 ODBC 连接器包
注意:GBQ 的访问权限仅提供给拥有 QlikView 付费许可证的用户。

当您第一次开始使用报表时,您只能选择一种可视化类型:

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

图片由作者提供

然后,您需要定义哪些字段将出现在这个图形或图表中。之后,可以添加第二个图形或图表,也可以继续报告。

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

图片由作者提供

要获得更多可视化效果,您可以从“工具”菜单中选择:

  • 快速图表向导
  • 时间图向导
  • 统计图表向导
  • 方框图向导

创建的报告可以作为附件通过电子邮件发送,或者加载到 QlikView server 上的存储库中。只有经过身份验证的用户才能访问这些报告。

QlikView 的优势:

  • 互动培训和视频记录
  • 内置的 ETL 函数(提取、转换、加载)
  • 快速数据加载和处理

QlikView 的缺点:

  • 如果没有额外的连接器,无法从 GBQ 连接数据
  • 可视化的最小项目数

QlikView 是一种企业工具,其制造商也提供 QlikView sense,这是为个人用户设计的。QlikView 凭借其快速的数据处理和协作开发的可能性脱颖而出。但要成功使用,用户要有技术培训。

OWOX BI 智能数据

这个创建报表的工具是专门为不懂 SQL 的人开发的。智能数据处理来自 Google BigQuery 的数据;因此,可以在选择项目和数据集之后立即创建可视化。

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

图片由作者提供

使用智能数据构建报表有三种方式:

  • 从常用模板库中选择一种报告类型
  • 在报表生成器中构建报表,选择参数和指标
  • 在搜索栏中直接请求服务

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

图片由作者提供

在模板库中,报告分为多个主题块。例如,关于归因的报告、关于 CRM 数据库的报告、关于 ROPO 效应的报告。

可以通过多种方式使用报告:

  1. 导出到 Google 工作表
  2. 另存为 CSV 文件
  3. 将 SQL 请求复制到剪贴板

还提供了轻松导出到 Google Data Studio 的功能。为此,菜单中有一个单独的按钮。

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

图片由作者提供

OWOX BI 智能数据的优势:

  • 直接连接到 Google BigQuery 中的数据
  • 符合 PCI DSS、ISO 27001 和 SOC 2.3 标准的高级数据保护
  • 详细 OWOX 帮助中心

OWOX BI 智能数据的缺点:

  • 用于创建报告的有限组合集
  • 可视化的最小项目数

OWOX BI 的关键特性是为非技术专家构建的友好界面。构建报告不需要 SQL 知识。这个过程相当简单:输入一个请求,系统本身就会选择合适的报告。

关键要点

如何决定哪种可视化服务最适合您的报告?以下问题将帮助您选择最佳选项:

  1. 你打算借助报告解决哪些问题?
  2. 你的哪些员工会使用这项服务?
  3. 您希望收到多复杂的报告和图表?
  4. 你对可视化服务的技术要求是什么?

2020 年必读的 6 本数据科学书籍

原文:https://towardsdatascience.com/top-6-data-science-books-that-you-must-study-in-2020-22aec57ea6a9?source=collection_archive---------8-----------------------

数据科学家需要书籍就像剑需要磨刀石一样!!

前几年,公众对数据科学的热情泛滥。曾经是一个真正深奥的领域,现在成了新闻、政府问题和国际法以及我们社交媒体的常见话题。

在每个行业中,数据熟练程度正在变成一项特别需要的技能,消费者不断地将数据点输入到巨大的商业智能框架中。

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

一个正在选书的女孩——Unsplash Image

无论您只是需要在数据热潮中继续接受教育,还是希望开始您的数据科学或数据熟练之旅,本文都包括一个书籍列表,可以帮助新手探索数据科学的世界。

因为你想成为一名数据科学家!

虽然许多人希望开始学习数据科学,但认识到从哪里开始是一个挑战。现在,我将带您浏览一些有帮助的最佳数据科学书籍,您可以阅读这些书籍来掌握数据科学。

排名前六的数据科学书籍:

1。《数据科学手册:来自 25 位了不起的数据科学家的建议和见解》,作者:Carl Shan、William Chen、Henry Wang 和 Max Song:

通常,最理想的获取数据的方法是直接从该领域的个人那里获取,那么与 25 位企业顶级专家交谈的更好途径是什么呢?“《数据科学手册”采访了顶级驱动数据科学家,从美国前首席数据官到知名组织的团队领导,再到正在开发自己项目的新兴数据科学家,从而提供对该行业的独特视角。

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

面试的决定将引导新人通过业务,提供数据生活建议、学习错误、职业发展提示和在数据科学领域占上风的技术。这本书没有深入研究该主题的技术部分,也没有试图成为一个全面的指南。或者,它提供了大量实用的建议和知识。

2.《数据科学的艺术》,作者 Roger D. Peng 和 Elizabeth Matsui :

"数据科学的艺术"投身于在任何现成的数据湖中探索和发现的行为。它以分析数据和筛选数据来找出隐藏的故事为中心。作者利用他们自己的遭遇,通过分析数据科学来指导这两位初学者和管理者。

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

作者参与监督数据项目本身,就像在专家环境中管理分析师一样。他们讲述了自己的经验,即什么会可靠地产生成功的结果,什么陷阱会使数据项目注定失败。

3。Python 机器学习简介:数据科学家指南——作者 Andreas Muller :

对于期待将 Python 真正应用于机器学习的 Python 初学者来说,这本书将会给他们所需要的一切。这本书的中心是向客户介绍 Python,以帮助他们构建自己的机器学习解决方案。

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

这本书将向您展示主流的机器学习算法,并将向您展示 scikit-learn 库的基础知识,该库在 Python 中非常有名。它不仅会教你 Python,还会教你机器学习的基础知识,目标是让你成为一名熟练的数据科学家。您将了解如何评估您的模型,并为您提供建议,让您成为一名数据科学家。

4。Python 速成班——作者 Eric Matthes :

这本书是为完全的 Python 初学者准备的。虽然 Python 比较容易学,但是很难掌握。这本书是为那些需要快速学习 Python 以便进入数据科学的人准备的。

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

这本书分为两个部分:第一部分通过不同的概念向你展示 Python,比如条件、循环、字典、列表等等。第二部分围绕利用 Python 构建不同的项目。

关于 Python 编程你需要知道的一切!

通过这本书,你不仅可以学习 Python,还可以了解如何用 Python 解决问题。同样,您还会发现在分析、可视化和 web 应用程序开发中使用的不同 Python 库。总的来说,这本书非常适合那些希望一次性学习 Python,并在真实环境中实现其知识的人。

5.数据科学家实用统计学—作者 Peter Bruce:

这本书是为没有受过适当统计培训的有抱负的数据科学家而写的。这本书消除了过量的统计数据,只给数据科学家重要的想法。

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

此外,这本书是为那些已经考虑了统计学的基本信息的个人。此外,这本书给出了利用 R 的统计实例。这将允许你练习必要的概念,提高你的 R 技能。这本书的结构是根据数据科学的实际应用。

6。数据科学的 r——Hadley Wickham 和 Garrett Grolemund :

这本书利用 R 来展示数据科学。它指导您成为数据科学家所需的所有技能,如数据清理、可视化、辩论,并进一步向您介绍 RStudio。它让你熟悉 R 的重要包,比如在数据科学中有用的 tidy verse。

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

这本书是给读过过去的书《用 R 动手编程》的个人看的。这本书是专门为数据科学家在日常工作中必须完成的任务而设计的。

它将帮助你通过 R 的软件包利用智力资源来争论和设想数据。与《用 R 编程实践》一书非常相似,这本书可以在网上公开获得。

概要:

虽然数据科学是一个非常广阔的领域。一个人必须认识到正确的资源,才能精通这个领域的广度和深度。虽然我们需要统计学作为解决数据科学问题的基本公式,但不同的编程语言和工具是基本的解决方案。

最后,我得出结论,要掌握数据科学,必须阅读上述书籍,以掌握统计学和编程。

探索你必须知道的 8 个惊人的数据科学工具!!

可视化的 6 大 Python 库:使用哪一个?

原文:https://towardsdatascience.com/top-6-python-libraries-for-visualization-which-one-to-use-fe43381cd658?source=collection_archive---------2-----------------------

对使用哪种可视化工具感到困惑?我为你分析了每个图书馆的利弊

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

Unsplash 上的奥克萨娜 v 拍摄的照片

本指南更新了一些更深入的示例。你可以在这里找到最新版本的博客。

动机

如果您从 Python 可视化开始,您可能会被大量的库和示例所淹没:

  • Matplotlib
  • 海生的
  • Plotly
  • 散景
  • 阿尔泰尔
  • 薄层

如果你有一个数据帧等待可视化,你应该选择哪一个?在特定情况下,有些库可能比其他库更好。本文将展示每种方法的优缺点。到本文结束时,您应该能够区分每个库的不同特性,并且能够更容易地选择最佳库

为此,我们将使用一个样本数据集,并使用每个库来探索它,重点关注几个特定的属性:

交互性

你希望你的可视化是交互式的吗?

一些库,如 Matplotlib,将可视化呈现为图像;因此,它们有利于解释概念(在论文、幻灯片或演示中)。

另一方面,像 Altair、Bokeh 和 Plotly 这样的库允许你创建交互式图形,用户可以自己深入其中并进行探索

语法和灵活性

每个库的语法有何不同?像 Matplotlib 这样的低级库可以让你做任何你想做的事情——但是代价是更复杂的 API。一些库比如 Altair 是非常声明性的,这使得映射到你的数据更加容易。

数据类型和可视化

您是在使用一个专门的用例,比如一个有大量数据的地理图,还是使用一个只有某个库支持的图类型?

数据

为了便于比较,我将在本文中使用我从 Github 收集的真实数据:

[## 我收集了超过 1k 的顶级机器学习 Github 配置文件,这就是我的发现

从 Github 上的顶级机器学习档案中获得见解

towardsdatascience.com](/i-scraped-more-than-1k-top-machine-learning-github-profiles-and-this-is-what-i-found-1ab4fb0c0474) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我将使用 Datapane 嵌入来自每个库的可视化,data pane 是一个用于发布和共享 Python 报告的 Python 框架和 API。如果你想看到更多真实世界的例子,请查看数据面板图库中用户贡献的报告。

要阅读本文,您可以从这里下载 csv 文件,或者从 Datapane Blob 获取直接数据。

import datapane as dpdp.Blob.get(name='github_data', owner='khuyentran1401').download_df()

如果你想使用 Blob,记得事先用你的令牌登录到 Datapane 。这应该不到 1 分钟

Matplotlib

Matplotlib 可能是最常见的可视化数据的 Python 库。每个对数据科学感兴趣的人可能都至少使用过一次 Matplotlib。

赞成的意见

  1. 便于查看数据的属性

分析数据时,快速浏览一下分布可能是理想的。

例如,如果我想快速查看拥有最多追随者的前 100 名用户的分布,使用 Matplotlib 通常就足够了。

尽管 Matplotlib 的 x 轴看起来不太好,但通过查看图表,我们可以更好地了解数据的分布情况。

2。可以策划任何事情

Matplotlib 是非常通用的,这意味着它可以绘制任何类型的图形。Matplotlib 的网站图库中包含了非常全面的文档和各种图形,这让你很容易找到你能想到的任何疯狂情节的教程。

像这样的一些文字:

骗局

Matplotlib 可以绘制任何东西,但绘制非基本的图形或调整图形以使其看起来漂亮可能会很复杂。

即使该图足以可视化分布,但如果您想向他人展示您的数据,您将需要固定 x 轴、y 轴,这需要很大的努力。这是因为 Matplotlib 有一个极其低级的接口

要点:Matplotlib 可以绘制任何东西,但是复杂的绘图可能比其他库需要更多的代码

海生的

Seaborn 是基于 Matplotlib 的 Python 数据可视化库。它在库上提供了一个更高级的包装器,这使得它更容易使用。

赞成的意见

  1. 少码

为类似的情节提供了更高层次的接口。换句话说,seaborn 通常提供与 matplotlib 类似的绘图,但代码更少,设计更好。

我们使用与之前相同的数据来绘制类似的热图。

我们不用设置 x 和 y 标签就能得到更好的热图!

2.使常用地块更漂亮

许多人选择 seaborn 来绘制流行的图,如条形图、箱线图、计数图、直方图等,不仅因为它们可以用更少的代码创建,而且它们看起来更漂亮。正如我们在上面的例子中看到的,颜色看起来也比 Matplotlib 的默认颜色要好。

骗局

Seaborn 更受限制,没有 matplotlib 那样广泛的集合

外卖:Seaborn 是 Matplotlib 的更高级版本。尽管它没有 Matplotlib 那样广泛的集合,但 seaborn 用更少的代码就使流行的图,如条形图、箱线图、热图等看起来很漂亮。

Plotly

Plotly 的 Python 图形库使得创建交互式的、出版物质量的图形变得容易。它还可以创建类似 Matplotlib 和 seaborn 的图表,如折线图、散点图、面积图、条形图等。

赞成的意见

  1. 喜欢 R

如果您是 R 中的 plots 的粉丝,并且在切换到 Python 时错过了它的特性,Plotly 使用 Python 为您提供了同样质量的 plots!

我最喜欢的是Plotly Express,因为它让从一行 Python 代码创建伟大的情节变得非常容易,甚至更快。

2.轻松创建互动情节

Plotly 还可以轻松创建交互式剧情。互动图不仅漂亮,而且让观众更容易仔细观察每个数据点。

还记得我们之前用 matplotlib 做的柱状图吗?让我们看看 Plotly 的结果如何

用差不多相同的代码行,我们生成了一个交互图,我们可以将鼠标悬停在每个栏上,以查看该栏代表的用户和关注者数量。这意味着你的可视化的消费者可以自己探索它。

3。复杂的情节变得简单

使用 Plotly,一些通常很难创建的情节可以轻松创建。

例如,如果我们想要创建一个地图来可视化 Github 用户的位置,我们可以找到他们的纬度和经度,如这里的所示,然后使用这些数据在地图上定位用户的位置,就像这样

只需几行代码,所有用户的位置就可以漂亮地呈现在地图上。泡泡的颜色代表叉子的数量,大小代表星星的总数

要点:Plotly 非常适合用几行代码创建交互式和出版物质量的图形。

阿尔泰尔

Altair 是一个基于 vega-lite 的 Python 的声明式统计可视化库,这使得它非常适合需要大量统计转换的绘图。

赞成的意见

1。简单的可视化语法

用于创建可视化的语法很容易理解。它只需要提到数据列到编码通道之间的链接,其余的绘图是自动处理的。这听起来很抽象,但当你处理数据时,这是一件大事,它使信息可视化变得非常快速和直观。

例如,使用上面的泰坦尼克号数据,我们想计算每个班级的人数,我们只需要在 y 轴上使用count()

2。易于转换数据

Altair 还使得在创建图表时转换数据变得非常容易

例如,如果我们想找到泰坦尼克号中每种性别的平均年龄,而不是像 Plotly 那样提前进行转换,我们可以在代码中执行转换来创建图表。

这里的逻辑是用transform_aggregate()取每个性别(groupby=[‘sex’] )的年龄(mean(age))的平均值,并将平均值保存到变量mean_age)。我们把这个变量作为 y 轴。

我们还可以使用:N确保该类是一个名义数据(没有任何顺序的分类数据),或者使用 :Q确保 mean_age 是一个定量数据(数值的度量,如数字)

查看数据转换的完整列表这里

3。轻松链接情节

Altair 还允许您在图之间进行一些令人印象深刻的链接,例如使用区间选择来过滤附加直方图的内容。

例如,如果我们想要可视化在我们选择年龄和费用之间的点图表的时间间隔内每个班级的人数,我们可以这样做。

当我们拖动鼠标选择散点图中的间隔时,我们可以在下面的条形图中看到变化。当与前面的变换和计算结合使用时,这意味着您可以创建一些非常交互式的绘图,进行即时计算——甚至不需要运行 Python 服务器!

骗局

除非指定自定义样式,否则条形图等简单图表看起来不会像 seaborn 或 Plotly 那样有样式。Altair 也不推荐超过 5000 个样本的数据集,而是建议您在可视化之前聚集数据。

要点:Altair 是显示统计数据的复杂图表的理想选择。Altair 无法处理 5000 个样本以上的数据,一些简单的图表看起来不如 Plotly 或 Seaborn 的风格。

散景

Bokeh 是一个灵活的交互式可视化库,面向 web 浏览器进行表示。

赞成的意见

  1. Matplotlib 的交互版本

如果我们在上面的交互式可视化库中排名,Bokeh 可能会在与 Matplotlib 的相似性方面排名第一。

Matplotlib 可以创建任何图,因为它是一个低级的可视化库。散景既可以作为高级界面,也可以作为低级界面;因此,它可以创建许多 Matplotlib 创建的复杂绘图,但代码行更少,分辨率更高。

比如 Matplotlib 的圆形图

也可以使用散景以更好的分辨率和更多的实用性创建

2。图之间的链接

散景也使情节之间的联系变得非常容易。在一个图中应用的改变将被应用到具有相似变量的另一个图中。

例如,如果我们并排创建 3 个图形,并希望观察它们的关系,我们可以使用链接刷

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

ColumnDataSource使数据在各图之间共享。因此,当我们将变化应用于一个图时,其他图也相应地变化。

骗局

因为 Bokeh 是一个具有中级接口的库,它通常比 Matplotlib 需要更少的代码,但需要更多的代码来产生与 Seaborn、Altair 或 Plotly 相同的绘图。

例如,要使用 titanic 数据创建相同的计数图,除了需要预先转换数据之外,如果我们希望图形看起来更好,我们还需要设置条形的宽度和颜色

如果我们不增加条形图的宽度,该图将如下所示

因此,我们需要手动调整尺寸,使情节更好

如果你想用更少的代码创建一个漂亮的条形图,这可能是与其他库相比散景的缺点

导读:Bokeh 是唯一一个界面从低到高的库,可以轻松制作出既通用又优雅的图形。然而,这样做的代价是,散景通常需要更多的代码来创建与其他库质量相似的图。

薄层

leave让数据在交互式传单地图上可视化变得容易。该库有许多来自 OpenStreetMap、Mapbox 和 Stamen 的内置 tilesets

赞成的意见

  1. 用标记轻松创建地图

尽管 Plotly、Altair 和 Bokeh 也使我们能够创建地图,但 Folium 使用开放的街道地图,用最少的代码给你一种更接近谷歌地图的感觉

还记得我们如何使用 Plotly 创建地图来可视化 Github 用户的位置吗?我们可以用叶子让地图看起来更好

最初的位置在纽约布鲁克林。缩小以查看地图上的其他位置。通过几行代码,我们创建了一个显示用户位置的真实地图。

2。添加潜在位置

如果我们想添加其他用户的潜在位置,follow 允许用户添加标记,这很容易做到

在地图上单击以查看在您单击的地方生成的新位置。

3。插件

Folium 有很多插件可以用于你的地图——包括一个 Altair 插件。如果我们想看全球 Github 用户总星数的热图来识别哪里有总星数高的顶级 Github 用户数高怎么办?that 插件中的热图允许您这样做。

缩小以查看热图的完整图片。

外卖:Folium 允许你用几行代码创建一个交互式地图。它给你一种接近谷歌地图的体验。

结论

恭喜你!你刚刚学习了六种不同的可视化工具。我希望这篇文章能让你了解每个库做什么以及什么时候使用什么。掌握每个库的关键特性将使您在需要时更快地找到合适的库。

如果您仍然不知道使用哪个库来存储您的数据,请选择一个您认为足够好的库。如果代码太长或者图形没有你想象的那么好,就用另一个库试试吧!

这个 Github repo 中,您可以随意使用本文的代码。

我喜欢写一些基本的数据科学概念,并尝试不同的算法和数据科学工具。你可以在 LinkedIn 和 T2 Twitter 上与我联系。

这个回购如果你想检查我写的所有文章的代码。在 Medium 上关注我,了解我的最新数据科学文章,例如:

[## 如何用 Altair 创建交互式剧情

在 5 行简单的 Python 代码中利用您的数据分析

towardsdatascience.com](/how-to-create-interactive-and-elegant-plot-with-altair-8dd87a890f2a) [## 我收集了超过 1k 的顶级机器学习 Github 配置文件,这就是我的发现

从 Github 上的顶级机器学习档案中获得见解

towardsdatascience.com](/i-scraped-more-than-1k-top-machine-learning-github-profiles-and-this-is-what-i-found-1ab4fb0c0474) [## 如何在数据科学项目中利用 Visual Studio 代码

直到发现一种新的有效方法,我们才意识到我们是多么低效

towardsdatascience.com](/how-to-leverage-visual-studio-code-for-your-data-science-projects-7078b70a72f0) [## 如何在一行代码中跨不同环境共享 Python 对象

为建立与他人分享你的发现的环境而感到沮丧?以下是如何让它变得更简单

towardsdatascience.com](/how-to-share-your-python-objects-across-different-environments-in-one-line-of-code-f30a25e5f50e) [## 如何通过将自己置于合适的环境中来加速您的数据科学职业生涯

我感到增长数据科学技能停滞不前,直到我有了一个飞跃

towardsdatascience.com](/how-to-accelerate-your-data-science-career-by-putting-yourself-in-the-right-environment-8316f42a476c)

常春藤大学的 7 大免费人工智能课程

原文:https://towardsdatascience.com/top-7-free-artificial-intelligence-courses-from-the-ivy-league-universities-7c951f787a55?source=collection_archive---------27-----------------------

顶级人工智能课程精选列表。向该领域最优秀的人学习——有选择地分配你的时间、精力和注意力。

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

德尔菲·德拉鲁阿在 Unsplash 上拍摄的照片

这些天,感觉每周都有新的人工智能课程。面对如此庞大的工作量,我们需要对我们的时间、精力和重点进行真正的选择。一个简单而有效的策略是参加该领域最优秀人才的课程。

有效地利用你的时间,参加该领域最优秀人才的课程。

在我的数据科学家同事的帮助下,我们整理了一份来自常春藤联盟大学的 7 门顶级人工智能课程的列表。该课程必须是免费的,才能被列入清单。

我没有参加清单上的所有课程,但我得到了同事们的高度赞扬。在我的课程清单上,下一个我希望参加的是强化学习课程。

常春藤联盟是什么?

常春藤联盟由八所私立大学组成:哈佛、耶鲁、普林斯顿、布朗、达特茅斯、哥伦比亚、康奈尔和宾夕法尼亚大学。

虽然斯坦福大学和麻省理工学院显然是名校,但它们不是常春藤联盟学校,因为它们不是常春藤联盟的成员。

这里有几个你可能会感兴趣的链接:

- [Labeling and Data Engineering for Conversational AI and Analytics](https://www.humanfirst.ai/)- [Data Science for Business Leaders](https://imp.i115008.net/c/2402645/880006/11298) [Course]- [Intro to Machine Learning with PyTorch](https://imp.i115008.net/c/2402645/788201/11298) [Course]- [Become a Growth Product Manager](https://imp.i115008.net/c/2402645/803127/11298) [Course]- [Deep Learning (Adaptive Computation and ML series)](https://amzn.to/3ncTG7D) [Ebook]- [Free skill tests for Data Scientists & Machine Learning Engineers](https://aigents.co/skills)

上面的一些链接是附属链接,如果你通过它们购买,我会赚取佣金。请记住,我链接课程是因为它们的质量,而不是因为我从你的购买中获得的佣金。

如果你错过了我关于这个主题的另外两篇文章:

[## 2020 年每个数据科学家都应该阅读的 7 本免费电子书

学习一项新技能不一定要很贵。2020 年你只需要时间和付出就能学会一项新技能。

towardsdatascience.com](/7-free-ebooks-every-data-scientist-should-read-in-2020-32508ad704b7) [## 2020 年每个数据科学家都应该阅读的 7 本免费编程书籍

这些书将向你展示如何培养许多数据科学家缺乏的技能。都是免费的!

towardsdatascience.com](/7-free-programming-books-every-data-scientist-should-read-in-2020-608c00d7cf3c)

1.强化学习

大学:佐治亚理工学院
导师:查尔斯·伊斯贝尔教授

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

蒂姆·莫斯霍尔德在 Unsplash 上拍摄的照片

[## 强化学习| Udacity 免费课程

免费课程由佐治亚理工学院提供,编号为 CS 8803。关于本课程的免费课程,如果你需要,你应该选修本课程

www.udacity.com](https://www.udacity.com/course/reinforcement-learning–ud600)

强化学习是机器学习中最热门的话题之一。如果你想从理论的角度学习这门课程,你应该选这门课。

在本课程中,你将从计算机科学的角度,通过结合经典论文和最近的工作来探索自动化决策。你将研究有效的算法,如果它们存在的话,用于单代理和多代理计划,以及从经验中学习接近最优决策的方法。在课程结束时,你将复制一篇发表在《强化学习》上的论文的结果。

2.计算机视觉

大学:麻省理工学院导师:贝特霍尔德·霍恩教授

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

列宁·艾斯特拉达Unsplash 拍摄的照片

[## 计算机视觉

机器视觉对生成环境的符号描述的过程提供了深入的介绍…

ocw.mit.edu](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-801-machine-vision-fall-2004/)

这门麻省理工学院的课程提供了从图像生成环境符号描述的过程的深入介绍。

在讲座中,你将学习图像形成的物理学,运动视觉,以及从阴影中恢复形状。二值图像处理和滤波作为预处理步骤提出。

进一步的主题包括摄影测量,物体表示对齐,模拟超大规模集成电路和计算视觉。讨论了机器人和智能机器交互的应用。

3.机器学习的数学

大学:麻省理工学院
导师:菲利普·里戈莱特教授

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

照片由this engineering RAEngUnsplash

[## 机器学习的数学

广义而言,机器学习是指自动识别数据中的模式。因此,这是一个…

ocw.mit.edu](https://ocw.mit.edu/courses/mathematics/18-657-mathematics-of-machine-learning-fall-2015/)

广义而言,机器学习是指自动识别数据中的模式。因此,它是新的统计和算法发展的沃土。

本课程的目的是为这些发展提供一个数学上严谨的介绍,重点是方法及其分析。

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

机器学习数学中涵盖的主题

4.数据科学:概率

大学:哈佛大学导师:拉斐尔·伊里扎里教授

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

杰斯温·托马斯在 Unsplash 上的照片

[## 数据科学:概率

在这门课程中,我们的数据科学专业证书课程的一部分,你将学到有价值的概念…

www.edx.org](https://www.edx.org/course/data-science-probability)

在这门课程中,你将学到概率论中有价值的概念。这门课程的动机是围绕 2007-2008 年金融危机的环境。

导致这场金融危机的部分原因是金融机构出售的一些证券的风险被低估了。为了开始理解这个非常复杂的事件,我们需要理解概率的基础。

本课程将介绍一些重要的概念,如随机变量、独立性、蒙特卡罗模拟、期望值、标准误差和中心极限定理。这些统计概念是对数据进行统计测试和理解您正在分析的数据是否可能由于实验方法或偶然事件而出现的基础。

概率论是统计推断的数学基础,统计推断对于分析受偶然性影响的数据是必不可少的,因此对于数据科学家来说是必不可少的。

5.人工智能

大学:ColumbiaX
导师:Ansaf Salleb-Aouissi 博士

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

亚历山大·奈特Unsplash 上拍照

[## 人工智能

自动驾驶汽车、人脸识别、网络搜索、工业机器人、导弹制导、肿瘤检测有什么…

www.edx.org](https://www.edx.org/course/artificial-intelligence-ai)

自动驾驶汽车、人脸识别、网页搜索、工业机器人、导弹制导、肿瘤检测有什么共同点?

它们都是复杂的现实世界问题,正在通过智能(AI)的应用来解决。

本课程将提供对构建智能计算机系统的基本技术的广泛理解,以及对人工智能如何应用于问题的理解。

你将学习人工智能的历史、智能代理、状态空间问题表示、无信息和启发式搜索、玩游戏、逻辑代理和约束满足问题。

您将通过构建一个基本的搜索代理获得实践经验。对抗性搜索将通过创建一个游戏来探索,机器学习的介绍包括线性回归的工作。

6.机器学习

大学:哥伦比亚
导师:约翰·w·佩斯利博士

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

照片由 Unsplash 上的 h heyerlein 拍摄

[## 机器学习

机器学习是当今数据分析领域最激动人心的职业的基础。你会学到模型和方法…

www.edx.org](https://www.edx.org/course/machine-learning)

机器学习是当今数据分析领域最激动人心的职业的基础。您将学习模型和方法,并将它们应用到现实世界中,从识别趋势新闻话题到构建推荐引擎、给运动队排名和绘制电影僵尸的路径。

涵盖的主要观点包括:

  • 概率与非概率建模
  • 监督与非监督学习

主题包括分类和回归、聚类方法、序列模型、矩阵分解、主题建模和模型选择。

方法包括线性和逻辑回归、支持向量机、树分类器、boosting、最大似然和 MAP 推断、EM 算法、隐马尔可夫模型、卡尔曼滤波器、k 均值、高斯混合模型等。

7.算法,1

大学:普林斯顿
导师:凯文·韦恩,博士

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

照片由克里斯里德Unsplash 上拍摄

[## 算法,第一部分

由普林斯顿大学提供。本课程涵盖了每个认真的程序员需要的基本信息…

www.coursera.org](https://www.coursera.org/learn/algorithms-part1)

如果你想提高你的编程技能,这个课程是为你准备的。虽然它与机器学习没有严格的联系,但是你将会建立强大的计算机科学基础。

本课程涵盖了每个严肃的程序员需要了解的关于算法和数据结构的基本信息,重点是 Java 实现的应用和科学性能分析。

第一部分介绍了基本的数据结构、排序和搜索算法。第二部分着重于图形和字符串处理算法。

很少值得一提

机器学习教程 a

大学:斯坦福大学
导师:吴恩达教授

[## 机器学习

机器学习是让计算机在没有明确编程的情况下行动的科学。在过去的十年里…

www.coursera.org](https://www.coursera.org/learn/machine-learning)

吴恩达的 Coursera 课程是我最喜欢的机器学习课程。这是我在这个领域的第一门课。通过听本课程,您将为机器学习打下坚实的基础

本课程提供了机器学习、数据挖掘和统计模式识别的广泛介绍。该课程还将借鉴大量的案例研究和应用,以便您也可以学习如何将学习算法应用于构建智能机器人、文本理解、计算机视觉和其他领域。

扑克理论和实践简介

大学: J ohns Hopkins
导师:阿维·鲁宾教授

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

迪伦·克利夫顿在 Unsplash 上的照片

[## 约翰·霍普金斯扑克课程

这个课程旨在让学生从对扑克一无所知的新手到高于平均水平的玩家…

hopkinspokercourse.com](https://hopkinspokercourse.com/)

约翰霍普金斯大学的扑克课程与机器学习并没有太大的关系,但在处理统计数据时还是有点关系的。这是一种学习数学和组合学的有趣方式。

这个间歇期课程的目的是在两周内让学生从可能对扑克一无所知的新手到高于平均水平的玩家。本课程将利用手的例子和常见扑克情况的讨论来研究游戏的基本原理。

在你走之前

Twitter 上关注我,在那里我定期发布关于数据科学和机器学习的消息。

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

照片由Courtney hedgeUnsplash 拍摄

学习和实践数据科学的 7 大移动应用

原文:https://towardsdatascience.com/top-7-mobile-apps-for-learning-and-practicing-data-science-46db26e862c6?source=collection_archive---------20-----------------------

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

移动应用已经成为人类生活不可或缺的一部分。大多数人只是将时间浪费在使用消息应用程序或听音乐上,但他们不知道他们可以通过使用这些应用程序来利用时间,这些应用程序可以学习和实践最新的技术和新的编码语言,从长远来看,这些技术和语言可以使人们受益。

数据科学被认为是最关键、最具趋势和高收入的行业。这是一个使用算法从收集的大量数据中提取见解的行业垂直领域。有许多应用程序可以让您在移动设备上运行 Python 脚本。虽然大部分移动应用程序可供 Android 用户使用,但只有 iOS 用户可以从一些提供免费在线教程的平台上学习。

移动应用改变了学习方式。这些应用为教育和学习领域增添了全新的体验。在开发用于实践数据科学的应用程序之前,企业应检查开发人员的技能组合,并应雇用最好的移动应用程序开发人员,他们了解什么是数据科学,并拥有移动应用程序开发方面的专业知识。

提升

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

举起

一个个性化的大脑训练应用程序,以提高人的智力。这个应用程序可以让你树立信心,提高工作效率。该应用程序为用户设计了个性化的练习——每天 3 次练习,根据你在这三次练习中的表现,你将在第二天被分配一次新的练习。通常,它会根据你的薄弱环节分配练习来帮助你提高。这个应用程序分析你的表现,并会帮助你提升你的表现。

Qpython

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

量子 python

Qpython 应用可以让你在手机上运行编程语言。你可以随时随地使用它,并开始编码。该应用程序是强烈建议初学者尝试编码和实验来学习。该应用程序仅适用于 android 设备。开发者也可以使用这款应用开发 android 应用。它是数据分析师和数据科学家最喜欢的语言。

学习 Python

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

学习 Python

该应用程序仅适用于 android 用户。如果有人想提高自己的技能或者从头开始学习,这是最好的平台。该应用程序提供实践课程和有相同兴趣的人的社区。它提供了不同的测验和练习,用户还可以与其他社区成员进行竞赛并从中学习。

MOOC 应用

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

MOOCs

数据科学家总是需要让他们了解所在领域的最新趋势和技术。通过 MOOC 应用程序,用户可以访问课程材料,并从该领域最好的教师那里获得指导。人们可以随时随地使用该应用程序。
这些类型的平台使初学者能够轻松了解数据科学领域的新技术和最新进展。

Coursera

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

Coursera

这是一个平台,提供对世界各地许多大学和学院开发的成千上万的课程材料和不同课程的访问。只需下载应用程序,进入一个新的学习世界。

基本统计

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

基本统计

这方面的初学者可以使用这个应用程序来掌握统计部分。通常情况下,开发人员停留在编程和开发部分,没有足够的时间研究基本的统计数据。这个应用程序将帮助您修改统计的概念,如频率分布,图形,图表和假设。统计是任何数据科学项目的基础,因此下载应用程序,并使用 play store 上的基本统计应用程序来改进您的统计。

Excel 教程

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

Excel 教程

现在,您可以学习如何在移动设备上脱颖而出。该应用程序仅适用于 android 用户。该应用程序有初学者到高级用户的视频教程。该应用程序将涵盖每个主题,向您介绍 MS-Excel 的工作原理以及如何将其用于数据科学和数据分析。该应用程序将帮助您掌握 MS-Excel,您将了解一些最先进的功能,如宏、数据透视表。

结论

教育和学习领域的技术进步使得用户可以很容易地了解任何领域的最新发展。你不需要每时每刻都带着你的笔记本电脑,现在所有的东西都可以通过手机获得。

随着移动应用程序开发行业的发展,您将会看到更多的应用程序,将会增强用户体验,并将为现场教育和电子学习提供一个全新的维度。数据科学最好的一点是,我们只是触及了表面,这个行业还有很多值得探索的地方!

学习 Python 最好的 7 个 Github 库

原文:https://towardsdatascience.com/top-7-repositories-on-github-to-learn-python-44a3a7accb44?source=collection_archive---------6-----------------------

编程;编排

流行的存储库,要么学习基础知识,要么掌握 Python

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

艺术由西斯卡德尔斯

条条大路通 GitHub。

你可能还记得我发表的一篇类似的文章,名为“GitHub 上学习熊猫的四大知识库”。在那里,我说我害怕使用任何超过git commit + git push的东西,因为 GitHub 很吓人。我已经取得了一点进步:现在我记得每次有新工作时点击git pull(而不是当我试图推动我的编辑并意识到我的本地存储库没有与主分支保持同步时在内部尖叫)。

这次我决定为 Python 编一个类似的学习资源列表!其中一些包含教程风格的 Jupyter 笔记本,而另一些则以广泛收集编程问题为特色。所有这些都有可能有用,这取决于你喜欢的学习方式。

如果您以前从未使用过 Python,那么您可能会从为完全初学者准备的资源库中受益。如果你已经对 Python 很熟悉了,并且想重温某个特定的主题,比如说算法,这里也有一个专门为你准备的资源库!

学习-python3 —初级到中级(1.8k 星)

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

Jerry-git在 GitHub 上学习 python-3

在初学者部分,这个资源库将带您浏览 19 个 Jupyter 笔记本。它涵盖了基础级别的内容,如字符串和条件,然后通过讨论类(面向对象编程的快速入门)、异常(它们是什么以及如何处理它们)以及 Python 标准库中包含的一些特性(日期时间、正则表达式等等)进行了更深入的讨论。

每个主题都有一个“笔记本”链接,它将带您进入主题介绍和一些示例代码。在你完成这些之后,有一个“练习”链接,它会带你到一个笔记本,里面有你可以填写和测试的问题样本。

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

来自 jerry-git练习笔记本样本

然后,有一个中间的“惯用”部分。本节描述“Python 特性”,这是 Python 中的特性,在许多其他编程语言中没有。如果您已经熟悉了一种不同的语言,那么您可能希望查看本节,了解专门使用 Python 的技巧和诀窍。例如,有一节介绍了如何以不同于其他语言的方式处理 Python 中的循环。

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

样品惯用笔记本来自偷工减料

这个存储库还有一个到方便的“最佳实践”笔记本的链接,您可以使用它来了解在创建 Python 项目时应该实现哪些实践。它涵盖了用pipenv建立一个虚拟环境和使用pytest进行(你猜对了)测试。

学习-python —初级到中级(3.9k 星级)

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

通过 trekhleb 在 GitHub 上学习 python

这个库也是 Python 的入门,可以带你从初学者到中级(我说的中级是指除了简单的循环和算术之外的语言的使用)。存储库不是使用笔记本,而是 Python 脚本的集合,每个脚本都是核心类别的子主题,如“操作符”、“数据类型”和“控制流”。

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

样本子主题 Python 文件作者 trekhleb

每个 Python 文件都展示了相关的子主题以及一个有用的链接,您可以访问该链接以获取更多信息。如果您不清楚代码是做什么的,并且需要快速回顾一些理论,这可能会很有帮助。

使用 Python 文件时,存储库中包含的两个重要功能是测试和样式检查。您可以在“如何使用这个存储库”下看到完整的细节,但是为了测试,作者在主函数的底部添加了带有assert的行,以查看该函数是否按照预期执行。如果您想对代码进行更改并查看它是否仍然正常工作,这可能会很有用。这里有关于如何使用pytest运行测试的说明。此外,为了养成遵循 Python 的主要风格指南(PEP 8)的习惯,还有进一步的说明让你在代码上运行pylint,看看 Python 文件是否符合风格指南。

你不必完整地学习这门课程,因为作者指出,你也可以把知识库当作备忘单来使用。您可以简单地找到您正在寻找的部分,查看文档,摆弄代码,然后运行测试并嵌入代码,看看它是否工作正常,是否如预期那样编写。

全速 python —初级到中级(2.6k 星级)

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

全速巨蟒上 GitHub 由jooventura

这个资源库的特色是有一本书,它快速浏览字符串和列表的基础知识,然后快速深入到相对更高级的主题,如“类”、“协同程序”和“异步编程”。作者写这本书时考虑到了实用的方法,用代码示例简要介绍了每个主题,然后直接跳到读者可以自己尝试的实践问题。

您可以从链接 Readme 下载 pdf/epub 文件,也可以克隆存储库并自己构建。

作者写道“获得软件工程学位的分布式计算学生在两周内熟悉了 Python,并能在第三周实现带有套接字的分布式客户机-服务器应用程序”。如果你已经有了一些使用另一种语言的软件工程经验,或者如果这不是你的第一种编程语言,使用这本书可以帮助你快速掌握 Python。

python _ reference 中级(2.3k 星)

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

rasbt 在 GitHub 上 python_reference

这个存储库不像以前的存储库那样是包含概念组的教程式资源。相反,这个存储库更多的是关于中级主题的不同笔记本的集合,比如“Python 中的 SQLite 数据库操作”和“通过多处理模块的并行处理”。如果您已经有了坚实的 Python 基础,这个资源可能会有助于您真正利用该语言的不同特性。与以前的存储库一样,这个存储库也包括笔记本,其中包含您可以编辑和运行的代码。

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

样本提示笔记本作者 rasbt

名副其实的“不那么明显的 Python 素材”笔记本(上面的片段)给出了各种 Python 和 Python 模块特性的概要,这些特性在学习绝对基础知识时可能没有学到。你永远不知道那个随机的提示什么时候会对你未来的工作有所帮助。虽然当您刚开始使用 Python 时,加深理解是很好的,但是一旦您已经学习了足够的基础知识,它可以帮助您浏览一系列不相关的技巧,例如拓宽和填补您的知识空白。

还有一些有用的非代码资源,作者链接到了这些资源,它们更像是“理论资源”。例如,作者创建了一个名为“Python 中的单元测试——为什么我们要让它成为一种习惯”的项目。

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

样本理论资源rasbt 提供

作者还链接了许多其他对学习 Python 有用的外部资源,包括论坛、书籍和现有的 Python 项目。例如,Reddit 上的 r/Python 是一个很好的地方,可以找到有用的 Python 技巧以及社区成员展示的个人项目。

python-编程-练习-从初级到高级(10.8k 星级)

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

Python-编程 GitHub 上的练习zhiwehu

这个库目前有 100 个 Python 编程练习,难度从初级到高级不等。这些问题和解决方案最初是用 Python 2 编写的,但作者后来更新了所有 100 个问题,以包括用 Python 3 编写的解决方案。

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

样本练习知乎

如果您已经熟悉 Python,这些问题中的一些可能看起来太简单了。我会说能够解决简单的问题是一回事,但是能够快速解决是另一回事。仔细研究所有这些问题,也许与你参加的在线课程或这里的 GitHub 资源库的资源一起,可以帮助你准备和训练解决编程练习。

如果你被卡住了,你可以在每个问题上使用“提示”行,尝试找出解决问题的方法。尽量不要对每个问题向下滚动太多,这样你就不会马上看到解决方案,因为试图找出问题解决方案的过程有助于你真正记住解决方案(而不是仅仅试图阅读和记忆解决方案)。

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

样题练习知乎

还有一个不同作者的“扩展版”知识库,有相同的问题和替代解决方案。在这个扩展的知识库中,作者试图展示解决一个问题的不同方法,这些方法可能比原始解决方案更有效或更“Pythonic 化”。

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

示例练习darkprinx 完成

编码问题—中级到高级(2.6k 星)

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

MTrajK在 GitHub 上的编码问题

就像之前的库一样,这个库包含了你可以解决的编程和算法练习的完整列表。然而,这个存储库并没有将所有的练习都记录在一个笔记本中,而是为每个练习都准备了一个 Python 文件,其中包含了问题的描述以及解决方案。

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

示例练习MTrajK 完成

这些问题并不是从完全初级的难度开始的,所以我建议在你已经牢固掌握了基础知识(使用函数、控制流等)之后再来回答这些问题。).

作者也写道“算法和结构与语言无关”。正因为如此,他用 Python 编写了解决方案,因为这种语言可读性很好,但是熟悉其他语言的人也应该能够使用这个库来了解如何处理算法问题。

这个库中的问题不是作者原创的,因为他明确指出它们来自 LeetCode 这样的问题解决网站。他的贡献是提供解决方案和解释,帮助人们学习如何解决这类问题。

你会发现许多问题都可以归为一个主题,所以解决这些问题的方法可能有些相似。当你在一个主题中不断练习相同类型的问题时,你会发现它们对你来说变得越来越容易解决。

除了包含算法问题和解决方案的 Python 文件之外,他还提供了一个完整的其他资源列表供您使用。对于编程问题,有许多在线课程、推荐书籍和热门网站的链接。

算法—中级到高级(82.4k 恒星)

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

Python 上 GitHub 由算法

这个存储库还提供了一组文件,向您展示如何用 Python 实现不同的算法。这些算法分为从“算术分析”到“区块链”到“数据结构”甚至更多的类别。没有太多关于如何解决每个问题的解释,因为这个库可以作为实现不同算法的解决方案指南。

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

样本算法解算法解

有些文件确实给了你一些背景知识(和一两个帮助你开始的链接),但是在你尝试解决这些算法之前,你可能需要自己做一些研究。如果你对 Python 完全陌生,我建议你先建立你的基础知识,因为这个库实际上是为那些已经熟悉这种语言并希望加深算法知识的人准备的。

作者还为其他几种主要语言(Java、C++、C、Go、Javascript)创建了类似的“学习算法”存储库,您可以在概要文件的 pinned 存储库中查看。

GitHub 资源库包含大量有价值的学习资源,但这并不意味着你需要使用所有的资源。我的建议是首先选择一个“初级到中级”类型的存储库,并研究其中的所有学习材料。您应该通过最适合您的学习风格的存储库来工作。例如,如果你想通过可编辑的 Jupyter 笔记本来学习从基础到中级的主题,你应该尝试本文中的第一个资源库。

此外,这两个 100+ Python 问题非常适合作为解决编程问题的入门。你可以选择要么开始每天尝试几个,要么等到你有了更扎实的 Python 基础再说。这些最终可以帮助你建立一些在技术性工作面试中可能出现的编程问题的基本知识。你可以从这些网站发展到像 HackerRank 和 LeetCode 这样的网站,这些网站每天都会给你各种各样的编程问题来解决。他们还可以帮助你准备特定公司的面试,比如脸书、亚马逊和谷歌。

学习 Python(和其他任何东西)都是为了保持动力和练习。Python 并不神奇——制定一个计划,如果合适就使用其中一个库(如果不合适就使用完全不同的库),然后坚持使用它

你能行的!

**More by me:** - [2 Easy Ways to Get Tables From a Website](/2-easy-ways-to-get-tables-from-a-website-with-pandas-b92fc835e741?source=friends_link&sk=9981ddaf0785a79be893b5a1dd3e03dd)
- [An Introduction to the Cohort Analysis With Tableau](https://medium.com/swlh/how-to-group-your-users-and-get-actionable-insights-with-a-cohort-analysis-b2b281f82f33?source=friends_link&sk=8b672c3feb79e194804f2a1c33660e19)
- [How to Quickly Create and Unpack Lists with Pandas](/how-to-quickly-create-and-unpack-lists-with-pandas-d0e78e487c75?source=friends_link&sk=32ea67b35fe90382dc719c1c78c5900c)
- [Rename Screenshots on Mac with 21 Lines of Python](/how-to-rename-screenshots-on-mac-with-21-lines-of-python-c3c2366f6eec?source=friends_link&sk=ee7e2c04f068855b5b7dfffa7e54152b)

机器学习从业者面临的 8 大挑战

原文:https://towardsdatascience.com/top-8-challenges-for-machine-learning-practitioners-c4c0130701a1?source=collection_archive---------12-----------------------

开发机器学习应用程序时需要克服的主要挑战

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

照片由来自 Pexels尿布拍摄

许多人在听到机器学习(ML)人工智能(AI) 的风声时,会想到机器人或终结者。然而,它们不是电影中的东西,它绝不是一个尖端的梦想。已经到了。我们生活在一个使用机器学习开发大量尖端应用的环境中,尽管在开发一个从零开始到投入生产的应用的过程中,ML 从业者可能会面临某些挑战。

这些挑战是什么?我们来看看吧!

1.数据收集

数据在任何用例中都扮演着关键角色。数据科学家 60%的工作在于收集数据。对于尝试机器学习的初学者来说,他们可以很容易地从 Kaggle、UCI ML Repository 等网站找到数据。

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

照片由 Pixabay像素拍摄

为了实现真实的案例场景,您需要通过网络搜集或(通过像 twitter 这样的 API)收集数据,或者为了解决业务问题,您需要从客户那里获得数据(这里 ML 工程师需要与领域专家协作来收集数据)。

一旦收集了数据,我们需要构造数据并将其存储在数据库中。这需要大数据(或数据工程师)的知识,这在这里起着重要作用。

2.较少的训练数据量

一旦收集了数据,您需要验证数量是否足够用于用例(如果是时间序列数据,我们至少需要 3-5 年的数据)。

我们在做机器学习项目时做的两件重要的事情是选择学习算法和**使用一些获得的数据训练模型。**所以作为人类,我们自然倾向于犯错,结果事情可能会出错。在这里,错误可能是选择了错误的模型或选择了不好的数据。现在,我说的坏数据是什么意思?让我们试着去理解。

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

来自佩克斯莎伦·麦卡琴的照片

想象你的机器学习模型是一个婴儿,你打算教婴儿区分猫和狗。所以我们从指着一只猫说‘这是一只猫’开始,对一只做同样的事情(可能重复这个过程很多次)。现在,孩子将能够通过识别形状、颜色或任何其他特征来区分狗和猫。而就这样,宝宝变成了天才(在辨别方面)!

同样,我们用大量数据训练模型。一个孩子可能用较少数量的样本来区分动物,但一个机器学习模型需要成千上万的样本,即使是简单的问题。对于像图像分类和语音识别这样的复杂问题,可能需要数百万的数据。

因此,有一点是明确的。我们需要用足够的数据来训练一个模型。

3.非代表性训练数据

训练数据应该代表新案例,以便很好地概括,即,我们用于训练的数据应该覆盖所有已经发生和将要发生的案例。通过使用非代表性的训练集,经过训练的模型不可能做出准确的预测。

被开发来对商业问题视图中的一般化情况进行预测的系统被认为是好的机器学习模型。这将有助于模型运行良好,即使对于数据模型从未见过的数据也是如此。

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

照片由鲁伯特·布里顿Unsplash 拍摄

如果训练样本的数量很少,我们有采样噪声这是不具有代表性的数据,同样,如果用于训练的策略有缺陷,无数的训练测试会带来采样偏差

1936 年美国总统选举期间发生了一个调查抽样偏差的流行案例(Landon 对 Roosevelt),由文学文摘通过向大约 1000 万人发送邮件进行了一次非常大的民意调查,其中有 240 万人回答,并预测 Landon 将以很高的可信度获得 57%的选票。尽管如此,罗斯福还是以 62%的选票获胜。

这里的问题在于抽样方法,为了获得进行民意调查的地址,literal Digest使用杂志订阅、俱乐部成员名单等,这些都被那些注定要投票给共和党人(因此是 Landon)的富裕个人所利用。此外,不回答也是偏见,因为只有 25%的人回答了调查。

为了准确预测而没有任何偏差,训练数据集必须具有代表性。

4.数据质量差

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

照片由Jeppe Hove Jensen来自 Unsplash

在现实中,我们不直接开始训练模型,分析数据是最重要的一步。但是我们收集的数据可能还没有准备好用于训练,例如,一些样本与其他样本相比是异常的,具有异常值或缺失值。

在这些情况下,我们可以移除异常值,或者使用中值或平均值填充缺失的特征/值(以填充高度),或者简单地移除具有缺失值的属性/实例,或者使用和不使用这些实例来训练模型。

我们不希望我们的系统做出错误的预测,对吗?因此,数据质量对于获得准确的结果非常重要。数据预处理需要通过过滤缺失值,提取和重新排列模型需要的内容来完成。

5.不相关/不想要的特征

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

照片由 Gary ChanUnsplash 拍摄

垃圾进,垃圾出

如果训练数据包含大量无关特征和足够多的相关特征,机器学习系统就不会给出预期的结果。机器学习项目成功所需的一个重要方面是选择好的特征来训练模型,也称为特征选择。

假设我们正在进行一个项目,根据我们收集的输入特征(年龄、性别、体重、身高和位置,即他/她住在哪里)来预测一个人需要锻炼的小时数

  1. 在这 5 个特征中,l 位置值可能不会影响我们的输出函数。这是一个不相关的特性,我们知道没有这个特性我们可以有更好的结果。
  2. 此外,我们可以将两个特征结合起来产生一个更有用的特征,即特征提取。在我们的示例中,我们可以通过消除重量和高度来生成一个名为身体质量指数的特征。我们也可以在数据集上应用变换。**
  3. 通过收集更多数据来创建新功能也有所帮助。

6.过度拟合训练数据

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

照片由 PexelsVictor Freitas 拍摄

**假设你去了一个新城市的餐馆。你看着菜单点菜,发现费用或账单太高。你可能会忍不住说“这个城市的所有餐馆都太贵了,负担不起”。过度概括是我们经常做的事情,令人震惊的是,框架同样会陷入类似的陷阱,在人工智能中,我们称之为过度适应。

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

过度拟合

这意味着模型表现良好,对训练数据集做出了可能的预测,但它没有很好地泛化。

假设您正在尝试实现一个图像分类模型,分别使用 3000、500、500、500 个训练样本对苹果、桃子、橙子和香蕉进行分类。如果我们用这些样本训练模型,系统更有可能将橙子分类为苹果,因为苹果的训练样本数量太多了。这可以称为过采样。

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

照片由像素Pixabay 拍摄

当模型与训练数据集的噪声相比过于不可预测时,会发生过度拟合。我们可以通过以下方式避免这种情况:

  1. 收集更多的训练数据。
  2. 选择具有较少特征的模型,与线性模型相比,更高次的多项式模型不是优选的。
  3. 修复数据错误,移除异常值,并减少训练集中的实例数量。

7.欠拟合训练数据

与过度拟合相反的欠拟合通常发生在模型过于简单而无法理解数据的基本结构时。就像试着穿小号的裤子。这通常发生在我们拥有较少的信息来构建一个精确的模型时,以及当我们试图用非线性信息构建或开发一个线性模型时。

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

欠拟合

减少拟合不足的主要选择有:

  1. 特征工程——为学习算法提供更好的特征。
  2. 从数据中去除噪声。
  3. 增加参数并选择强大的模型。

8.模型的离线学习和部署

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

照片由 Rakicevic NenadPexels 拍摄

机器学习工程在构建应用程序时遵循以下步骤 1)数据收集 2)数据清理 3)功能工程 4)分析模式 5)训练模型和优化 6)部署。

**哎呀!!我说**部署了吗?是的,许多机器学习实践者可以执行所有步骤,但缺乏部署技能,由于缺乏实践和依赖性问题、对业务基础模型的理解不足、对业务问题的理解以及不稳定的模型,将他们的酷应用程序投入生产已成为最大的挑战之一。

通常,许多开发人员从 Kaggle 等网站收集数据,并开始训练模型。但在现实中,我们需要为数据收集创建一个动态变化的源。离线学习或批量学习可能不适用于这种类型的可变数据。该系统经过培训,然后投入生产,无需学习即可运行。在这里,数据可能会随着动态变化而漂移。

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

在线学习

总是首选建立一个管道来收集、分析、构建/训练、测试和验证任何机器学习项目的数据集,并批量训练模型。

参考文献

**** [## 使用 Scikit-Learn、Keras 和 TensorFlow 进行机器实践学习,第二版

通过最近的一系列突破,深度学习推动了整个机器学习领域。现在,甚至…

www.oreilly.com](https://www.oreilly.com/library/view/hands-on-machine-learning/9781492032632/) [## 基本统计| Coursera

理解统计学对于理解社会和行为科学的研究是必不可少的。在本课程中,您…

www.coursera.org](https://www.coursera.org/learn/basic-statistics/)

结论

如果训练集太小,或者如果数据没有被一般化、有噪声并且被不相关的特征破坏,则系统不能很好地执行。我们经历了初学者在练习机器学习时面临的一些基本挑战。

如果你有什么建议,我很乐意听听。我很快会带着另一个有趣的话题回来。在那之前,呆在家里,保持安全,继续探索!

如果您想联系,请在LinkedIn上联系我。****

如何为独立参与者赢得数据科学黑客马拉松的 8 大实用技巧

原文:https://towardsdatascience.com/top-8-hands-on-tips-how-to-win-a-data-science-hackathon-for-independent-participants-51a7605ce669?source=collection_archive---------42-----------------------

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

DS 黑客马拉松的项目管理部分

如果知道现在 IT 领域非常有吸引力,伟大的程序员是新的摇滚明星,没有人会感到惊讶。现代工业公司和著名咨询机构到处都在谈论数字化转型。必要的 IT 员工数量逐年增长,世界各地的公司都感到能力不足,急于填补他们在 IT 部门的空缺。为了找到摇滚明星或聪明的初学者,他们提供大量的活动,如技术聚会、会议、黑客马拉松等。

去年也不例外。它充斥着面向 It 专家的各种黑客马拉松,尤其是那些涉及数据科学领域的专家。在开始之前,我为那些不熟悉黑客马拉松的人写了一篇关于目标和机制的简短解释。

黑客马拉松(hackathon)——黑客和马拉松的合成词,其中黑客指的是计算机科学领域,马拉松告诉你这是一项长期活动。

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

粗略地说,这是一场 it 专家的竞赛,主要目标是通过构建原型来解决业务问题。没有人期望在你的最终解决方案中找到高度优化的代码,例如在竞争性编程中。在黑客马拉松中,展示最简单可行的产品(MVP)来满足最终用户的需求是很重要的。通常,黑客马拉松的组织者是大公司,他们追求为他们的问题找到新的解决方案,并雇佣有才华的专家。很难想起至少一个没有人力资源人员的黑客马拉松。通常情况下,他们超级友好,想聊天,并愿意邀请采访,以防你的胜利。如果你想了解他们的公司或者空缺职位,不要害怕问他们。

传统上,黑客马拉松在组织者的办公室或租用的地方进行,如酒店会议室或共同工作空间。对于那些下定决心将整个周末奉献给疯狂的编码和对真实商业问题的调查的爱好者来说,有很多激励因素已经准备好了。

初学者可以观察他们与社区的生产网络,用真实数据(而不是精炼的 Kaggle 数据)在动手任务中挑战自己,并提高他们的团队合作技能。中层工程师和分析师可以被邀请参加面试,或者在获胜的情况下获得丰厚的报酬。

黑客马拉松吸引了具有团队合作经验的团队,以及愿意在组织者支持下加入团队的个人专家。这是为那些没有团队,但想挑战自己的人写的文章。下面,你可以找到 8 个实践技巧,它们是根据我上次的黑客马拉松定义的。我以个人身份参与其中,并遵循这些建议,我的团队设法取得了胜利,但要考虑到一种尺寸并不适合所有人。

在介绍这些之前,让我给你一个关于黑客马拉松和任务的背景。黑客马拉松的赞助商是一家国际炼油公司 Sibur。竞争主要集中在数据科学领域,并寻找 IT 专家,如数据科学、项目经理、后端和前端开发人员。团队可以从两个问题中选择一个:开发一个解决方案来优化酒店优惠券的分配,或者建立一个预测模型来预测碳化催化剂在反应器中的焦化。在这两种情况下,最终的解决方案应该由两个主要部分组成:一个基于数据分析的算法和一个显示分析模型如何工作的用户友好界面。为了构建原型,真实的历史数据(在第一种情况下是匿名的)被提供给团队。此外,参与者可以采访用户和主题专家。数据集呈现在未经处理的 CSV 文件中,手工处理。xlsx 文件并需要严格的预处理。详细的黑客马拉松描述可以在这里 和获奖名单 这里 找到,不过,这些信息仅用俄语表示。

现在你已经熟悉了背景,让我们来看看帮助我们实现目标的一些建议。

网状团队井

团队组建完成后,为所有参与者组织一次线下会议或电话会议,只是为了介绍他们自己。在会议期间,询问你的队友他们的期望,并确保你们有相同的目标。有些人可能有获胜的野心,但有些人可能只是乐于参与。当你对团队的期望充满信心时,再进一步;谈谈技巧和经验。这种热身使团队合作更有成效,并有助于消除通常在新团队中出现的障碍。我们的团队由来自不同城市的参与者组成,我们无法提前见面,所以第一次见面是通过 Skype。在电话中,我们每个人都谈了一些关于我们自己,我们的期望和我们的背景。

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

定义优势和劣势

不要急,在申请任务之前,搞清楚你的团队擅长什么;差距是什么,如何分配项目角色。再次会面,确定你的优势和劣势,以及如何分配角色。决定哪个团队成员将扮演项目经理的角色,并能够管理团队的一致性。hackathon 项目经理是团队中最重要的人物之一,因为他/她结合了团队领导者的职责并管理高速开发。他/她负责深入理解项目的时间表、团队同步和冲突的解决。在第一次通话后的几天后,我们又见面了。第二次通话更有成效,因为队友们已经互相认识了。这有助于我们选择最适合我们团队的任务,也有助于我们更好地了解彼此。

什么适合你

通常组织者会给出几个任务供选择。拿一个每个队友都可以展示自己最好的一面的机会。竞争负载应该在所有参与者之间平均分配,否则您的团队将无法及时完成任务。每个团队成员的贡献都非常重要。最合适的任务将取决于你的团队拥有什么样的技能。这样,工作量就可以平均分配,而不会偏向一两个人。在我的案例中,我们有意识地决定支持发放酒店优惠券,尽管事实上时间序列预测对数据科学家来说更有意思。如果我们选择了第二种方法,工作量就会偏向数据科学家一边,整个团队都不会参与进来。在我们有限的时间里,这将对团队的结果产生负面影响。

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

谁是利益相关者,他们的热情是什么

获胜的标准并不总是由最高分来决定。通常,组织者在没有明确定义数字指标的情况下给你即兴发挥的空间(类似于真实的商业案例)。在这种情况下,试着弄清楚谁是你的利益相关者,谁是用户,什么对他们来说是重要的。也许,用户期望你的模型有最高的准确率,但也许他们会对用户友好的界面和一些令人激动的功能感到兴奋。试着和他们交谈,问这些问题。你只有 2 天的时间来了解业务问题并展示你的解决方案。所以,最好专注于有限的几个功能。

再次冲刺

黑客马拉松是一个项目,其结果应该是一个最小可行的产品。在任何项目中,团队的每个参与者都应该清楚地了解项目的步骤和他们的贡献。此外,您的团队应该尽可能同步工作。最有可能的是,你将面对队友的不平等的经验和他们的工作速度。与此同时,你可能没有一个调整良好的沟通过程。在我们的例子中,我们每小时进行两次冲刺来使它工作。每个 sprint 都有一个明确定义的范围,每两个小时后,我们会进行一次状态检查,并解决未解决的问题。

反馈是一份礼物

假设你已经见过了你的团队,大致了解了涉众和用户的期望,并且你已经形成了一定会带来胜利的原型的愿景。尽管有一个好的开始,我还是建议你向利益相关者和用户展示你的进展。制作演示时,不要浪费时间,验证假设并寻求反馈。前端部分受用户意见影响特别大也就不足为奇了。此外,保持好奇和专注,尝试找出隐藏的需求,因为这可能是你的小丑。在我们的案例中,原型的第一个版本和最终产品具有相反的商业价值。在与用户进行了几次简短的演示后,我们不仅改变了设计,还改变了业务逻辑。我们试图在每次冲刺后展示原型,并在演示过程中验证假设。

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

使用 Git

确保团队的所有成员都熟悉 git。提前一天设置备份和部署虚拟环境。通过电子邮件共享文件让团队合作变得难以忍受。

不要忽视公开演讲(包括回答问题)

考虑到 hackathon 并不是竞争性编程,在这里你渴望编写通用的高性能代码。在演示阶段,你实际上是在销售你的产品。最有可能的是,您将有 5-10 分钟的时间来演示您的 MVP 如何工作以及如何满足业务需求。确定你的团队中谁在公开演讲时表现更好,并能清楚地回答用户和主题专家的问题。认真对待,至少排练 3 遍。花 3 个小时与团队一起排练演示演讲。同样,对任何可能的问题进行头脑风暴。准备答案。

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

原型演示

多一个建议代替结论:

超越任务思考— 尝试找出问题存在的原因,也许问题就在流程中,没有必要从技术上解决。我们最终的解决方案不仅包括一个现成的原型,还包括改进业务流程的建议。这些也有助于实现目标。

黑客马拉松不仅仅是关于找到一份有趣工作的可能性。它还为初学者创造机会,通过使用真实数据来挑战自己,并与社区和专家见面。不要害怕在没有团队的情况下参与。赢不赢无所谓。你将获得可以放入简历的真实经历,并且会被 HR 注意到。如果你已经参加了黑客马拉松,并且你愿意给出建议,请分享它。

来自活动的团体照片

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

Sibur hack aton 的决赛选手和参赛者

Jupyter 笔记本中的 8 大魔法命令

原文:https://towardsdatascience.com/top-8-magic-commands-in-jupyter-notebook-c1582e813560?source=collection_archive---------13-----------------------

通过学习最有用的命令来提高您的生产力

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

有哪些神奇的命令?

神奇命令是特殊的命令,可以帮助您运行和分析笔记本中的数据。它们添加了一个特殊的功能,这是 python 代码或 jupyter notebook 接口无法直接实现的。

在代码中很容易发现神奇的命令。如果它们在一行代码中,则按%处理;如果它们写在几行代码中,则按%%处理。

在本文中,我将列出最常用的神奇命令,并展示如何利用它们提供的功能的实际例子。

1。列出所有魔法命令。

让我们从列出所有你可以在笔记本上使用的魔法命令开始。

%lsmagic

如果您在笔记本中运行上面的行,您应该会得到一个类似于下面截图的列表。这些是您可以使用的所有命令。在本文中,我们将只讨论其中的一小部分。

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

2。运行一个文件。

您可以使用以下代码从 jupyter 笔记本中运行 python 文件。

%run <file name>

假设您有一个包含以下内容的文件 hello.py :

def hello_world():
    print('Hello, world')hello_world()

您可以在笔记本中运行以下命令来运行该文件。

%run hello.py

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

3。得到一个执行时间。

您可以使用 time 命令为代码的执行计时。

%%time<your code>

让我们生成 1 000 000 个随机数,看看需要多长时间。

%%time
import random
for i in range(0, 1000000):
    random.random()

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

4。列出所有变量。

有一个神奇的命令允许你列出当前笔记本中定义的所有变量。

%who

您可以在命令名后传递一个数据类型,以便只列出特定数据类型的变量。

为了说明这一点,让我们定义一个字符串变量和两个整型变量。

var_1 = 1
var_2 = 'hello'
var_3 = 100

现在我们可以列出所有字符串:

%who str

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

或所有带有以下符号的整数:

%who int

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

5。获取变量的详细信息。

一旦我们知道了变量名,我们就可以检查存储在特定变量名中的对象的详细信息。为了做到这一点,您可以使用以下命令。

%pinfo <variable>

让我们回到上一节中使用的三个变量的例子,以便更好地说明它。

var_1 = 1
var_2 = 'hello'
var_3 = 100

现在让我们检查 var_1。

%pinfo var_1

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

如您所见,您获得了关于变量的所有重要信息,如类型、字符串形式和 docstring。

让我们检查一个字符串变量。

%pinfo var_2

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

你得到的信息细节和 int 一样,另外还有字符串的长度。

6。获取和设置环境变量。

您可以使用以下命令获得环境变量的列表。

%env

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

此外,您还可以通过指定变量名及其值来设置笔记本的环境变量。

让我们添加一个名为 NEW_VAR 的新环境变量:

%env NEW_VAR=Users/konki

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

现在让我们检查一下它是否设置正确。您可以在%env 后面添加一个变量名,以便只检查指定的变量,而不是显示所有变量。

%env NEW_VAR

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

7 .。在 jupyter 笔记本中显示 matlpotlib 图形

如果您使用的是旧版本的 Jupyter 笔记本,您需要添加这一行代码,以便用 matplotlib 创建的图形可以在笔记本本身中呈现。

%matplotlib inline

在较新的版本中,不再需要这样做。设置它的代码在 Jupyter 笔记本启动时运行。

你仍然可以在其他人的代码中看到这个神奇的命令,因为不是每个人都知道这个更新。

8。加载外部文件。

您可以使用 load 命令将外部文件加载到单元格中。

%load <file_name>

如果您已经有一个定义了某些函数的 python 文件,并且需要在当前笔记本中使用它们,那么这是一个非常有用的命令。

为了进行说明,我们以文件 rectangle.py 为例,它由以下代码组成。

def calculate_area(len, height):
    return len * height * 2

您可以通过执行下面的代码来加载文件内容。

%load rectangle.py

一旦你运行了这个单元,你应该得到这个单元中文件的内容。

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

现在只需运行加载了代码的单元格,您就可以使用在原始文件中定义的函数了。现在可以计算矩形面积了。

calculate_area(2,4)

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

总结

在本文中,您已经了解了 jupyter 笔记本中最常用的魔法命令。现在是你的时间了,打开笔记本,练习你在这里学到的东西。编码快乐!

原载于 about data blog . com:jupyter 笔记本中的 8 大魔法命令2020 年 11 月 11 日。

PS:我正在 Medium 和aboutdatablog.com上撰写深入浅出地解释基本数据科学概念的文章。你可以订阅我的 邮件列表 在我每次写新文章的时候得到通知。如果你还不是中等会员,你可以在这里加入

下面还有一些你可能喜欢的帖子

* [## 关于 jupyter 笔记本你不知道的 9 件事

用这些建议提高你的工作效率

towardsdatascience.com](/9-things-you-did-not-know-about-jupyter-notebook-d0d995a8efb3) [## 9 大 Jupyter 笔记本扩展

改进笔记本电脑功能,提高您的工作效率

towardsdatascience.com](/top-9-jupyter-notebook-extensions-7a5d30269bc8) [## 9 熊猫有效数据分析的可视化技术

学习如何使用折线图、散点图、直方图、箱线图和其他一些可视化技术

towardsdatascience.com](/9-pandas-visualizations-techniques-for-effective-data-analysis-fc17feb651db)*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值