顶级数据科学工具和语言
意见
您应该使用哪一种,为什么?
托德·夸肯布什在Unsplash【1】上的照片。
目录
- 介绍
- Python、R、SAS 和 SQL
- Matplotlib,Seaborn,tqdm
- sklearn、NumPy 和熊猫
- Jupyter nbextensions
- Tableau 和谷歌数据工作室
- 摘要
- 参考
介绍
本文的目标是给出顶级数据科学工具和语言的概述。我要么是在其他人中最常使用这些工具,要么是和经常使用它们的人一起工作过。有几个独特的工具是非常有益的,不是每个人都知道,另外,我将在稍后讨论。我将为我的例子给出一些用例,这样你就能明白为什么这些工具和语言如此有价值。我以前写过一些关于这些工具和语言的文章,所以在本文中,我将添加更多的信息和新的信息。
如果您想了解更多关于 Data Scientist 的顶级工具和语言,以及为什么应该使用它们,请继续阅读。
Python、R、SAS 和 SQL
我使用 Python 最多,其次是 R 和 SAS 编程。尤其是在学术环境中,我已经使用了 R 和 sa。我还发现它们在我最初的数据科学角色中有一些很好的用途。对于 SQL,出于数据分析和数据科学的目的,我在几乎每个角色中都使用过它。
计算机编程语言
对于每个角色,我看到越来越多的数据科学家使用 Python。我认为这种增长和专注于一种特定语言的原因是这种语言在业务中是可扩展的,同时也倾向于更多的合作机会。
例如,当我使用 Python 时,我更有可能不仅能与其他数据科学家合作,还能与机器学习和软件工程师合作。
如果我要使用 R 和 SAS,我很可能不得不重构我的代码,以便它可以被业务中已经存在的软件过程和系统解释和吸收。当然,每个公司都是不同的,有些公司在他们的堆栈中更喜欢 R 或 SAS 而不是 Python。同样需要注意的是,在我的大多数面试中,面试官更喜欢 Python 代码。
稀有
当我第一次在学术和研究环境中实践数据科学时,我发现这种语言的用处最大。然而,当我在 R 专业工作时,我从它对统计和测试的关注中受益匪浅。如果你想进行显著性测试、独特的可视化和 A/B 测试,那么 R 可能是首选。
斯堪的纳维亚航空公司
我在 SAS 上的经历与 r 类似。我在进行实验和显著性测试时受益于 SAS。它也有一些令人难以置信的独特和强大的可视化汇总统计数据,如 Q-Q 图,残差,直方图,和库克的 d。
结构化查询语言
SQL 被数据分析师、数据科学家、商业智能分析师、软件工程师和数据工程师广泛使用。为了您的数据科学事业,我强烈建议您对它有一个基本的了解。它与 Python 的相似之处在于,它是一种跨职能的方法,为您的业务传达指标。
Matplotlib,Seaborn,tqdm
对于 Python 中的可视化工具,我用得最多的就是这些。Matplotlib 和 seaborn 携手并进,而 tqdm 是一种通过显示进度条来描述代码循环的简单方法。
Matplotlib
Matplotlib【4】是一个有用的工具和流行的库,用于从数据中创建有益的可视化,甚至可以是交互式的。我通常在开发图表、绘图和直方图以进行快速分析时使用这个库。有时你需要为你自己创建可视化,而不是为其他人,比如利益相关者,所以像 Tableau 这样更复杂的工具在这些情况下是不必要的。
海生的
如果我想创建更具视觉吸引力的图形,我会使用 Seaborn。这个库有更多的选项,您可以用更多的统计数据来描述您的数据。Seaborn 制作的图形还让我想起了一些 SAS 图形,这些图形是在调用某些函数时自动创建的,比如回归模型的诊断图。
tqdm
如果你和我一样好奇并且痴迷于检查你的 Python 循环的状态, tqdm [6]也适合你。你可以直观地看到你的进度的实时更新,这样你就可以知道在它完成之前你还有多少时间,并且可以让你知道你可以花多长时间专注于其他事情。
sklearn、NumPy 和熊猫
这些工具被广泛使用是有原因的。对于使用 Python 的数据科学家来说,它们是必不可少的。
sklearn
对于简单而强大的机器学习来说,sk learn【8】是一条可行之路——也称为 scikit-learn。以下是 sklearn 的一些亮点:
- 分类
- 回归
- 聚类
- 尺寸缩小
- 型号选择
- 预处理
NumPy
NumPy【9】使用起来也很简单,可以用于数据帧计算,这是很多数据科学分析的基础。
NumPy 的常见功能包括但不限于:
- 阵列
- 分度
- 切片
- 复印
- 迭代
- 拆分
- 排序
熊猫
我想说,大多数数据科学家使用 pandas,因为它是在项目开始时对数据进行数据分析的地方,而最重要的部分是你可以开发 pandas 数据框架。这些数据帧被其他几个库接收,因此您可以更容易地对它们执行机器学习算法。
熊猫【10】的一些有用部分包括但不限于:
merginggroupingreshapinghead/tailcalculationsdescriptive statistics
Jupyter nbextensions
Alexis Antonio 在Unsplash【11】上拍摄的照片
如果你经常使用 Jupyter 笔记本,你可以添加nb 扩展【12】让你的笔记本更有条理。在您的 Jupyter 笔记本中,您可以使用以下代码添加 n 扩展:
!pip install jupyter_contrib_nbextensions!jupyter contrib nbextension install
nb 扩展选项卡。作者截图[13]。
这是当你重启你的内核/退出你的终端并在你的终端中重新输入 jupyter notebook 来重新启动它后,你的笔记本看起来会是什么样子。上面的截图显示了所有可能的扩展,你可以通过点击它们来添加。您还需要退出笔记本,然后重新打开它以查看所应用的更改。我推荐编辑器中的代码折叠和代码折叠。下面是我的笔记本在 codefolding 扩展之前的样子:
在代码折叠之前。作者截图[14]。
如你所见,这个函数看起来很正常,但是下图是应用了代码折叠之后的图像。
已应用代码折叠。作者截图[15]。
但是点击这些箭头之后会发生什么呢?他们破坏了功能。现在想象一下,你有一个很长的函数或字典,有几百行,你必须上下滚动,看着你自己的笔记本会有压力。这个代码折叠扩展肯定会给你的笔记本一个更整洁的外观。下面是该函数折叠后的样子:
折叠功能。作者截图[16]。
我希望这个工具是独一无二的。我知道有些人可能会过度讨论其他工具,但总有一些新来的数据科学家可能从未听说过这些工具。但对我来说,这个特殊的工具对我来说是新的,即使在 Jupyter Notebook 中编码多年之后。
Tableau 和谷歌数据工作室
Tableau【17】也是一个众所周知的工具,然而,一些数据科学家可能只使用定制编码来创建他们的可视化。Google Data Studio【18】不太常用,但它甚至比 Tableau 更容易使用,而且是免费的。
(舞台上由人扮的)静态画面
这个工具对于数据分析师和产品经理来说非常有用。对于想要执行非常可视化的探索性数据分析,以及创建显示您的数据科学模型指标的仪表板的数据科学家来说,它也是有益的。
谷歌数据工作室
Google Data Studio 易于使用,您可以从连接数据源开始,无论是来自实时 SQL 平台还是 CSV 文件。这里有一些我以前制作的图表,可以作为你可能用自己的数据创建的例子。我用的数据是哑数据。这里有五个你可以想象的例子:
谷歌数据工作室。作者截图[19]。
Google Data Studio 包括许多方法,无论是在模型之前还是之后,您都可以可视化您的数据。
这是另一组你也可以制作的可视化效果:
谷歌数据工作室。作者截图[20]。
使用该工具的另一个很棒的特性是,您可以通过滚动图表和图形,以及点击仪表板中的下拉菜单来使其具有交互性。这些仪表板也易于共享和保存。作为一名数据科学家,当与利益相关者共享您的仪表板时,这将被证明是有益的,因为他们以后会自己使用它们。
摘要
我们讨论了数据科学家的一些顶级工具和语言。如果你目前已经在使用它们或者它们对你来说是全新的,我希望你已经学到了一些新的东西。此外,我还包括了一些更独特或更少为人知的工具,如 tqdm、Jupyter nbextensions 和 Google Data Studio。
作为一名数据科学家,您会遇到各种项目,这些项目需要大量的工具和语言。关键是你要学会一些,并成为其他方面的专家。你的工具包将使你从其他数据科学家中脱颖而出,并使你成为更具竞争力的面试申请者和更具合作精神的员工。
总结一下,这里是数据科学家的顶级工具和语言:
Python, R, SAS, and SQLMatplotlib, Seaborn, tqdmsklearn, NumPy, and pandasJupyter nbextensionsTableau and Google Data Studio
感谢您的阅读!我感谢你的时间。欢迎在下面发表评论,并就您作为数据科学家或机器学习工程师所使用的常用工具和语言展开讨论。请参见参考资料,获取这些数据科学工具文档的快速链接。
参考
[1]由托德·夸肯布什在 Unsplash 上拍摄的照片,(2014)
[2]照片由 Katy Wilkens 在 Unsplash 上拍摄,(2017)
[3]照片由 M. B. M. 在Unsplash(2018)上拍摄
[4]Matplotlib2002–2012 John Hunter、Darren Dale、Eric Firing、Michael Droettboom 和 Matplotlib 开发团队;2012–2020 Matplotlib 开发团队。
[6]卡斯珀·达·科斯塔-路易斯@卡斯珀德尔, tqdm ,(2015–2020)
[7]照片由戴安娜·帕克豪斯在Unsplash(2018)上拍摄
[8] scikit-learn, scikit-learn ,(2020)
[9]2019 年至 2020 年
[10]熊猫开发小组。,熊猫,(2008–2020)
[11] Jupyter Contrib 团队。jupyter _ contrib _ nb extensions(2015–2018)
[12]Alexis Antonio 在 Unsplash 上拍摄的照片,(2018)
[13] M.Przybyla,nbextensions 截屏,(2020 年)
[14] M.Przybyla,在代码折叠截屏之前,(2020 年)
[15] M.Przybyla,代码折叠应用截屏,(2020 年)
[16] M.Przybyla,折叠功能截图,(2020)
[17] TABLEAU SOFTWARE,LLC,一家 SALESFORCE 公司,TABLEAU,(2003 年至 2020 年)
[18]谷歌,谷歌数据工作室,(2020)
[19]谷歌数据工作室截屏作者,(2020)
[20]谷歌数据工作室。作者截图,(2020)
熊猫 1.0 的主要特性
您今天就可以开始使用的新改进
注:熊猫 1.0.0rc 发布于 1 月 9 日。之前的版本是 0.25
Pandas 的第一个新的主要版本包含了许多优秀的特性,包括更好的数据帧自动摘要、更多的输出格式、新的数据类型,甚至还有一个新的文档站点。
完整的发行说明可以在新的文档网站上获得,但是我认为一个不太技术性的概述也会有所帮助。
要使用新版本,你可以使用pip
轻松升级熊猫。在写这篇文章的时候,Pandas 1.0 仍然是一个发布候选版本,这意味着安装它需要明确指定它的版本。
pip install --upgrade pandas==1.0.0rc0
当然,升级可能会破坏您的一些代码,因为这是一个主要版本,所以您应该小心!
这个版本的 Pandas 也放弃了对 Python 2 的支持。使用熊猫 1.0+至少需要 Python 3.6+,所以要确保你的pip
和python
使用的是正确的版本。
$ pip --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)$ python --version
Python 3.7.5
你可以确认一切工作正常,熊猫使用的是正确的版本。
>>> import pandas as pd
>>> pd.__version__
1.0.0rc0
使用 DataFrame.info 实现更好的自动汇总
我最喜欢的新特性是改进的DataFrame.info
方法。它现在使用一种可读性更强的格式,使您的数据探索过程更加容易。
>>> df = pd.DataFrame({
...: 'A': [1,2,3],
...: 'B': ["goodbye", "cruel", "world"],
...: 'C': [False, True, False]
...:})
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 3 non-null int64
1 B 3 non-null object
2 C 3 non-null object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
降价表的输出格式
我下一个最喜欢的特性是用新的DataFrame.to_markdown
方法将数据帧导出到 markdown 表的能力。
>>> df.to_markdown()
| | A | B | C |
|---:|----:|:--------|:------|
| 0 | 1 | goodbye | False |
| 1 | 2 | cruel | True |
| 2 | 3 | world | False |
这使得通过 github gists 在 Medium 等地方显示表格变得更加容易。
布尔和字符串的新数据类型
Pandas1.0 还为布尔和字符串引入了实验性的数据类型。
由于这些变化是实验性的,数据类型的 API 可能会稍有变化,所以您应该小心使用它们。但是 Pandas 建议在任何有意义的地方使用这些数据类型,未来的版本将提高特定类型操作的性能,如正则表达式匹配。
默认情况下,Pandas 不会自动将您的数据强制转换成这些类型。但是如果你明确告诉熊猫这样做,你仍然可以使用它们。
>>> B = pd.Series(["goodbye", "cruel", "world"], dtype="string")
>>> C = pd.Series([False, True, False], dtype="bool")
>>> df.B = B, df.C = C
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 A 3 non-null int64
1 B 3 non-null string
2 C 3 non-null bool
dtypes: int64(1), object(1), string(1)
memory usage: 200.0+ bytes
注意Dtype
列现在如何反映新的类型string
和bool
。
新的 string dtype 最有用的好处是,您现在可以从 DataFrame 中只选择字符串列。这使得只对数据集的文本组件构建分析变得更快。
df.select_dtypes("string")
以前,只能通过显式使用名称来选择字符串类型列。
更多新类型的文档可在这里获得。
感谢阅读!如果您觉得这有用或有趣,我还写了其他 Python 和数据科学技巧,请关注我,获取更多类似本文的文章。
Python 的对象序列化库简介
towardsdatascience.com](/how-to-reuse-your-python-models-without-retraining-them-39cd685659a5)
面向所有人的顶级谷歌人工智能工具
使用谷歌人工智能中心将想法变为现实
谷歌人工智能将人工智能的好处带给每个人(来源)
“我们希望使用人工智能来增强人们的能力,使我们能够完成更多的工作,并让我们花更多的时间进行创造性的努力。”
**——杰夫·迪恩,**谷歌高级研究员
称谷歌只是一个搜索巨头是一种保守的说法,因为它从一个单纯的搜索引擎成长为几个关键 it 领域创新的驱动力是如此之快。在过去的几年里,谷歌已经在几乎所有的数字领域扎下了根,无论是智能手机、平板电脑、笔记本电脑等消费电子产品,还是 Android 和 Chrome OS 等底层软件,或者是谷歌人工智能支持的智能软件。
谷歌一直在智能软件行业积极创新。凭借其在搜索和分析方面的专业知识,多年来获得的数据帮助谷歌创造了各种工具,如 TensorFlow 、 ML Kit 、 Cloud AI 以及其他许多工具,试图了解人工智能的能力。
谷歌人工智能专注于将人工智能的好处带给每个人。
接下来的章节将更加详细地介绍谷歌如何将其工具套件针对特定的用户群体,如开发人员、研究人员和组织,以及他们如何从谷歌的人工智能工具中受益。
面向开发者
随着越来越多的开发人员投身于人工智能领域,看到了它的潜力,谷歌通过提供几个强大的工具来满足他们的动态需求,例如:
●张量流
革命来了!欢迎使用 TensorFlow 2.0。
TensorFlow 是谷歌向世界提供的端到端开源深度学习库,利用机器学习来改善其各种产品提供的服务。使用 TensorFlow 的工具和库套件,开发人员可以建立高度精确和定义良好的机器学习模型。
TensorFlow 可以在各种设备上提供平滑的模型构建和灵活的部署,使创建和部署复杂的人工智能模型变得轻而易举。有了强大的社区支持,无论你是新手还是有经验的人,都有大量的想法让你开始。
这里让我们看一些样品。
准备好参加【2020 年 TensorFlow 开发峰会
为 2020 年 TensorFlow 开发峰会做好准备(来源
● ML 套件
ML Kit 将谷歌的机器学习专业知识以一个强大且易于使用的包的形式带给移动开发者(来源)。
ML Kit 是一个移动专用 SDK ,目前可用于 Android & iOS,以利用谷歌的机器学习到你的移动应用程序中的好处,并准备它们来解决现实世界的问题。 ML 套件可以帮助你在底层机器学习技术驱动的任务中取得成功,比如:
● 语言识别
将文本传递给 ML 工具包- >获取文本中检测到的语言
这支持超过 100 种语言,包括印地语,阿拉伯语,中文和更多!
在此找到支持语言的完整列表:
[## ML 工具包语言标识:支持的语言| Firebase
编辑描述
firebase.google.com](https://firebase.google.com/docs/ml-kit/langid-support)
● 文本识别
点击图片->获取图片中的文本
ML Kit 提取图片中出现的任何文本( source )
● 图像扫描和贴标
点击图片->获取图片中的对象列表
● 人脸识别
点击图片->获取图片中的所有面
可以在 ML 工具包中检测人脸(来源)
● 智能回复
将消息传递到 ML 工具包->获得 3 个智能回复
ML 套件为您提供 3 个智能回复
● 条形码扫描
ML 套件支持从条形码中扫描和提取信息(来源)
点击图片->从扫描的条形码/二维码获取信息
● 与 TensorFlow Lite 的定制模型集成
借助适用于各种用例的设备上或云实施的现成 API,您可以轻松地将 ML 模型应用于您的数据,并通过与 TensorFlow Lite 的自定义集成选项来跟踪应用的性能。
此选项允许您将 TensorFlow Lite 模型添加到 ML 工具包中并使用它们(源)
●谷歌开源
Google 开源把开源的所有价值带给 Google,把 Google 的所有资源都给开源(来源)
由于每天都有更新更好的软件被开发出来,所以需要不断地将它提升到一个新的水平。一旦开发人员开始创建只开放源代码的代码,那么社区就可以积极参与并帮助改进和扩展它。有了免费的代码,开发人员可以通过访问其存储库来修改和扩展代码,通常在这个过程中解决复杂的问题。
每日秀(来源)
谷歌承诺通过鼓励开发者向任何对其背后想法感兴趣的人公开他们的代码来团结开发者。谷歌提供了大量免费和开源项目 ,比如:
● ClusterFuzz,在过去两年里,它在几个项目中发现了超过 11000 个漏洞。
●auto slip,智能重构视频以适应现代设备。
● Blockly,通过拖放代码块提供简单的编码,甚至可以用来创建业务逻辑。
● 公平性指标
谷歌在其开源倡议中提供了公平指标。它是一种工具,提供量化机器学习系统中公平性的指标。由 TensorFlow 提供支持,目的是消除机器学习系统的任何偏见,同时提高其公平性,减少影响系统和组织的不公平偏见。由于能够随着需求的增长而扩展,谷歌在设计时考虑到了各种业务。
使用公平性指标来可视化公平性评估的指标(来源)。
●合作实验室
开始用 Google Colaboratory 编写 Python(来源)
Colaboratory 或 Colab ,简而言之,是 Python 的在线代码编辑器和编译器。你可以把它想象成 Google Docs,但对于 Python 来说,它是由 Google Drive 等提供的存储能力支持的。它相对易于使用,消除了在多个用户之间共享配置的麻烦,简化了协作流程。它还提供了远程处理您的代码的能力,并提供了为代码片段的详细解释创建降价的选项。
想了解更多关于 Google Colab 的信息,请观看视频
开始使用谷歌合作实验室(来源
为研究人员
在进入一个新的研究领域时,广泛的研究是绝对必要的。利用现有模型生成的全面而丰富的数据集,并向用户公开,Google 通过提供以下工具简化了获取这些数据集的过程:
● 谷歌数据集
对于每一个机器学习模型,根本的问题是用正确的数据训练它。Google Datasets 通过提供数据集来解决这个问题。
谷歌数据集是由谷歌管理的数据集集合,通过分析研究人员的广泛兴趣定期更新。
谷歌提供了相当广泛的数据集类别,包括图像、转录的音频、视频和文本。针对具有不同使用案例的各种用户,每个类别都有数据集的详细介绍,并带有下载链接以便于访问。
一旦用户下载数据集并在数据集上训练他们的模型,他们就可以为现实世界的场景准备他们的模型。可以通过谷歌数据集搜索来搜索更多的数据集。
● 谷歌数据集搜索
随着互联网上的每个模型生成其数据集,谷歌通过提供搜索功能,帮助简化了与互联网上的其他用户共享数据集的过程。就像它在网上搜索任何东西的搜索服务一样,谷歌的数据集搜索缩小了你要寻找的数据集的搜索范围。从那里开始,您可以了解更多关于数据集的信息,并得到它。
数据为王,谷歌知道这一点
以下是您需要了解的关于世界上最大的数据仓库的信息
towardsdatascience.com](/google-just-published-25-million-free-datasets-d83940e24284)
● 众包
谷歌的另一项举措是通过向用户提供有趣的挑战来提高其数据集的准确性,要求他们识别各种类别的图像,如绘画、字母、报纸、插图等等。
从这些类别中,贡献者可以从提供的选择中识别和标记图片,以改善谷歌的服务。如果你有这种竞争精神,一旦你开始做出贡献,你将被授予一个有趣的徽章和里程碑。
通过 Google Crowdsource(source)改进你的产品
Google Crowdsource 不仅处理图像,还处理各种其他部分,比如:
-手写识别
-面部表情
-翻译
-翻译验证
-图像标题
-图像标签验证
为组织
通过密切监控市场,谷歌可以确定其服务如何将企业的潜在里程碑转变为已实现的目标。谷歌为企业提供工具,通过采用人工智能和人工智能的专业知识,可以简化他们的工作流程,达到新的高度。从精确的数据集、定制模型、高性能云服务等等,谷歌可以为各种规模的企业提供很多东西。
一些组织已经受益于谷歌的人工智能工具,例如【Lyft】马克斯·凯尔森易贝 和 两个适马 等等。组织可以从以下谷歌人工智能工具中受益:
● 云 TPU
TPU·V2(来源:谷歌云平台博客)
随着所有的数字运算,机器学习需要一个高性能的系统。正因为如此,谷歌建立了它的 TPU ,这是张量处理单元的缩写,它就是为这个服务的。通过为企业提供所需的能力,而无需任何内部设置,云 TPU 使企业能够通过降低硬件成本为客户提供最佳服务。
企业可以确定他们首选的云 TPU,从要求较低的任务到要求最高的任务,并从以下提供的选项中选择一个:
●云 TPU v2
●云 TPU v3
●云 TPU v2 吊舱
●云 TPU v3 Pod
● 云 AI
云人工智能使你能够将机器学习能力应用到你的业务中,以便它随时准备迎接新的挑战。使用云人工智能,企业可以使用谷歌提供的现有模型,或者根据自己的喜好定制一个模型。
Umdlibrary Yes GIF 作者凯瑟琳·马丁图书馆
云人工智能分为三个部分。云人工智能包括—
-人工智能中枢
提供了一个现成的人工智能组件的集合,并提供了在模型上共享和实验的选项。
- 人工智能积木
允许开发人员将对话、视觉、语言、结构化数据和云自动化功能添加到他们的应用程序中。
- AI 平台
人工智能平台通过人工智能平台笔记本、深度学习容器、数据标签服务、持续评估、人工智能平台培训等多种服务,使数据科学家、工程师和开发人员能够快速将他们的想法转化为部署。
有趣的阅读—
[## 谷歌云人工智能从云视觉 API 中移除性别标签,以避免偏见
谷歌云人工智能正在用它的云视觉 API 移除给图像中的人贴上“男人”或“女人”标签的能力
venturebeat.com](https://venturebeat.com/2020/02/20/google-cloud-ai-removes-gender-labels-from-cloud-vision-api-to-avoid-bias/)
3。云汽车
Cloud AutoM L 被 Disney 、 Imagia 、 Meredith 等热门品牌使用,可以轻松训练定制机器学习模型,生成高质量的训练数据。通过与大量其他谷歌服务的完全集成,以及从一个服务到另一个服务的无缝转移过程,您的企业可以通过最大化您的产出来实现其全部潜力。
现在就在人工智能前沿会议上获取门票,聆听这位演讲者的演讲。
medium.com](https://medium.com/aifrontiers/an-unassuming-genius-the-man-behind-google-brains-automl-4ddc801f3e9b)
开始使用 AutoML( 来源)
结论
人工智能出现的时间相对较短,但随着时间的推移,我们发现的进步和应用是惊人的。看看人工智能的好处,企业可以通过早期采用人工智能和机器学习并进行试验来获得优势。
谷歌一直在这一领域不断创新,为包括开发人员、研究人员和企业在内的各种用户提供了多种工具,如 ML Kit 、 TensorFlow 、 Fire Indicators 等。通过鼓励使用其云人工智能工具,谷歌正试图推动人工智能和人工智能在现实世界中的存在。
其目的是为用户提供评估、协作、改进和部署其定制的机器学习模型的精确方法,以提高生产力和改善服务。
更多资源
hacker noon——TensorFlow 死了,tensor flow 万岁!
颤振社区— [颤振+MLKit = ❤](http://Flutter +MLKit = ❤)
走向数据科学——Google Colab 入门
数据科学中心—https://www . datascience Central . com/profiles/blogs/top-8-Google-ai-tools
谷歌人工智能——https://ai.google/
关于作者
克莱尔 D 。是Digitalogy**—**的内容制作者和营销人员,这是一个技术采购和定制匹配市场,根据全球各地的特定需求,将人们与预先筛选的&顶尖开发人员和设计师联系起来。在LinkedinTwitterinsta gram上连接 Digitalogy 。
用于聚类的顶级机器学习算法
如何找到数据的底层结构
聚类是一种对一组数据点进行分组的方法,将相似的数据点分组在一起。因此,聚类算法寻找数据点之间的相似或相异之处。聚类是一种无监督的学习方法,因此没有与数据点相关联的标签。聚类算法试图找到数据的底层结构。
有不同的方法和算法来执行聚类任务,这些任务可以分为三个子类别:
- 基于分区的聚类
- 层次聚类
- 基于密度的聚类
所有这些方法都旨在将数据分组到簇中。他们使用的方法略有不同。我将用每种方法的通用算法详细解释每种方法。在开始这个话题之前,我想指出聚类和分类之间的区别。
聚类 vs 分类
- 分类任务中的观察值(或数据点)有标签。根据一些测量值对每个观察值进行分类。分类算法试图对观测值的测量值(特征)和它们的指定类别之间的关系进行建模。然后,模型预测新观察的类别。
- 聚类中的观察值(或数据点)没有标签。我们希望该模型能够在数据集中找到结构,以便可以将相似的观察结果分组到聚类中。我们基本上要求模型标记观察值。
基于分区的聚类
Shashank Sahay 在 Unsplash 上拍摄的照片
基于分区的聚类技术试图根据应用于数据点的距离度量来创建数据分区。这种方法最常见的算法是 k 均值聚类。
k-均值聚类旨在将数据划分为 k 个聚类,使得同一聚类中的数据点相似,而不同聚类中的数据点相距较远。
两点的相似性由它们之间的距离决定。
测量距离的方法有很多。欧几里德距离(p = 2 的闵可夫斯基距离)是最常用的距离度量之一。
K-means 聚类试图最小化一个类内的距离,最大化不同类之间的距离。K-means 算法不能确定聚类数。我们需要在创建 KMeans 对象时定义它,这可能是一项具有挑战性的任务。
K-means 是一个迭代过程。它建立在期望最大化算法的基础上。确定集群数量后,它通过执行以下步骤来工作:
- 为每个簇随机选择质心(簇的中心)。
- 计算所有数据点到质心的距离。
- 将数据点分配给最近的聚类。
- 通过取聚类中所有数据点的平均值,找到每个聚类的新质心。
- 重复步骤 2、3 和 4,直到所有点收敛并且聚类中心停止移动。
注意:初始质心是随机选择的,这可能会导致最终的聚类有些不同。为了解决这个问题,scikit learn 提供了 n_init 参数。k-means 算法以不同的初始质心运行“n_init”次,并且最终结果将根据 n_init 次连续运行来确定。
优点:
- 容易理解
- 相对较快
- 可扩展用于大型数据集
- 能够以一种聪明的方式选择初始质心的位置,从而加速收敛
- 保证收敛
缺点:
- 集群的数量必须预先确定。K-means 算法无法猜测数据中存在多少个聚类。确定集群的数量可能是一项具有挑战性的任务。
- 只能画线性边界。如果数据中存在非线性结构来分隔组,k-means 将不是一个好的选择。
- 随着样本数量的增加而变慢,因为在每一步,k-means 算法都会访问所有数据点并计算距离。另一种方法是使用数据点的子集来更新质心的位置(即 sk learn . cluster . minibatchkmeans)
- 对异常值敏感
层次聚类
塞缪尔·查伦在 Unsplash 上拍摄的照片
这种方法通过构建集群的层次结构来工作。分层聚类意味着通过迭代分组或分离数据点来创建聚类树。有两种类型的分层聚类:
- 凝聚聚类
- 分裂聚类
分层聚类的优点之一是我们不必指定聚类的数量(但是我们可以)。
聚集聚类是一种自下而上的方法。每个数据点首先被假定为一个单独的聚类。然后迭代地组合相似的聚类。让我们看一个例子来解释清楚这个概念。
我们有一个由 9 个样本组成的数据集。我选择与这些样本相关的数字来演示相似性的概念。在每次迭代(或级别)中,最接近的数字(即样本)被组合在一起。如下图所示,我们从 9 个集群开始。最接近的在第一级被组合,然后我们有 7 个集群。与蓝线相交的黑线的数量代表簇的数量。
树突图
上图称为树状图,这是一个表示基于树的方法的图表。在层次聚类中,树状图用于可视化聚类之间的关系。
随着我们往上走,随着更多样本的合并,聚类的数量会减少。在级别 6 之后,所有样本被合并到一个大的聚类下。
层次聚类的优点之一是我们不必预先指定聚类的数量。但是,将所有数据点合并到一个聚类中是不明智的。我们应该在某个时候停止组合集群。Scikit-learn 为此提供了两个选项:
- 达到一定数量的簇后停止( n_clusters )
- 设置联动的阈值(距离 _ 阈值)。如果两个聚类之间的距离超过阈值,这些聚类将不会被合并。
分裂聚类在现实生活中并不常用,所以我将简单地提一下。一个简单而清晰的解释是,分裂性聚集与聚集性聚集相反。我们从一个包含所有数据点的巨大集群开始。然后数据点被分成不同的簇。这是一种自上而下的方法。
如果基础数据具有某种层次结构,分层聚类是有用的,并且会给出更好的结果。
分层聚类的一些常见用例:
- 遗传或其他生物数据可以用来创建一个树状图,以代表突变或进化水平。种系发生树用于展示基于相似性和差异性的进化关系。
- 层次聚类也用于对文本文档进行分组。
- 层次聚类的另一个常见用例是社交网络分析。
- 层次聚类也用于离群点检测。
优点
- 不需要预先指定集群的数量。必须为 k-means 算法指定聚类数。
- 借助于树状图,它很容易实现和解释。
- 总是生成相同的聚类。k-均值聚类可能会产生不同的聚类,这取决于质心(聚类的中心)是如何初始化的。
缺点
- 与 k-means 相比,这是一种较慢的算法。分层聚类需要很长时间来运行,尤其是对于大型数据集。
基于密度的聚类
基于分区和层次聚类技术对于正常形状的聚类非常有效。然而,当涉及到任意形状的聚类或检测异常值时,基于密度的技术更有效。
请考虑以下数字:
这些图中的数据点以任意形状分组或者包含异常值。基于密度的聚类算法在发现高密度区域和离群点方面非常有效。对于某些任务来说,检测异常值是非常重要的,例如异常检测。这种方法最常用的算法之一是 DBSCAN。
DBSCAN 代表den sity-basspartialcillumination ofaanoise。它能够找到任意形状的聚类和带有噪声的聚类(即异常值)。
DBSCAN 背后的主要思想是,如果一个点靠近来自该簇的许多点,则该点属于该簇。
DBSCAN 有两个关键参数:
- eps :指定邻域的距离。如果两点之间的距离小于或等于 eps,则认为这两点是相邻的。
- minPts: 定义一个聚类的最小数据点数。
基于这两个参数,点被分类为核心点、边界点或异常点:
- **核心点:**如果一个点在其半径为 eps 的周围区域内至少有 minPts 个数的点(包括该点本身),则该点为核心点。
- **边界点:**如果一个点可以从一个核心点到达,并且其周围区域内的点数少于 minPts,那么这个点就是边界点。
- **离群点:**如果一个点不是核心点并且从任何核心点都不可达,那么这个点就是离群点。
这些观点可以用形象化来更好地解释。下图摘自维基百科:
在这种情况下,minPts 是 4。红色点是核心点,因为在其半径为 eps 的周围区域内至少有4 个点。该区域在图中用圆圈表示。黄色点是边界点,因为它们可以从核心点到达,并且其邻域内的点少于 4 个。可到达意味着在核心点的周围区域。点 B 和 C 在其邻域内(即以 eps 为半径的周围区域)有两个点(包括点本身)。最后,N 是一个异常值,因为它不是一个核心点,不能从核心点到达。
我们已经学习了参数和不同类型点的定义。现在我们可以谈谈算法是如何工作的。这其实很简单:
- 确定 minPts 和 eps。
- 随机选择一个起始点,使用半径 eps 确定其邻域。如果邻域中至少有 minPts 个数的点,则将该点标记为核心点,并开始形成聚类。如果不是,则该点被标记为噪声。一旦聚类形成开始(假设聚类 A),初始点邻域内的所有点都成为聚类 A 的一部分。如果这些新点也是核心点,则它们邻域内的点也被添加到聚类 A 中。
注意:被标记为噪声的点可以被重新访问,并且是聚类的一部分。
- 下一步是在前面步骤中没有访问过的点中随机选择另一个点。然后同样的程序适用。
- 当所有点都被访问时,该过程结束。
使用 k-means 算法中的距离测量方法来确定点之间的距离。最常用的方法是欧氏距离。
通过应用这些步骤,DBSCAN 算法能够找到高密度区域并将它们从低密度区域中分离出来。
一个集群包括相邻的核心点(即彼此可到达的)以及这些核心点的所有边界点。形成集群的必要条件是至少有一个核心点。尽管可能性很小,但我们可能有一个只有一个核心点及其边界点的集群。
优点:
- 不需要预先指定簇的数量。
- 适用于任意形状的集群。
- DBSCAN 对异常值是鲁棒的,并且能够检测异常值。
缺点:
- 在某些情况下,确定适当的邻域距离(eps)并不容易,这需要领域知识。
- 如果集群在集群内密度方面差异很大,那么 DBSCAN 就不太适合定义集群。聚类的特征由 eps-minPts 参数的组合来定义。因为我们将一个 eps-minPts 组合传递给该算法,所以它不能很好地推广到具有很大不同密度的聚类。
感谢阅读。如果您有任何反馈,请告诉我。
参考文献
- https://en.wikipedia.org/wiki/Phylogenetic_tree
- 【https://en.wikipedia.org/wiki/DBSCAN
SaaS 公司的顶级指标
商业量化是成功的关键
艾萨克·史密斯在 Unsplash 上拍摄的照片
“当衡量绩效时,绩效就会提高。当性能得到测量和反馈时,改进的速度就会加快。”
-皮尔逊定律
在过去的几十年里,aaS 公司在市场上变得越来越普遍。仅在 2018 年,全球就有大约 11000 家 SaaS 公司(Crunchbase)。虽然 2018 年 SaaS 的预计收入为 800 亿美元(Gartner),但 2018 年 SaaS 的实际收入超过 1200 亿美元(IDC 全球)!这些收入的很大一部分也流向了一些大公司,比如谷歌、Adobe、Slack 和微软。
SaaS 公司如何在快速增长的市场中保持竞争力?虽然可能有很多方法,但向内看是一种非常有效的方法。
公司可以使用许多 SaaS 指标来衡量他们的增长,但今天我将重点关注我认为最相关的指标:
- 客户流失
- 收入流失
- 客户终身价值(LTV)
- 客户获取成本(CAC)
- CAC:LTV 比率
- 恢复 CAC 的月数
客户流失
**客户流失率是衡量一段时间内失去多少业务的指标。**客户流失有助于公司更好地了解客户保持率,并找出产品和/或公司的痛点。
客户流失
作为一般基准,5–7%的年流失率是一个很好的目标(大约每月 0.4–0.6%)。当然,这一指标取决于公司的许多方面。如果你公司的主要客户群是企业级客户,你会希望有一个低流失率,因为每个客户的离开都会对你的底线产生重大影响。另一方面,如果您有许多合同期较短或遇到现金流问题的小型企业客户,那么更高的客户流失率可能是可以接受的。
每月经常性收入(MRR)流失
**每月经常性收入流失通常与客户流失一起衡量。**如果你有 100 个客户,失去了 5 个,那就是 5%的客户流失率,但是你怎么知道每个客户的流失实际上给公司造成了多少损失呢?这就是收入流失发挥作用的地方。
重要的是要注意到你可以因为各种原因(向上销售/向下销售、折扣、信用、用途变化等)在不失去或获得任何客户的情况下获得巨大的收入流失。).另外,将现有客户的收入流失与新客户分开来衡量也很有用。通过这种方式,确定新的收入/损失来自哪里变得更加容易。
看着 MRR 搅动,公式如下:
每月经常性收入流失
您也可以调整年度经常性收入(ARR)和季度经常性收入(QRR)的公式。这个公式给出了一段时间内从现有客户那里获得/损失的收入的**百分比。**如果流失率为负,这意味着我们的 MRR 自期初以来实际上增加了。
对于基准,我使用了 Baremetrics 开放基准群组分析页面,基准取决于每账户平均收入(ARPA)。从 Baremetrics 的调查结果来看,一个好的 MRR 流失率范围是 8-10%。
客户终身价值(LTV)
从之前的客户流失开始:
客户生命周期
我们现在知道了客户的生命周期。例如,如果月流失率为 5%,客户寿命将为 1/0.05,即 20 个月。
下一步是计算寿命值,即:
终身价值
其中 ARPA 是每个账户的平均收入。结合上面的客户生命周期,我们也可以这样来看公式:
终身价值——客户流失
更准确的版本是使用 MRR 流失来代替:
终身价值——MRR 流失
**这个值让我们大致了解每个客户给我们公司带来了多少价值。**一般来说,LTV 高并无大碍,但是 LTV:CAC 比率(稍后解释)为 SaaS 公司提供了一个明确的基准。
客户获取成本(CAC)
客户获取成本
顾名思义, CAC 是衡量获得一个客户需要多少成本的指标。它考虑了广告、员工工资、团队会议、产品维护等等。
如果你花 1000 美元获得 100 个新客户,那么 CAC 就是 10 美元。这个 CAC 好吗?这取决于客户带来了多少价值,我们将在接下来进一步探讨这一点。
LTV:CAC 比率
LTV 与 CAC 比率
LTV:资本成本比率是 SaaS 公司最重要的比率之一。它回答了这样一个问题:我们每花一美元去获得一个客户,我们能得到多少收入作为回报?
LTV 与 CAC 的理想比例是 3:1 。如果你的比例是 1:1,那就是你花钱太多的迹象。另一方面,10:1 的比率乍一看似乎不错,但这也可能表明你没有花足够的钱来获得客户,从而限制了你的市场份额。
恢复 CAC 的月数
恢复 CAC 的月数
这个指标帮助我们找出在获得一个新客户后需要多长时间才能达到收支平衡。通常,**的目标是在获得客户后的 12 个月内收回 CAC。**更多成功的公司能够在更短的时间内做到这一点。
想象一下,我们的第一个客户以 12,000 美元的价格从我们这里购买了一份年度订阅,但它在 CAC 中花费了 8000 美元。现金流大概是这样的:
8 个月后,我们终于可以从我们的第一个客户那里看到一些利润了!如果我们将客户增加到 2 或 3 个,同时将 CAC 保持在 8000 美元,我们将看到我们的增长呈指数增长!对于拥有 SaaS 产品的初创公司,负现金流在早期就被预期,这些公司必须保持强劲,因为他们努力增加他们的客户群。
我知道还有许多其他 SaaS 指标公司可以用来提高绩效,但这是我觉得在 SaaS 最普遍的一些。
我希望这些信息有助于澄清一些重要的 SaaS 指标。非常感谢你阅读这篇博客,希望你继续关注下一篇!
2020 年最佳 NLP 读物
这是我个人为自然语言处理推荐的书籍列表,供实践者和理论家参考
作者图片
迄今为止,有很多关于自然语言处理的书籍可供你学习。然而,为自己选择合适的书可能会令人生畏,因为书实在太多了!这篇文章提供了我个人推荐的补充你的 NLP 学习的顶级书籍列表。我把清单分成了实践和理论书籍,这取决于你是实践者还是研究者。
练习册
1.实用自然语言处理:构建真实世界自然语言处理系统的综合指南
作者索姆亚·瓦贾拉、菩萨、阿努杰·古普塔、哈什特·苏拉纳(2020 年 6 月 17 日出版)
评分:⭐⭐⭐⭐
这本书概述了如何为你自己的问题建立一个真实的 NLP 系统。它将指导您逐步构建一个专为您的用例定制的高性能、高效的 NLP 设置。这本书涵盖了各种 NLP 任务的广泛范围,不同的 NLP 和深度学习方法,如何根据您自己的特定设置微调模型,不同方法的评估,软件实施和部署,以及来自领先研究人员的最佳实践。
2.使用 PyTorch 进行自然语言处理:使用深度学习构建智能语言应用
作者德利普·拉奥,布莱恩·麦克马汉(2019 年 2 月 19 日出版)
评分:⭐⭐⭐⭐
这本书是一本实用指南,教你如何使用流行的 Pytorch 库构建 NLP 应用程序。这是一本方便的书,它将教你:计算图和监督学习范式,Pytorch 的基础知识,传统的 NLP 方法,神经网络的基础,单词嵌入,句子预测,序列到序列模型,以及构建生产系统的设计模式。对于那些喜欢从实际例子中学习并希望使用 Pytorch 进行开发的人来说,这是一本很棒的书。
3.自然语言处理实践:用 Python 理解、分析和生成文本
由霍布森巷、汉尼斯哈普克、科尔霍华德(2019 年 4 月 14 日出版)
评分:⭐⭐⭐⭐⭐
这本书假设对深度学习和 Python 技能有初步的理解。它教你如何使用 Python 库(如 Keras、Tensorflow、gensim 和 sci-kit learn)解决现代有趣的 NLP 问题。这本书涵盖的内容从基础到更深的自然语言处理概念:字预处理,字表示,感知器,CNN,RNN,LSTM,序列到序列模型和注意力,命名实体识别,问答,对话系统,最后优化自然语言处理系统。
4.针对拥有 fastai 和 PyTorch 的程序员的深度学习:没有博士学位的 ai 应用
由杰瑞米·霍华德、西尔万·古格(2020 年 8 月 4 日出版)
评分:⭐⭐⭐⭐⭐
这本书的作者展示了没有人工智能博士学位如何实现深度学习,这是业内普遍认为的一种误解。使用流行的框架 fast.ai,这一切都是可能的,该框架旨在将 NLP 的生产和研究转化为几行代码。这本书向您展示了如何真正快速地建立和训练深度学习模型,使用最佳实践方法,提高准确性和速度,并将您的模型部署为 web 应用程序。对于没有多少深度学习或 NLP 背景,但知道一些 Python 基础知识的人来说,这是一本完美的书。
理论书籍
1.自然语言处理中的神经网络方法
作者约夫·戈德堡,格雷姆·赫斯特(2017 年 4 月 17 日出版)
评分:⭐⭐⭐⭐
这是我最喜欢的关于 NLP 的理论书,非常全面。它侧重于 NLP 的神经网络模型背后的概念,并显示它们如何成功地解决 NLP 问题。本书的前半部分涵盖了监督学习、前馈神经网络、处理文本数据的基础知识、分布式单词表示和计算图抽象。本书的后半部分介绍了更具体的模型架构,这些架构构成了当今许多最先进方法的基础:CNN、RNN、LSTM、基于世代的模型和注意力模型。
2.自然语言处理中的深度学习
由邓丽、刘阳(发布于 2018 年 5 月 23 日)
评分:⭐⭐⭐⭐
这本书主要面向想要了解 NLP 最新发展水平(截止到 2018 年年中)的高级学生、博士后研究人员和行业研究人员。这本书回顾了各种 NLP 任务中的最新方法:语音识别、对话系统、问题回答、机器翻译、情感分析、自然语言生成等。
3.自然语言处理和语音识别的深度学习
由乌代·卡马斯、刘醇逸、詹姆斯·惠特克(2020 年 8 月 14 日出版)
评分:⭐⭐⭐⭐⭐
这本书解释了 NLP 深度学习背后的概念。分为机器学习、NLP、语音介绍三个板块;深度学习基础;以及先进的文本和语音深度学习技术。第一部分介绍了基本的机器学习和自然语言处理理论。第二部分讲授 NLP 的基本概念,包括单词嵌入、CNN、RNN 和语音识别模型。最后一节讨论了自然语言处理中的前沿研究,如注意机制、记忆增强网络、多任务学习、强化学习、领域适应等。
4.自然语言处理简介
作者雅各布·爱森斯坦(2019 年 10 月 1 日出版)
评分:⭐⭐⭐⭐
这本书是针对高级本科生和研究生,学术研究人员和 NLP 软件工程师。它提供了一个经典算法的综合研究,也是在当前时代使用的当代技术。这本书分为四个部分。第一部分介绍基本的机器学习,第二部分教授文本的结构化表示。第三部分探讨了不同的单词表示,而最后一部分涵盖了三个基本的 NLP 应用:信息提取、机器翻译和文本生成。
结束语
在这篇文章之后,我希望你现在能对现有的顶级书籍有一个更广阔的视角!😄,如果这是你的预期目标,我希望你在一天结束的时候脑子里有一本书
为了您的方便,这是书单:
练习册
- 实用自然语言处理:构建真实世界自然语言处理系统综合指南
- 使用 PyTorch 进行自然语言处理:使用深度学习构建智能语言应用
- 自然语言处理在行动:用 Python 理解、分析、生成文本
- fastai 和 PyTorch 的程序员深度学习:没有博士学位的 ai 应用
理论书籍
(注意:这篇文章包含所讨论书籍的链接)
如果你喜欢我的工作,你也可以看看我以前在顶级 NLP 图书馆 2020 上的帖子!
AllenNLP,Fast.ai,Spacy,NLTK,TorchText,Huggingface,Gensim,OpenNMT,ParlAI,DeepPavlov
towardsdatascience.com](/top-nlp-libraries-to-use-2020-4f700cdb841f)
2020 年将使用的顶级 NLP 库
AllenNLP,Fairseq,Fast.ai,Spacy,NLTK,TorchText,Huggingface,Gensim,OpenNMT,ParlAI,DeepPavlov
涉及
自然语言处理
自然语言处理已成为 2020 年深度学习中最受研究的领域之一,这主要是因为它越来越受欢迎,未来有潜力,并支持各种各样的应用程序。
如果你以前玩过深度学习,你可能知道常规的深度学习框架,如 Tensorflow 、 Keras 和 Pytorch 。假设你知道这些基本框架,本教程致力于用其他有用的 NLP 库简要指导你,你可以在 2020 年学习和使用。根据您想做的事情,您可能会去掉一些您感兴趣或不知道存在的工具的名称!
总体框架
艾伦 LP
AllenNLP 标志(来源)
- 知名度:⭐⭐⭐⭐
- 官方网站:https://allennlp.org/
- github:https://github.com/allenai/allennlp
- 说明:AllenNLP 是 NLP 深度学习的通用框架,由世界著名的 Allen Institute for AI 实验室建立。它包含最先进的参考模型,您可以快速开始实施。它还支持各种各样的任务和数据集,因此无需担心。它还包括许多很酷的演示,你可以看看你是否想学习和使用这个框架!
公平序列
Fairseq 徽标(来源)
- 知名度:⭐⭐⭐⭐
- 官方网站:https://fairseq.readthedocs.io/en/latest
- github:https://github.com/pytorch/fairseq
- 说明:Fairseq 是由脸书人工智能研究院开发的一个流行的自然语言处理框架。它是一个用于机器翻译、文本摘要、语言建模、文本生成和其他任务的序列建模工具包。它包含经典模型的内置实现,如 CNN、LSTMs,甚至是具有自我关注功能的基本变形金刚。它的 CLI 支持也非常方便。我有时会使用 Fairseq 来训练基线,以便与我自己的模型进行比较,我敢打赌,许多研究人员也是出于同样的目的使用它的!
Fast.ai
- 知名度:⭐⭐⭐⭐
- 官方网站:【http://docs.fast.ai/
- github:https://github.com/fastai/fastai
- 解释:Fast.ai 旨在通过其免费的在线课程和易于使用的软件库,让没有技术背景的人也可以进行深度学习。事实上,它的联合创始人杰瑞米·霍华德刚刚出版了(2020 年 8 月)一本全新的书,名为fastai 和 PyTorch 的程序员的深度学习:没有博士学位的人工智能应用,它的标题非常简单明了。在 Fast.ai 库中,他们有一个指定的文本部分,用于任何与 NLP 相关的内容。对于 NLP 数据预处理、模型构建、训练和评估,它们具有超高级别的抽象和简单的实现。我真的推荐 Fast.ai 给任何一个重实践轻理论,想快速解决一个问题的人。
预处理
空间
- 知名度:⭐⭐⭐⭐⭐
- 官方网站:https://spacy.io/
- github:https://github.com/explosion/spaCy
- 说明:Spacy 是最流行的文本预处理库,也是你能找到的最方便的库。它包含许多易于使用的功能,如标记化、词性标注、命名实体识别等等。它还支持 59+语言和几个预训练的词向量,你可以让你快速入门!
NLTK
- 知名度:⭐⭐⭐⭐⭐
- 官方网站:https://www.nltk.org/
- github:https://github.com/nltk/nltk
- 说明:类似于 Spacy,它是现代 NLP 的另一个流行的预处理库。它的功能范围从标记化、词干化、标注到解析和语义推理。就个人而言,NLTK 是我最喜欢的预处理库,因为我喜欢 NLTK 的简单性。它能快速完成任务。
火炬报
- 知名度:⭐⭐⭐⭐
- 官方网站:https://torchtext.readthedocs.io/en/latest/
- github:【https://github.com/pytorch/text
- 说明:TorchText 得到 Pytorch 的官方支持,因此越来越受欢迎。它包含方便的数据处理实用程序,可以在将它们输入深度学习框架之前批量处理和准备它们。在我的训练、验证和测试数据集中,我经常使用 TorchText 来进行标记化、vocab 构造和创建迭代器,这些都可以在以后由数据加载器使用。它真的是一个方便的工具,用几行简单的代码就能帮你处理所有繁重的工作。您还可以轻松地对数据集使用预先训练的单词嵌入,如 Word2Vec 或 FastText。通过查看我的 BERT 文本分类使用 Pytorch 文章,你可以看到我是如何使用 TorchText 的。
变形金刚(电影名)
拥抱脸
Huggingface 的变形金刚 Logo ( 来源)
- 知名度:⭐⭐⭐⭐⭐
- 官方网站:https://huggingface.co/
- github:https://github.com/huggingface/transformers
- 说明:这是最受欢迎的库,实现了各种各样的变形金刚,从伯特和 GPT-2 到巴特和改革者。我每天都在使用它,根据我自己的经验,它们的代码可读性和文档非常清晰。在他们的官方 github repo 中,他们甚至按照不同的任务来组织他们的 python 脚本,比如语言建模、文本生成、问题回答、多项选择等。它们有内置的脚本来运行这些任务的基线转换器,所以使用它们真的很方便!
具体任务
根西姆
- 知名度:⭐⭐⭐
- 官方网站:https://radimrehurek.com/gensim/
- github:https://github.com/RaRe-Technologies/gensim
- 任务:主题建模,文本摘要,语义相似度
- 解释:Gensim 是一个高端的行业级软件,用于特定文本的主题建模。它非常健壮、独立于平台并且可伸缩。我在一家人工智能初创公司实习时使用过它,我们想判断两篇报纸文章之间的语义相似性。有一个非常简单的函数调用,允许您这样做并返回它们的相似性得分,因此非常方便!
OpenNMT
- 知名度:⭐⭐⭐
- 官方网站:【https://opennmt.net/
- github:【https://github.com/OpenNMT/OpenNMT-py
- 任务:机器翻译
- 说明:对于机器翻译和序列学习任务,OpenNMT 是一个方便而强大的工具。它包含高度可配置的模型和训练程序,使它成为一个非常简单的使用框架。我有同事推荐使用 OpenNMT 来完成不同种类的序列学习任务,因为它是开源的并且简单。
帕莱
ParlAI 标志(来源)
- 知名度:⭐⭐⭐
- 官方网站:https://parl.ai/
- github:https://github.com/facebookresearch/ParlAI
- 任务:面向任务的对话、闲聊对话、视觉问答
- 说明:ParlAI 是脸书的#1 框架,用于共享、训练和测试不同类型对话任务的对话模型。它为支持各种参考模型、预训练模型、数据集等提供了一体化环境。与列表中的大多数其他工具不同,ParlAI 需要一定程度的编码和机器学习专业知识,如果你想自己定制东西的话。换句话说,使用起来有点复杂,但如果你喜欢对话,这仍然是一个很好的工具。
DeepPavlov
DeepPavlov 标志(来源)
- 知名度:⭐⭐⭐
- 官方网站:http://deeppavlov.ai/
- github:https://github.com/deepmipt/DeepPavlov
- 任务:面向任务的对话,闲聊对话
- 解释:作为 ParlAI 的替代,我认为 DeepPavlov 更适合应用和部署,而不是研究,尽管你仍然可以使用 DeepPavlov 进行大量的定制。我认为帕尔莱之于迪普帕洛夫就像皮托尔之于张量流。DeepPavlov 是一个主要用于聊天机器人和虚拟助手开发的框架,因为它提供了生产就绪和行业级对话代理所需的所有环境工具。我曾经在一次黑客马拉松中使用过它,将一个对话代理微调到餐馆领域(这样用户可以查看菜单并点他们想要的食物),最终结果非常棒!
2021 年人工智能工程师的顶级编程语言
从几种编程语言中,人工智能工程师和科学家可以选择适合他们项目需求的正确语言
图片由 Pixabay 提供
人工智能 现在已经成为我们日常生活中不可或缺的一部分,它在数百种独特的使用案例和情况中提供了所有的好处**,更不用说它让我们的事情变得多么简单和容易了。**
随着近年来的推动,人工智能已经走过了漫长的道路,帮助企业成长并实现其全部潜力。如果没有底层编程语言的核心改进,人工智能的这些进步是不可能的。
随着人工智能的蓬勃发展,随着编程语言的进步,对高效熟练的程序员和工程师的需求也在飙升。虽然有很多编程语言可以让你开始开发人工智能,但没有一种编程语言是人工智能编程的一站式解决方案,因为各种目标要求每个项目都有特定的方法。
我们将讨论下面列出的一些最受欢迎的方法,让您自己做决定——
● Python
Python 是你能读懂的最强大的语言。
——保罗·杜布瓦
通过 Unsplash 进行 Python 编程
开发于 1991 年,, Python 一直是一项民意调查,表明超过 57%的开发者更有可能选择 Python 而非 C++ 作为他们开发人工智能解决方案的编程语言。Python 简单易学,让程序员和数据科学家更容易进入人工智能开发的世界。
Python 是程序员需要多大自由的一个实验。太多的自由,没人能读懂别人的代码;太少,表现力受到威胁。
——吉多·范·罗苏姆
使用 Python,你不仅可以获得优秀的 社区支持和大量的库,还可以享受编程语言提供的灵活性。您可能从 Python 中受益最大的一些功能是平台独立性和深度学习和机器学习的广泛框架。
编写 Python 代码的乐趣应该在于看到短小、简洁、易读的类,这些类用少量清晰的代码表达了大量的动作——而不是让读者厌烦得要死的大量琐碎代码。
吉多·范·罗苏姆
Python 代码片段示例:
Python 代码片段示例(源代码)
一些最受欢迎的图书馆是-
● TensorFlow ,用于机器学习工作负载和处理数据集
● scikit-learn ,用于训练机器学习模型
● PyTorch ,用于计算机视觉和自然语言处理
● Keras ,作为高度复杂的数学计算和操作的代码接口
● SparkMLlib ,像 Apache Spark 的机器学习库,用算法和实用程序之类的工具让机器学习对每个人来说都很容易
● MXNet ,作为 Apache 的另一个用于简化深度学习工作流的库
● Theano ,作为定义、优化和评估数学表达式的库
● Pybrain ,强大的机器学习算法
此外,根据 GitHub repositories 的贡献,Python 已经超过 Java,成为第二大流行语言**。事实上,Stack Overflow 称之为“ 发展最快的 ”主要编程语言。"**
来源:十月
面向初学者的 Python 课程—
[## 面向初学者的 3 门免费 Python 课程:2020 版
如果你正在寻找可以用来扩展你的 Python 知识的最好的免费 Python 课程,你已经来到…
hackernoon.com](https://hackernoon.com/3-free-python-courses-for-beginners-2020-edition-j7c23y3u) [## Python 训练营:学习 Python 编程和代码培训
这是 Udemy 上最全面、最直接的 Python 编程语言课程!你是否…
www.udemy.com](https://www.udemy.com/course/complete-python-bootcamp/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-lB6TwxSdouentAk36.qjmw)
● Java
Java 被认为是世界上最好的编程语言之一,过去 20 年的使用证明了这一点。
凭借其的高度用户友好性、的灵活性和平台独立性,Java 已经被用于以各种方式开发人工智能,继续阅读了解其中的一些:
●tensor flow
tensor flow 支持的编程语言列表还包括带有 API 的 Java。这种支持不像其他完全支持的语言那样功能丰富,但它确实存在,并且正在快速改进。
● 深度 Java 库
由亚马逊打造,使用 Java 创建和部署深度学习能力。
●kube flow
kube flow 有助于在 Kubernetes 上轻松部署和管理机器学习堆栈,提供随时可用的 ML 解决方案。
● OpenNLP
Apache 的 OpenNLP 是一个自然语言处理的机器学习工具。
● Java 机器学习库
Java-ML 为开发者提供了几种机器学习算法。
● 欧米诺
欧米诺使得在欧米诺 GUI 的帮助下使用 Java 开源框架设计神经网络成为可能。
如果 Java 有真正的垃圾收集,大多数程序会在执行时删除自己。罗伯特·休厄尔
Java 代码片段示例:
Java 代码片段示例(源代码)
面向初学者的 Java 课程—
[## 供初学者在线学习的 5 大 Java 编程课程——最好的
如果你是计算机科学专业的毕业生,或者想学习 Java 并且正在寻找一些很棒的资源,例如…
javarevisited.blogspot.com](https://javarevisited.blogspot.com/2018/05/top-5-java-courses-for-beginners-to-learn-online.html)
● R
R 由罗斯伊哈卡和罗伯特绅士创造,第一个版本于 1995 年推出。目前由 R 开发核心小组维护,R 是 S 编程语言的实现,并帮助开发统计软件和数据分析。
让 R 非常适合开发人员进行人工智能编程的品质是:
●R 擅长处理庞大数字的基本特性,使它比 Python 更有优势,因为 Python 有着相对粗糙的 NumPy 包。
●使用 R,您可以处理各种编程范例,如函数式编程、向量计算和面向对象编程。
一些可用于 R 的 AI 编程包有:
● Gmodels 提供了一组用于模型拟合的工具
● Tm,作为文本挖掘应用的框架
● RODBC 作为 R 的 ODBC 接口
● OneR,用于实现一个规则机器学习分类算法,对机器学习模型有用
在数据挖掘者和统计学家中广泛使用,R 提供的特性有:
●扩展其功能的各种库和包
●积极支持的社区
●能够与 C、C++和 Fortran 协同工作
●几个软件包有助于扩展功能
●支持制作高质量的图表
有趣的事情—— 新冠肺炎互动地图制作使用 R
●序言
逻辑编程的简称,Prolog 最早出现在 1972 。它是开发人工智能,特别是自然语言处理的令人兴奋的工具。Prolog 最适合创建聊天机器人, ELIZA 是第一个用 Prolog 创建的聊天机器人。
第一个成功的聊天机器人(来源)
要理解 Prolog,您必须熟悉指导 Prolog 工作的一些基本术语,下面将简要介绍这些术语:
●事实定义了正确的陈述
●规则定义语句,但带有附加条件
●目标根据知识库定义提交的陈述所处的位置
●询问定义了如何使你的陈述真实,以及对事实和规则的最终分析
Prolog 提供了两种实现人工智能的方法,这两种方法已经实践了很长时间,并在数据科学家和研究人员中广为人知:
●符号方法包括基于规则的专家系统、定理证明、基于约束的方法。
●统计方法包括神经网络、数据挖掘、机器学习和其他几种方法。
●口齿不清
Lisp 代码创建一个 n 输入 m 单位一层感知器(源)
列表处理的简称,是仅次于 Fortran 的第二古老的编程语言。被称为人工智能的创始人之一,Lisp 是由约翰·麦卡锡在 1958 年创造的。
Lisp 是一种做你被告知不可能做的事情的语言。
肯特·皮特曼
作为一种实用的程序数学符号,Lisp 很快成为开发人员选择的人工智能编程语言。以下是 Lisp 的一些特性,这些特性使它成为机器学习人工智能项目的最佳选择之一:
●快速原型制作
●动态对象创建
●垃圾收集
●灵活性
随着其他竞争编程语言的重大改进,Lisp 特有的几个特性也进入了其他语言。在某个时间点涉及 Lisp 的一些著名项目是 Reddit 和 HackerNews 。
以 Lisp 为例,你知道它是世界上最美的语言——至少在 Haskell 出现之前是这样。
——拉里·沃尔
●哈斯克尔
Haskell 于 1990 年定义,并以著名数学家哈斯凯尔·布鲁克斯·加里的名字命名,它是一种纯函数静态类型的编程语言,配有惰性评估和更短的代码。
它被认为是一种非常安全的编程语言,因为它在处理错误方面提供了更多的灵活性,因为与其他编程语言相比,Haskell 很少出现错误。即使真的发生了,大多数非语法错误也是在编译时而不是运行时被发现的。Haskell 提供的一些特性是:
●强大的抽象能力
●内置内存管理
●代码可重用性
●易于理解
SQL、Lisp 和 Haskell 是我见过的花在思考上的时间比打字多的编程语言。菲利普·格林斯本
它的特性有助于提高程序员的生产率。Haskell 与其他编程语言非常相似,只是被一个小群体的开发人员使用。抛开挑战不谈,随着越来越多的开发人员社区采用 Haskell,Haskell 可以证明与其他竞争对手的 AI 语言一样好。
Matthew Butler 编码 GIF
●朱丽娅
Julia 是一种高性能的通用动态编程语言,适合创建几乎任何应用程序,但非常适合数值分析和计算科学。与 Julia 一起工作的各种工具有:
Vim 和 Emacs 等热门编辑器
Juno、Visual Studio 等 ide
茱莉亚源代码组织(来源)
Julia 提供的一些功能使其成为人工智能编程、机器学习、统计和数据建模的一个值得注意的选择,这些功能包括:
●动态类型系统
●内置软件包管理器
●能够进行并行和分布式计算
●宏和元编程能力
●支持多次派单
●直接支持 C 函数
Julia 旨在消除其他编程语言的弱点,也可用于机器学习应用程序,与 T ensorFlow.jl 、 MLBase.jl 、 MXNet.jl 等工具集成,这些工具利用了 Julia 提供的可伸缩性。
谷歌趋势— Julia 兴趣随时间变化
谷歌趋势(来源)
JuliaCon 2019 集锦(来源)
结论
有几种人工智能编程语言可供选择,人工智能工程师和科学家可以选择适合他们项目需求的正确语言。每一种人工智能编程语言都有其优点和缺点。随着对这些语言的定期改进,用不了多久,人工智能的开发就会变得比今天更加舒适,这样更多的人就可以加入到这一创新浪潮中来。杰出的社区支持让新人的生活变得更好,社区对几个包和扩展的贡献让每个人的生活更轻松。
类似的文章—
我希望这篇文章对你有用!如果您有兴趣了解更多信息,以下是附加资源:—
针对求职者和新开发人员的顶级编程语言的深入分析和排名
towardsdatascience.com](/top-10-in-demand-programming-languages-to-learn-in-2020-4462eb7d8d3e) [## 2020 年十大商业编程语言
正是硬件和软件的结合促成了技术的大部分进步。顶级编程…
codeburst.io](https://codeburst.io/10-top-programming-languages-in-2019-for-developers-a2921798d652) [## 2020 年人工智能工程师最喜欢的 5 种编程语言
全球近 14%的劳动力或 3.75 亿人可能会因人工智能和自动化而失业。迈出一步…
www.datasciencecentral.com](https://www.datasciencecentral.com/profiles/blogs/5-most-preferred-programming-languages-for-ai-engineers-in-2020) [## 2020 年要学习的 7 种编程语言和框架
给热情的程序员的精选推荐
medium.com](https://medium.com/swlh/the-7-programming-languages-frameworks-to-learn-in-2020-6f9ac923ec5d)
关于作者
克莱尔 D 。在digital ogy***—*是一个内容制作者和营销人员,这是一个技术采购和定制匹配市场,根据全球各地的特定需求,将人们与预先筛选的&顶尖开发人员和设计师联系起来。连接 数字学 上 领英 , 推特 ,insta gram。
2020 年数据科学的顶级编程语言
您应该选择哪种编程语言来开始您的数据科学之旅?
“学习一门新编程语言的唯一方法是用它来写程序.”
——丹尼斯·里奇
一门编程语言是任何开发者的超能力。每隔一段时间,就会出现一种新的编程语言或对现有语言的更新,试图提供更快、更优化的结果。开发人员经常会发现自己被各种各样的编程语言所困扰,决定为他们的下一个项目选择哪一种。
所有的编程语言都不相似,在许多情况下,适用于一个项目或一个需求的语言可能不适用于另一个项目或需求。数据科学就是这样一个趋势领域,对效率和高性能结果的需求正在飞速增长。本文将介绍少数顶级编程语言。
在为您的数据科学职业道路选择最佳编程语言时,您需要考虑什么
现在,在我们跳到涵盖一些顶级数据科学编程语言的部分之前,下面提到了一些您应该问自己的问题:
●手头的任务到底是什么?
●数据科学能在哪些方面帮到你?
●你对已经掌握的编程语言的熟练程度如何?
●你准备好让你的知识更上一层楼了吗?
●您的组织在多大程度上使用数据科学?
●你有兴趣学习高级数据科学吗?
把这个也念出来—
从几种编程语言中,人工智能工程师和科学家可以挑选出适合他们需要的语言
towardsdatascience.com](/top-programming-languages-for-ai-engineers-in-2020-33a9f16a80b0)
2020 年数据科学的顶级编程语言
既然你已经回答了上面的问题,让我们进入下一部分。从现在开始,我们希望将您的注意力吸引到数据科学中一些最常用的编程语言上。您可能已经熟悉一些流行的编程语言,而有些可能对您来说是全新的。
1. Python
来源— Python
Python 在 数据科学顶级工具 中占有重要地位,并且通常是一系列领域任务的首选,如机器学习、深度学习、人工智能等等。它是面向对象的,易于使用,并且由于其代码可读性高,对开发人员非常友好。
Python 庞大的生态系统包含丰富的库和各种用途的实现,这使它成为一个真正的多面选择。Python 提供的其他一些重要的突出特性包括:
● 支持强大的数据科学库,如 Keras、Scikit-Learn、matplotlib、TensorFlow 等
● 非常适合完成数据收集、分析、建模和可视化等任务
● 支持多种文件导出和共享选项
● 有一个强大的社区来获得支持
编写 Python 代码的乐趣应该在于看到短小、简洁、易读的类,这些类用少量清晰的代码表达了大量的动作——而不是让读者厌烦得要死的大量琐碎代码。
吉多·范·罗苏姆
PYPL 编程语言的流行程度—
PYPL 流行的编程语言(来源)
Python 库—
面向数据科学的流行 Python 库概述
towardsdatascience.com](/top-python-libraries-for-data-science-c226dc74999b) [## 机器学习和深度学习的最佳 Python 库
现代机器学习模型和项目的 Python 库
towardsdatascience.com](/best-python-libraries-for-machine-learning-and-deep-learning-b0bd40c7e8c) [## 用于自然语言处理的 Python 库
用于自然语言处理的流行 python 库概述
towardsdatascience.com](/python-libraries-for-natural-language-processing-be0e5a35dd64)
面向数据科学的 Python 初学者课程
2.Java Script 语言
源代码— JavaScript
JavaScript:不要用我不好的部分来评价我,学习好的部分并坚持下去!
埃里克·弗里曼
多范例和事件驱动的脚本语言 JavaScript 是 web 开发的顶级编程语言之一。使用 JavaScript,开发人员可以创建丰富的交互式网页,正是 JavaScript 的这一特性使得它成为创建漂亮的可视化效果的绝佳选择。
JavaScript 在数据科学中的其他用途包括管理异步任务和处理实时数据。支持 JavaScript 的几个令人信服的理由是:
● 允许为数据分析创建可视化
● 支持各种现代机器学习库,例如 TensorFlow.js、Keras.js 和 ConvNetJs 等
● 更易学易用
面向数据科学的顶级 JavaScript 库
- D3.js:
Github 链接: 了解更多 D3.js
- Tensorflow.js:
Github 链接: 了解更多 TensorFlow.js
- Brain.js
Github 链接: 了解更多 Brain.js
- Machinelearn.js
Github 链接: 了解更多 Machinelearn.js
- Math.js:
Github 链接: 了解更多 Math.js
JavaScript 语言随着时间的推移—
根据 GitHub 库的贡献,JavaScript 是最流行的语言
来源: Octoverse
3.Java 语言(一种计算机语言,尤用于创建网站)
源代码— Java
一次编写,随处运行
编程语言 Java 可能看起来很老,但是不要让这愚弄了你。它长期以来被一些顶级企业用于安全企业开发,作为他们首选的开发堆栈。为了迎合数据科学领域的蓬勃发展,Java 提供了诸如 Hadoop、Spark、Hive、Scala 和 Fink 等工具。
Java 虚拟机是开发人员在企业环境中为分布式系统、数据分析和机器学习编写代码的流行选择。Java 提供的其他主要优势包括:
● 为快速应用开发提供了几个 ide
● 用于数据分析、深度学习、自然语言处理、数据挖掘等任务
● 轻松扩展,从头构建复杂应用
● 能够更快地交付成果
如果 Java 有真正的垃圾收集,大多数程序会在执行时删除自己。
—罗伯特·休厄尔
完全初学者 Java 教程—
[## 免费 Java 教程—免费 Java 教程—完全初学者学习 Java
在作为软件开发人员和承包商为包括 CSC 在内的许多公司工作了 14 年后…
www.udemy.com](https://www.udemy.com/course/java-tutorial/)
4. R
来源— R 基金会
R 是一个开源软件环境,主要用于处理数据科学中的统计和图形方面的事情。时间序列分析、聚类、统计测试、线性和非线性建模只是 r。
像 RStudio 和 Jupyter 这样的第三方接口使得与 R 一起工作变得更加容易。R 提供了出色的可扩展性,通常允许其他编程语言在 R 中修改数据对象而没有太多麻烦,这要归功于其强大的面向对象特性。编程语言 R 的关键要点是:
● 提供高效的数据处理和额外的数据分析工具
● 为创建用于数据分析的优秀图表提供了大量选项
● 允许用健壮的社区构建的包来扩展核心功能
● 包括一个活跃的贡献者社区
最近更新由克莱尔 d。人工智能创新的加速增长已经导致几个…
blog.digitalogy.co](https://blog.digitalogy.co/r-for-data-science/)
5. C/C++
C 是 T2 最早的编程语言之一,大多数较新的语言使用 C/C++作为它们的代码库,例如 r。使用 C/C++需要对编程的基础有很强的理解。
尽管由于 C/C++的低级本质,对于数据科学初学者来说,它是编程语言中较为复杂的一面,但它正越来越多地被用于构建可用于数据科学的工具。
以 TensorFlow 为例,它的核心是用 C++写的,其余部分是用 Python 写的。但这还不是全部,C 语言确实有一些优点,如下所述:
● 当底层算法也用 C 语言编写时,能够提供更快、更好的优化结果
● 由于其高效的本质,比其他编程语言相对更快
Google Trends — C/C++兴趣随时间变化
Google trends C/C++( 来源)
6.结构化查询语言
来源— SQL
作为一名程序员,我相信你一定在生活中的某个时候使用过 SQL 。SQL 不仅仅是把你和你的数据库连接起来,它还有一个非常重要的目的,那就是,它只需要几个查询就能从大量的数据中为你提供事实和统计数据。
对于简化数据科学中的各种任务(如数据预处理)来说,提高 SQL 重要性的一些功能有:
●SQL 的非过程化特性让您专注于“是什么”,而不是“为什么”
与编程语言和数据库管理系统集成得很好
● 帮助您连接到您的数据以更好地理解它
● 允许更顺畅地管理大量数据
根据 Stackoverflow,最流行的技术—
来源— Stackoverflow 调查
7. MATLAB
来源: MathWorks 日志 o
MATLAB 主要是一个数学计算环境,设计用于执行高级数值计算,并带有各种工具,可以帮助您执行操作,如矩阵操作,数据和函数绘制等等。
有了 MATLAB,你可以轻松解决最棘手的数学和统计问题。它在学术界被广泛用于讲授线性代数和数值分析。MATLAB 的主要优点包括:
● 允许执行算法和创建用户界面
● 带有强大的数学函数集合
● 提供用于创建自定义数据图和可视化的内置图形
● 实现无缝可扩展性
随着近年来数据科学的发展,我们看到了数据科学工具的发展。r 和…
www.datasciencecentral.com](https://www.datasciencecentral.com/profiles/blogs/matlab-for-data-science)
8.斯卡拉
来源:Scala 编程语言
Scala 是一种高级编程语言,运行在 Java 虚拟机上,可以让使用 Java 变得更加容易。Scala 可以和 Spark 一起有效地处理大量孤立的数据。底层并发支持使得 Scala 成为构建高性能数据科学框架的完美选择,比如 Hadoop 。Scala 的主要产品包括:
● 稳定、多才多艺,在某些情况下可以相对更快地交付结果
● 提供了超过 175000 个扩展 Scala 功能的库
● 支持各种 ide,比如 IntelliJ IDEA,VS Code,Vim,Atom,Sublime Text,甚至在你的浏览器中
● 提供强大的社区支持
阅读 Scala 面试问题—
[## 2020 年前 27 个 Scala 面试问题和答案,适用于初学者和有经验者
主页>大数据> 2020 年参加 scala 的初学者和有经验者的前 27 个 Scala 面试问题和答案…
www.upgrad.com](https://www.upgrad.com/blog/scala-interview-questions-answers/)
9.朱丽亚
来源——Julialang.org
技术计算的新方法
Julia 是一种动态类型的多用途编程语言,但却是数值分析和计算科学分析的合适选择。虽然是高级编程语言,但如果需要,Julia 也可以用作低级编程。
Julia 已经被一些知名企业用于各种任务,包括时间序列分析、风险分析,甚至太空任务规划。Julia 的其他显著特征包括:
● 专注于提供高性能
● 对包管理器的内置支持
● 提供数据可视化、多维数据集上的操作以及用于深度学习的强大工具
● 支持并行和分布式计算
茱莉亚课程—
由开普敦大学提供。这四个模块的课程向用户介绍作为第一语言的朱莉娅。朱莉娅是一个…
www.coursera.org](https://www.coursera.org/learn/julia-programming)
10.SAS
来源— 统计分析系统
统计分析系统 的简称,SAS 是专门为商业智能、预测分析、高级分析而构建的工业级软件环境。
SAS 还允许用户挖掘、更改和管理来自各种来源的数据,其唯一目的是进行高级统计分析。
软件环境被分解成提供上述功能的工具集。其中一些涉及演示,一些涉及数据管理,一些涉及质量控制,还有一些涉及代码编辑器、项目管理器、网格计算管理器等特性。
在这里学习 SAS—
借助在线课程和教材,快速轻松地学习情景应用程序。向 SAS 学院索取免费资料…
www.sas.com](https://www.sas.com/en_us/learn/academic-programs/resources/free-sas-e-learning.html)
2020 年最佳虚拟 SAS 全球论坛—
更多用于数据科学的编程语言—
哈斯克尔
● 雨燕
● 八度
● Perl
● 口齿不清
结论
在整篇文章中,我们介绍了一些用于数据科学的顶级编程语言。每种语言都有自己的优点,与其他语言相比,它们通常能提供更好更快的结果。 数据科学的领域极其广阔 并且经常需要一套不同的工具来完成不同的任务。
用一种以上的编程语言武装自己可以保证帮助你在处理数据时克服独特的挑战。如果你是一名初露头角的数据科学家,你应该从上面提到的编程语言开始,因为它们是目前最受欢迎的语言。
注: 为了消除各种各样的问题,我想提醒你一个事实,这篇文章仅代表我想分享的个人观点,你有权不同意它。
更多有趣的阅读—
我希望这篇文章对你有用!下面是一些有趣的读物,希望你也喜欢
使用谷歌人工智能中心将想法变为现实
towardsdatascience.com](/top-google-ai-tools-for-everyone-60346ab7e08) [## 2020 年必读的机器学习书籍
看看吧,你为什么要读它们?
towardsdatascience.com](/machine-learning-books-you-must-read-in-2020-d6e0620b34d7) [## 2020 年你必须使用的最好的 Python IDEs 和代码编辑器
具有显著特性的顶级 Python IDEs 和代码编辑器
towardsdatascience.com](/best-python-ides-and-code-editors-you-must-use-in-2020-2303a53db24) [## Python vs. Node。JS:哪个最适合你的项目?
使用一组预定义的因素对 Python 和 Node.js 进行详细比较
towardsdatascience.com](/python-vs-node-js-which-one-is-best-for-your-project-e98f2c63f020) [## 2020 年必读的数据科学书籍
看看吧,你为什么要读它们?
towardsdatascience.com](/data-science-books-you-must-read-in-2020-1f30daace1cb)
关于作者
克莱尔 D 。在digital ogy—是一个内容制作者和营销人员。这是一个技术采购和定制匹配市场,根据全球各地的特定需求,将人们与预先筛选的&顶尖开发人员和设计师联系起来。连接DigitalogyonLinkedinTwitterinsta gram。**
面向数据科学的顶级 Python 库
面向数据科学的流行 Python 库概述
在 Unsplash 上由 Hitesh Choudhary 拍摄的照片
“Python 从一开始就是 Google 的重要组成部分,并且随着系统的成长和发展而保持不变。如今,数十名谷歌工程师使用 Python,我们正在寻找更多掌握这种语言的人。”
Python 一直是一种非常有价值的编程语言,不仅用于应用程序开发,还用于帮助数据科学家和研究人员找到复杂的计算和数学问题的解决方案。编程语言所提供的多功能性使得它可以毫不费力地用于各种领域。****
Python 成为数据科学家的理想选择是因为它易于使用和调试。但是称 Python 为数据科学的首选编程语言是不公平的,如果不提及它的各种库和包的集合的话。
面向数据科学的顶级 Python 库
Python 的武器库中有很多包,确切地说是超过 25.5 万个。这些包的用例分布在大量不同的领域。由于我们的话题是数据科学,我们希望您关注一些被广大受众广泛使用的顶级 Python 库,包括数据科学家、研究人员、分析师和许多其他人。********
1.张量流
****核心任务:构建深度学习模型
由谷歌、提供的tensor flow是开发和训练机器学习模型的优秀工具,可用于移动、物联网等许多平台。它可以处理各种任务,如对象识别、语音识别等。
凭借 TensorFlow 的灵活架构,开发人员可以根据需求的增长轻松扩展硬件,其中包含的协作支持使其他团队成员的参与变得轻而易举。TensorFlow 提供的主要优势包括:
● 有助于更顺利地建立模型
● 包括从构思到最终部署的工具
● 提供强大的研究资源
● 拥有一流的社区支持
● 以谷歌照片、语音搜索等几款热门谷歌产品为后盾
TensorFlow 教程——https://www.tensorflow.org/tutorials/
有张量流的责任 AI—
为什么是 Tensorflow?
也看看这个—
使用谷歌人工智能中心将想法变为现实
towardsdatascience.com](/top-google-ai-tools-for-everyone-60346ab7e08)
2.PyTorch
从研究到生产
核心任务:开发和训练深度学习模型
由脸书人工智能研究实验室为机器学习开发的 PyTorch 主要用于与计算机视觉和自然语言处理相关的任务。
如果你发现自己正在寻找一种既快速又高效、能在分布式环境中工作并且毫不费力地扩展的生产就绪型机器学习工具,PyTorch 可能是你的正确选择。
基本 PyTorch 工作流程(来源)
开源 Python 库 PyTorch 提供的主要特性有:
● 支持张量计算,由强大的 GPU 加速提供动力,支持多维数组的高性能运算
● 省时的自动区分方法叫做亲笔签名
● 构建高度优化神经网络的专用模块
欢迎来到 Pytorch 教程——https://pytorch.org/tutorials/
Pytorch 资源—https://pytorch.org/resources/
PyTorch 可以为深度学习程序员提供很多东西
towardsdatascience.com](/reasons-to-choose-pytorch-for-deep-learning-c087e031eaca)
3.克拉斯
简单。灵活。强大。
**核心任务:**构建深度学习模型
Keras 旨在通过提供最优化的解决方案和 API来简化甚至加速深度神经网络的实验。这个开源 Python 库利用了另一个名为 TensorFlow 的强大库的几个好处,并提供了一组构建块来简化深度神经网络的构建。Keras 的一些关键要点是:
● 通过图形处理单元(GPU)和张量处理单元(TPU)无缝支持分布式训练
● 在浏览器、移动设备和嵌入式设备上部署多样化的部署能力
● 允许更快的模型迭代和部署
Keras 学习资源—https://keras.io/getting_started/learning_resources/
Keras 教程—https://elitedata science . com/Keras-Tutorial-deep-learning-in-python
【Keras 入门—
4.熊猫
该名称源自术语“面板数据”,这是一个计量经济学术语,指的是包含同一个人在多个时间段的观察结果的数据集。
—维基百科
最新版本: 1.1.0
核心任务:数据处理和分析
开源库 熊猫为 Python 增加了高超的数据操作和分析能力,使其易于使用、灵活且快速。使用 pandas,您可以对数字数据和时间序列执行诸如争论、操作和可视化任务等任务。Pandas 具有几个内置功能,例如:
● 提供一个 DataFrame 对象,用于数据的操作和索引
● 用于读写内存数据结构和各种文件格式的工具套件
● 数据集的有效合并和连接
● 数据集的灵活重组
● 智能对齐数据并处理缺失值,以更好地组织数据
谷歌趋势——随着时间的推移熊猫的兴趣
谷歌趋势熊猫(来源)
熊猫资源【https://www.fullstackpython.com/pandas.html ——
现代机器学习模型和项目的 Python 库
towardsdatascience.com](/best-python-libraries-for-machine-learning-and-deep-learning-b0bd40c7e8c)
5. Scikit-Learn
**核心任务:**建模
Scikit-learn 是一个开源 Python 库,用 Python、Cython、C 和 C++编写。scikit-learn 构建在 NumPy、SciPy 和 matplotlib 之上,提供了一系列用于高效数据分析的工具。Scikit-Learn 可用于各种问题,包括回归、分类、聚类、降维、模型选择、预处理等。使 scikit-learn 成为更好选择的功能有:
● 支持支持向量机、随机森林、梯度提升、K 均值等多种方法
● 为线性代数、数组运算等多种运算提供优化的性能
● 社区驱动项目
**Github:**https://github.com/scikit-learn/scikit-learn
【https://scikit-learn.org/stable/tutorial/index.html】Scikit-学习教程—
学习 Scikit-学习-
[## Scikit-Learn (Python):数据科学家的 6 个有用技巧
使用 scikit-learn (sklearn)改进 Python 中的机器学习模型的技巧
levelup.gitconnected.com](https://levelup.gitconnected.com/scikit-learn-python-6-useful-tricks-for-data-scientists-1a0a502a6aa3)
6.Plotly
Plotly 是另一个有用的开源的基于浏览器的 Python 图形绘制库,提供了超过 30 种可视化,涵盖科学、3D、统计、金融等等。plotly 库可以更容易地查看 Jupyter 笔记本中令人印象深刻的图形和图表,HTML 文件,甚至可以通过 Chart Studio Cloud 在线托管。Plotly 提供的一些主要好处是:
● 提供广泛的协作能力
● 提供各种共享和导出图表的选项
● 与 IPython 很好地集成在一起进行交互
● 活跃的开发者和贡献者社区之家
Github—https://github.com/plotly/plotly.py
社区——https://community.plotly.com/
谷歌趋势——随着时间的推移,人们的兴趣越来越浓厚
谷歌趋势 Plotly( 来源)
7.NumPy
**核心任务:**数据清理和操作
NumPy 是一个强大的开源 Python 库,用于处理 n 维数组,并提供了一套广泛的数值运算工具,以实现增强的性能和更快的执行时间。NumPy 正被用于广泛的领域,如科学计算、数据科学、机器学习、数据可视化、数据分析等。NumPy 的关键要点是:
● 提供了一系列标准以及高级的数组操作
● 支持广泛的平台、环境和硬件
● 可理解的语法
● 数百名活跃用户组成的支持社区为项目做出了贡献
[## 2020 年你必须使用的最好的 Python IDEs 和代码编辑器
具有显著特性的顶级 Python IDEs 和代码编辑器
towardsdatascience.com](/best-python-ides-and-code-editors-you-must-use-in-2020-2303a53db24)
8.NLTK
**核心任务:**文本处理
NLTK 简称自然语言工具包是一个开源的自然语言处理库和工具集合。自然语言工具包的简称,该库为任何使用自然语言的人提供了超过 50 种语言资源。这包括用于分类、标记、词干、解析、标记化和其他相关任务的工具,适用于学生、研究人员、分析人员和教育工作者。
该图书馆看到了它在各种研究领域的用途,包括人工智能、语言学、数据科学、机器学习等等。NLTK 的主要优势包括:
● 在教授计算语言学的教育机构和使用自然语言的工作场所中非常有名
● Python 让自然语言处理变得更加容易
● 它附带了全面的文档、一本介绍性的书和一些 API 来充分利用这个库
资源—
用于自然语言处理的流行 python 库概述
towardsdatascience.com](/python-libraries-for-natural-language-processing-be0e5a35dd64)
9. SciPy
SciPy 是一个面向数据科学的多领域开源 Python 库,涵盖科学、数学和工程。构成 SciPy 生态系统的核心组件是 NumPy、SciPy 库、Matplotlib、IPython、SymPy 和 Pandas,这使得它可以在上述领域中有效地使用。
作为一个用户友好的库,开发人员可以很容易地从 SciPy 提供的各种好处中受益,例如:
● 出色支持广泛的构建模块和操作,包括高性能计算和质量保证
● 带有大量内置函数和子程序,让你快速入门
● 支持代数、微积分、微分方程、
● 支持数据优化、整合、插值和修改
SciPy 2020 机械学习讲座现已上线—
10. Matplotlib — 使用 Python 进行可视化
最新版本— 3.3.0:
Matplotlib 是 Python 工具库中著名的开源图形绘制库。在执行数学任务时,Matplotlib 与 NumPy 配合得很好。它通过其强大的 API 提供无缝嵌入选项,将 matplotlib 生成的图形集成到其他应用程序中。matplotlib 的一些突出特性包括:
● 各种各样的静态、动画和交互式图形和图表可供选择
● 支持可视化定制和导出
● 允许额外的工具包,包括第三方工具包,以扩展 matplotlib 提供的核心功能
● 活跃的开发人员组成的强大社区定期为项目做出贡献
Matplotlib 教程—https://matplotlib.org/tutorials/index.html
Google Trends — Matplotlib 利息随时间变化
谷歌趋势 Matplotlib( 来源)
11.Seaborn-S统计数据可视化
Seaborn 是 Python 中用于可视化的一个开源库,它基于 matplotlib,并在 matplotlib 生成的图形和图表上提供了一个额外的定制层。该库通过对数据帧和数组进行操作并执行相关映射,努力为数据的独特表示提供显著的信息统计可视化。seaborn 提供的许多功能包括:
● 带有丰富的可视化集合
● 通过提供工具和内置主题对图表进行严格控制
● 能够构建高级抽象来创建复杂的可视化
● 分析变量间关系的 API
Seaborn 官方教程—
[## seaborn 官方教程- seaborn 0.10.1 文档
编辑描述
seaborn.pydata.org](https://seaborn.pydata.org/tutorial.html)
12.统计模型
Statsmodels 是一个开源的统计驱动模块,它为许多可用于统计分析和数据探索的统计模型提供了各种类和函数。该模块涵盖了大量的模型,从线性回归,离散模型,时间序列分析,生存分析,以及许多其他杂项模型。stats 模型的一些主要特性包括:
● 提供强大的统计分析、测试和模型估计能力
● 模型的各种测试,如拟合优度、正态性等
● 支持附加模型,如鲁棒线性模型、混合线性模型、
● 非参数统计
结论
Python 生态系统有大量的库可以帮助你完成各种各样的任务,而且效率也是最优的。在整篇文章中,我们讨论了十几个高性能的顶级 Python 库,涵盖了广泛的领域,包括数据科学,甚至机器学习和深度学习。当然,Python 生态系统比上面提到的库要广泛得多,它还涵盖了几个满足特定需求的库。我们敦促我们的访问者和开发者看看这些,并探索更新和更新的库的生态系统,如果你正在寻找一些特定的东西,因为更新的库经常出现。
注: 为了消除各种各样的问题,我想提醒你一个事实,这篇文章仅代表我想分享的个人观点,你有权不同意它。
更多有趣的阅读—
我希望这篇文章对你有用!下面是一些有趣的读物,希望你也喜欢
数据科学工具,使任务可以实现
towardsdatascience.com](/best-data-science-tools-for-data-scientists-75be64144a88) [## 2020 年必读的机器学习书籍
看看吧,你为什么要读它们?
towardsdatascience.com](/machine-learning-books-you-must-read-in-2020-d6e0620b34d7) [## Python vs. Node。JS:哪个最适合你的项目?
使用一组预定义的因素对 Python 和 Node.js 进行详细比较
towardsdatascience.com](/python-vs-node-js-which-one-is-best-for-your-project-e98f2c63f020) [## 2020 年必读的数据科学书籍
看看吧,你为什么要读它们?
towardsdatascience.com](/data-science-books-you-must-read-in-2020-1f30daace1cb) [## 10 家使用 Python 的世界级公司
Python 正被 IT 界的一些巨头积极使用
towardsdatascience.com](/10-world-class-companies-using-python-26cde24919a8)
关于作者
克莱尔 D 。在digital ogy—是一个内容制作者和营销人员。这是一个技术采购和定制匹配市场,根据全球各地的特定需求,将人们与预先筛选的&顶尖开发人员和设计师联系起来。连接DigitalogyonLinkedinTwitterinsta gram。******
数据科学的顶级 R 库
面向数据科学的流行 R 库概述
照片由来自 Pexels 的 Markus Spiske 拍摄
数据科学是让数据变得有用的学科
当我们谈论数据科学的顶级编程语言时,我们经常发现 Python 是最适合这个话题的。当然,对于大多数以数据科学为中心的任务来说,Python 无疑是一个极好的选择,但是还有另一种专门为数据科学提供卓越的数字处理能力的编程语言,那就是 r .
除了提供强大的统计计算之外,R 还提供了大量资源丰富的库,准确地说超过了 16000 个,满足了数据科学家、数据挖掘者和统计学家的需求。此外,在本文中,我们将介绍一些顶尖的数据科学 R 库。
最近更新由克莱尔 d。人工智能创新的加速增长已经导致几个…
blog.digitalogy.co](https://blog.digitalogy.co/r-for-data-science/)****
数据科学最佳 R 库
r 在数据挖掘者和统计学家中非常受欢迎,部分原因是 r 自带的广泛的库,这些工具和函数能够在很大程度上简化统计任务,使得诸如数据操作、可视化、网页抓取、机器学习等任务变得轻而易举。下面简要介绍了一些库:
1. dplyr
dplyr 包,也称为数据操作的语法,本质上提供了数据操作常用的工具和函数,包括以下函数:
- filter(): 根据标准过滤您的数据
- mutate(): 添加新变量,作为现有变量的函数
- select(): 根据名称选择变量
- ****summary():帮助汇总来自多个值的数据
- arrange(): 用于重新排列行的顺序
- 此外,您可以使用 group_by()函数,它可以返回根据需求分组的结果。如果您热衷于检查 dplyr 包,您可以从tidy verse中获得它,或者使用命令“install.packages("dplyr ")直接安装该包。****
2.tidyr
tidyr 是tidy verse生态系统中的核心包之一,顾名思义就是用来收拾杂乱的数据。现在,如果你想知道什么是整洁的数据,让我为你澄清一下。一个整齐的数据表示每一列都是变量,每一行都是观测值,每一个单元格都是奇异值。
根据 tidyr 的说法,整理数据是一种存储将在整个 tidyverse 中使用的数据的方式,可以帮助您节省时间并提高分析效率。你可以从 tidyverse 或者通过下面的命令“install.packages("tidyr ")”来获得这个包。
使用谷歌人工智能中心将想法变为现实
towardsdatascience.com](/top-google-ai-tools-for-everyone-60346ab7e08)
3. ggplot2
ggplot2 是用于数据可视化的顶级 R 库之一,并被全球成千上万的用户积极用于创建引人注目的图表、图形和绘图**。这种流行背后的原因是 ggplot2 是为了简化可视化过程而创建的,它从开发人员那里获取最少的输入,例如要可视化的数据、样式和要使用的原语,而将其余的留给库。**
结果是一个图表,可以毫不费力地呈现复杂的统计数据,实现即时可视化。如果你想给你的图表增加更多的可定制性,你可以使用像RStudio 这样的 ide 来进行更精细的控制。你可以通过 tidyverse 集合或者通过命令“install.packages("ggplot2 ")”使用独立库来获得 ggplot2。
阅读 R 文档,了解 ggplot2 功能-
一个基于“图形语法”的“声明式”创建图形的系统。你提供数据,告诉…
www.rdocumentation.org](https://www.rdocumentation.org/packages/ggplot2/versions/3.1.0)
4.润滑剂
对于数据科学来说,R 是一种优秀的编程语言,但是在某些领域,R 可能感觉不够完善。其中一个领域是日期和时间的处理。对于任何大量使用 R 中的日期和时间的人来说,可能会发现它的内置功能很麻烦。
为了克服这一点,我们有一个方便的包叫做lubridate**。**这个包不仅处理 R 中的标准日期和时间,还提供了额外的增强功能,如时间段、夏令时、闰日、支持各种时区、快速时间解析和许多辅助功能。如果你的项目需要处理时间和日期,你可以从 tidyverse 获得 lubridate 包,或者用“install . packages(" lubridate ")”命令安装这个包。****
阅读此处的文档:
功能与日期时间和时间跨度:快速和用户友好的日期时间数据解析,提取和…
www.rdocumentation.org](https://www.rdocumentation.org/packages/lubridate/versions/1.7.4)
5.格子木架
点阵 是另一个优雅而又强大的数据可视化库专注于多元数据。这个库的特别之处在于,除了处理常规可视化,lattice 还准备好了对非标准情况和需求的支持。由于是 R 的格子图形的实际实现,它允许你创建格子图形,甚至提供选项来根据你的需求调整图形。lattice 默认自带 R,但是有一个 lattice 的高级版本叫做 latticeExtra ,如果你想扩展 lattice 提供的核心特性,这个版本可能会派上用场。
6.最低贷款利率(minimum lending rate)
R(mlr) 中的机器学习,是一个在 2013 发布,并在 2019 更新为 mlr3 的库,拥有更新的技术,更好的架构,以及核心设计。到目前为止,该库提供了一个框架来处理几种分类、回归、支持向量机和许多其他机器学习活动。
mlr3 面向机器学习从业者和研究人员,方便各种 机器学习算法 的基准测试和部署,没有太多麻烦。对于那些希望扩展甚至组合现有学习者并微调任务最佳技术的人来说,mlr3 是一个完美的选择。可以使用命令“install.packages("mlr3 ")”安装 mlr3。
这里提到了广泛的功能—
[## mlr 包| R 文档
接口到大量的分类和回归技术,包括机器可读的参数…
www.rdocumentation.org](https://www.rdocumentation.org/packages/mlr/versions/2.13)
7.插入符号
分类和回归训练的简称, caret 库提供了几个函数,针对棘手的回归和分类问题优化模型训练的过程。caret 附带了几个额外的工具和功能,用于数据分割、变量重要性估计、特征选择、预处理等任务。使用 caret,您还可以测量模型的性能,甚至可以根据您的需求使用各种参数(如 tuneLength 或 tuneGrid)来微调模型行为。这个包本身很容易使用,并且只加载必要的组件。这个库可以用命令“install.packages("caret ")”来安装。****
用一组预定义的因素详细比较 Python 和 R
towardsdatascience.com](/python-vs-and-r-for-data-science-4a32580846a4)
8.埃斯奎塞
esquisse 本身并不是一个库,而是强大的数据可视化库 ggplot2 的一个 addin。您可能想知道为什么在 ggplot2 中需要这个,让我来为您解释一下。ggplot2 已经足够智能了,但是如果您需要一个额外的可视化层,esquisse 是正确的选择。esquisse 允许您简单地拖放所需的数据,选择所需的定制选项,这样您就有了一个在短时间内构建的定制图,并准备好导出到您选择的应用程序。使用 esquisse,您可以创建可视化效果,如条形图、直方图、散点图、sf 对象。您可以使用“install.packages("esquisse ")”将 esquisse 添加到您的环境**。**
9.闪亮的
闪亮的 是来自 RStudio 的一个 web 应用框架**,它允许开发者在最少的 web 开发背景下使用 R 创建交互式 web 应用。有了 shiny,你可以构建网页、交互式可视化、仪表盘,甚至在 R 文档上嵌入小部件。shiny 还可以很容易地用 CSS 主题、JavaScript 动作和 htmlwidgets 进行扩展,以增加定制。它附带了许多吸引人的内置小部件,用于呈现 R 对象的绘图、表格和输出,无论你在 shiny 中编写什么,都可以即时生效,消除了那些烦人的频繁页面刷新。如果你对这些特性感兴趣并想尝试一下,你可以使用**命令“install.packages("shiny ")”来让自己变得闪亮。****
10.滚轮
如果你正在寻找一个工具来从网站上抓取数据并且也是以一种可理解的格式,不用再找了, Rcrawler 是你的正确选择。借助 Rcrawler 强大的网页抓取、数据抓取、数据挖掘能力,不仅可以抓取网站、抓取数据,还可以分析任何网站的网络结构,包括其内部和外部超链接。如果你想知道为什么不使用 rvest 的话,Rcrawler 包是 rvest 的升级版,因为它可以遍历网站上的所有页面并提取数据,这在试图从一个来源一次性收集所有信息时非常有用。这个包可以用命令“install.packages("Rcrawler ")”来安装。
11. DT
DT 包 充当了 JavaScript 库的包装器,称为 DataTables ,对于 R. DT,你可以将 R 矩阵中的数据转换成 HTML 页面上的交互表格,方便数据的搜索、排序和过滤。这个包的工作原理是让主函数(即 datatable()函数)为 R 对象创建一个 HTML 小部件。DT 允许通过“options”参数进行进一步的微调,甚至对表进行一些额外的定制,所有这些都不需要深入编码。可以使用命令“install.packages("DT ")”来安装 DT 包。
12.阴谋地
如果你想创造出抢尽风头的交互式可视化效果, plotly 将是你的完美选择。使用 plotly,您可以从各种图表和图形中创建令人惊叹的、值得出版的可视化效果,如散点图和折线图、条形图、饼图、直方图、热图、等高线图、时间序列,只要您能想到,Plotly 都能做到。plotly 可视化构建在 plotly.js 库之上,也可以通过 Dash 在 web 应用程序中显示,在 Jupyter 笔记本中显示,或者保存为 HTML 文件。如果您有兴趣试用这个包,您可以使用命令“install.packages("plotly ")”来安装它。
其他值得 R 库—
- 生物导体
- 针织工
- 看门人
- 随机森林
- e1071
- stringr
- 数据表
- RMarkdown
- Rvest
结论
在整篇文章中,我们介绍了一些涵盖常见数据科学任务的顶级 R 库,如可视化、语法、机器学习模型训练和优化。我们知道这并不是一个详尽的列表,也绝不是 R 拥有的庞大的图书馆生态系统的全部。CRAN 是所有东西的储存库,它有数千个同样强大和足智多谋的库,可以满足您的特定需求,提供详细的信息和文档,如果您需要找到一个库,我们强烈建议您尝试一下 CRAN。
注: 为了消除各种各样的问题,我想提醒你一个事实,这篇文章仅代表我想分享的个人观点,你有权不同意它。如果我错过了任何重要的库,请在评论区告诉我。
更多有趣的阅读—
我希望这篇文章对你有用!下面是一些有趣的读物,希望你也会喜欢
现代机器学习模型和项目的 Python 库
towardsdatascience.com](/best-python-libraries-for-machine-learning-and-deep-learning-b0bd40c7e8c) [## 2020 年必读的数据科学书籍
看看吧,你为什么要读它们?
towardsdatascience.com](/data-science-books-you-must-read-in-2020-1f30daace1cb) [## 数据科学家的最佳数据科学工具
数据科学工具,使任务可以实现
towardsdatascience.com](/best-data-science-tools-for-data-scientists-75be64144a88) [## 面向数据科学的顶级 Python 库
面向数据科学的流行 Python 库概述
towardsdatascience.com](/top-python-libraries-for-data-science-c226dc74999b) [## 2020 年你必须使用的最好的 Python IDEs 和代码编辑器
具有显著特性的顶级 Python IDEs 和代码编辑器
towardsdatascience.com](/best-python-ides-and-code-editors-you-must-use-in-2020-2303a53db24)
关于作者
克莱尔 D 。在digital ogy—是一个内容制作者和营销人员。这是一个技术采购和定制匹配市场,根据全球各地的特定需求,将人们与预先筛选的&顶尖开发人员和设计师联系起来。连接DigitalogyonLinkedinTwitterinsta gram。******
数据科学最佳 R 库和包
你可能想知道。
隔离第 10 天:清理我的笔记本电脑文件时,我发现了几个月前我设计的封面图片,但一直没有机会完成这个故事。所以,我想自我隔离让你除了完成未竟的事业之外别无选择。😛
我们经常在 Python 中遇到顶级的数据科学库或包,但我们错过的是,有更多的流行编程语言已知可以与它们的支持者和反对者一起执行不同的数据科学任务。数据科学的一种流行语言是 R;数据科学领域中一个众所周知且越来越受欢迎的工具。
虽然我们知道数据科学中最常用的 Python 库,但这里我根据我的经验,为数据科学家和工程师准备了一些最有用的 R 库。有些你会知道,有些你会去探索。
r 是一个主要为*统计计算设计的软件环境。*界面和结构非常适合与算法和数据建模相关的任务。拥有 100 多个库,R 已经成为最发达的库系统之一,可以计算成千上万个包来解决各种各样的问题。
在开发统计软件和数据分析的统计学家和数据挖掘者中很流行,也存在一个关于 R 过时或它与 Python 的比较的持续争论。Python 和 R 是两种不同的编程语言,处理不同的应用程序,因此,从技术上来说,这两种语言不应该进行比较。
然而,这里我们从不同的数据科学操作开始,如数据操作、可视化、竞争研究和机器学习。
数据操作
dplyr
dplyr 提供了子集化、汇总、重新排列和连接数据集的基本功能。dplyr 是我们快速数据操作的首选包。dplyr 的主要操作功能是过滤、选择、排列、变异和汇总(分组)
数据表
data.table 是 data.frames 的增强版本,基本上是对 r 中的数据进行排序。使用data.table,
可以执行数据操作,如子集*、组、更新、连接等。都有内在的联系。将这些相关的操作放在一起可以加快操作速度*
readr
读取矩形文本数据(readr)提供了一种快速友好的方法来读取矩形数据,如 csv(逗号分隔值)、tsv(制表符分隔值)、delim(分隔值)和 fwf(固定宽度文件)。它被设计成灵活地解析在野外发现的多种类型的数据,同时当数据意外改变时仍然完全失败。readr 是核心 tidyverse 的一部分,所以安装 tidyverse 应该也可以。
tidyr
tidyr 确实使 R 数据变得整洁。一个整洁的数据是很重要的,因为确保这一点,你将花费更少的时间与工具斗争,更多的时间在你的分析上。此包提供了使用聚集和扩散功能将数据转换为整齐格式来更改数据集布局的工具
stringr
tidy verse 家族的另一个有用的成员, stringr 包提供了一套全面的函数,用于轻松处理正则表达式和字符串。
润滑剂
使跨持续时间、期间、间隔处理日期和时间更容易的工具。获得 lubridate 的最简单方法是不要安装整个 tidyverse,或者只安装 lubridate。
数据可视化
ggplot2
r 的 rich ecosytem 有许多著名的制作漂亮图形的软件包,但最流行和常用的可视化软件包之一是 ggplot2。它让您使用图形的语法来构建分层的、可定制的图。
ggvis
使用图形语法构建的基于 web 的交互式图形的实现。将利润丰厚的 react 编程融入数据操作的语法中。使用 ggvis 很容易构建用于探索性数据分析的交互式图形。
它在视觉表现上不同于 ggplot2。每个交互式 ggvis 绘图必须连接到正在运行的 R 会话;作为 ggplots 的静态图不需要运行 R 会话即可查看。(用 ggplot 和 ggvis 检查vega
)
rgl
rgl 是一个 3D 图形包,可生成实时交互式 3D 绘图。它允许交互式旋转,缩放图形和选择区域。rgl 包还包括一个名为 R3D 的通用 3D 接口。它包含高级图形命令,大致模仿经典 R 图形,但在三维空间中工作。
html 小部件
用 R 构建交互式(基于 javascript)可视化的一种更快更有效的方法是通过 htmlwidgets。实现 htmlwidgets 的包有传单(地图)、dygraphs(时间序列)、DT(表格)、diagrammeR(图表)、network3D(网络图)、threeJS (3D 散点图和地球仪)。
格子木架
lattice 是一个附加包,作为 r 的 Trellis graphics 的实现。它是一个强大而优雅的高级数据可视化系统,侧重于多元数据。
(Trellis Graphics 是由 Rick Becker、Bill Cleveland 等人在贝尔实验室开发的数据可视化框架,扩展了 Bill Cleveland 在 1993 年出版的著作可视化数据中提出的观点)**
机器学习
最低贷款利率(minimum lending rate)
mlr 是 R 中流行的机器学习包,它将数据接口到大量的分类和回归技术。mlr 到分机也可以处理
- 生存分析、聚类和一般的、特定示例的成本敏感学习
- 通用重采样,包括交叉验证、引导和二次采样
- 用现代优化技术调整超参数,用于单目标和多目标问题
- 用于特征选择的过滤器和包装器方法
- 使用机器学习中常见的附加操作扩展基本学习器,还允许简单的嵌套重采样
随机森林
一旦我们将数据训练分为训练集和测试集,由randomForest
包提供的随机森林分类器就可以用来构建一个有 n 棵树的随机森林。(注意:与scikit-learn
不同,我们不需要显式调用fit
方法来训练我们的模型)。在 R 中,默认情况下,随机森林中决策树的数量是 500,用作每次分裂潜在候选的特征的数量是 3。
脱字号
caret
包(简称为 C 分类 A 和REgressionTraining)是一组试图简化创建预测模型过程的函数。该包包含用于以下目的的工具:
- 数据分割
- 数据预处理
- 特征选择
- 使用重采样的模型调整
- 可变重要性估计(
importance = 1)
e1071
该软件包广泛用于实现聚类、傅立叶变换、朴素贝叶斯、SVM* 和其他类型的杂项机器学习相关功能。*
视频高密光盘
分类数据的可视化工具和测试
glmnet
交叉验证的套索和弹性网回归方法
试用tree, maptree, mlbench, ipred, MASS
进行更多的机器学习操作。
关于有用的 R 包的快速列表的 R 官方文档的精彩资源可以在这里找到。
感谢您的阅读!我希望你喜欢这篇文章。请告诉我,在您的数据科学之旅中,您使用过或期待学习或探索过哪些包或库?
数据帐篷快乐!
免责声明:本文表达的观点仅代表我个人,不代表严格的观点。
了解你的作者
拉什是芝加哥伊利诺伊大学的研究生。她喜欢将数据可视化,并创造有见地的故事。她是用户体验分析师和顾问、技术演讲者和博客作者。