0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开源工具就是你数据科学入门时所需的全部内容

电子工程师 来源:未知 作者:李倩 2018-11-12 14:15 次阅读

不需要昂贵的工具即可领略数据科学的力量,从这些开源工具起步即可。

无论你是一个具有数学或计算机科学背景的资深数据科学爱好者,还是一个其它领域的专家,数据科学提供的可能性都在你力所能及的范围内,而且你不需要昂贵的,高度专业化的企业级软件。本文中讨论的开源工具就是你入门时所需的全部内容。

Python,其机器学习和数据科学库(pandas、Keras、TensorFlow、scikit-learn、SciPy、NumPy等),以及大量可视化库(Matplotlib、pyplot、Plotly等)对于初学者和专家来说都是优秀的自由及开源软件工具。它们易于学习,很受欢迎且受到社区支持,并拥有为数据科学而开发的最新技术算法。它们是你在开始学习时可以获得的最佳工具集之一。

许多 Python 库都是建立在彼此之上的(称为依赖项),其基础是NumPy库。NumPy 专门为数据科学设计,经常被用于在其 ndarray 数据类型中存储数据集的相关部分。ndarray 是一种方便的数据类型,用于将关系表中的记录存储为cvs文件或其它任何格式,反之亦然。将 scikit 函数应用于多维数组时,它特别方便。SQL 非常适合查询数据库,但是对于执行复杂和资源密集型的数据科学操作,在 ndarray 中存储数据可以提高效率和速度(但请确保在处理大量数据集时有足够的 RAM)。当你使用 pandas 进行知识提取和分析时,pandas 中的 DataFrame 数据类型和 NumPy 中的 ndarray 之间的无缝转换分别为提取和计算密集型操作创建了一个强大的组合。

作为快速演示,让我们启动 Python shell 并在 pandas DataFrame 变量中加载来自巴尔的摩的犯罪统计数据的开放数据集,并查看加载的一部分 DataFrame:

>>> import pandas aspd

>>> crime_stats =pd.read_csv('BPD_Arrests.csv')

>>> crime_stats.head()

我们现在可以在这个 pandas DataFrame 上执行大多数查询,就像我们可以在数据库中使用 SQL 一样。例如,要获取Description属性的所有唯一值,SQL 查询是:

$ SELECT unique(“Description”) from crime_stats;

利用 pandas DataFrame 编写相同的查询如下所示:

它返回的是一个 NumPy 数组(ndarray 类型):

>>>type(crime_stats['Description'].unique())

接下来让我们将这些数据输入神经网络,看看它能多准确地预测使用的武器类型,给出的数据包括犯罪事件,犯罪类型以及发生的地点:

现在学习模型准备就绪,我们可以执行一些测试来确定其质量和可靠性。对于初学者,让我们输入一个训练集数据(用于训练模型的原始数据集的一部分,不包括在创建模型中):

>>>predict_weapon.predict(training_set_weapons)

array([4, 4, 4, ...,0, 4, 4])

如你所见,它返回一个列表,每个数字预测训练集中每个记录的武器。我们之所以看到的是数字而不是武器名称,是因为大多数分类算法都是用数字优化的。对于分类数据,有一些技术可以将属性转换为数字表示。在这种情况下,使用的技术是标签编码,使用 sklearn 预处理库中的 LabelEncoder 函数:preprocessing.LabelEncoder()。它能够对一个数据和其对应的数值表示来进行变换和逆变换。在这个例子中,我们可以使用 LabelEncoder() 的 inverse_transform 函数来查看武器 0 和 4 是什么:

>>>preprocessing.LabelEncoder().inverse_transform(encoded_weapons)

array(['HANDS', 'FIREARM', 'HANDS', ...,'FIREARM', 'FIREARM', 'FIREARM']

这很有趣,但为了了解这个模型的准确程度,我们将几个分数计算为百分比:

>>>nn_model.score(X, y)

0.81999999999999995

这表明我们的神经网络模型准确度约为 82%。这个结果似乎令人印象深刻,但用于不同的犯罪数据集时,检查其有效性非常重要。还有其它测试来做这个,如相关性、混淆、矩阵等。尽管我们的模型有很高的准确率,但它对于一般犯罪数据集并不是非常有用,因为这个特定数据集具有不成比例的行数,其列出 FIREARM 作为使用的武器。除非重新训练,否则我们的分类器最有可能预测 FIREARM,即使输入数据集有不同的分布。

在对数据进行分类之前清洗数据并删除异常值和畸形数据非常重要。预处理越好,我们的见解准确性就越高。此外,为模型或分类器提供过多数据(通常超过 90%)以获得更高的准确度是一个坏主意,因为它看起来准确但由于过度拟合而无效。

Jupyter notebooks 相对于命令行来说是一个很好的交互式替代品。虽然 CLI 对于大多数事情都很好,但是当你想要运行代码片段以生成可视化时,Jupyter 会很出色。它比终端更好地格式化数据。

这篇文章 列出了一些最好的机器学习免费资源,但是还有很多其它的指导和教程。根据你的兴趣和爱好,你还会发现许多开放数据集可供使用。作为起点,由 Kaggle 维护的数据集,以及在州政府网站上提供的数据集是极好的资源。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4575

    浏览量

    98790
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83476
  • 数据科学
    +关注

    关注

    0

    文章

    163

    浏览量

    9982

原文标题:Python 数据科学入门

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    介绍几大引人注目的开源数据工具

    数据技术领域正被越来越多的公司关注,而开源一直是大数据技术的灵魂。随着一些细分领域对大数据工具提出更高的期望和要求,一批更高效更有针对性的
    的头像 发表于 01-29 08:46 8600次阅读
    介绍几大引人注目的<b class='flag-5'>开源</b>大<b class='flag-5'>数据</b><b class='flag-5'>工具</b>

    如何将数据库中某表的全部内容复制到另一数据库文件里?

    或者将数据库中一张表的全部内容复制到数据库中另一张表中
    发表于 03-15 16:02

    LOTO开源DIY扩展板PCB的多功能应用---如何把的示波器的DIY潜能全部挖掘出来?

    `LOTO开源DIY扩展板PCB的多功能应用---如何把的示波器的DIY潜能全部挖掘出来?LOTO示波器的DE-15接口提供了各种硬件资源。这里发布一个开源的简单的DIY扩展板的PC
    发表于 06-11 09:55

    Arduino入门

    Arduino入门欢迎来到Arduino的世界入门所需Arduino Nano板介绍Arduino IDE 简单使用如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合
    发表于 01-21 09:52

    平衡车设计所需全部资料

    平衡车设计所需全部资料,包括控制部分、原理、软件、硬件设计等。大家可以一起学习,有问题可以直接向我咨询!
    发表于 10-09 06:30

    omate6000e所需工具

    omate6000e所需工具
    发表于 12-24 23:37 0次下载

    2018年数据科学和机器学习工具调查

    近日,数据科学网站KDnuggets发布 2018年数据科学和机器学习工具调查结果。
    的头像 发表于 06-07 17:05 4038次阅读
    2018年<b class='flag-5'>数据</b><b class='flag-5'>科学</b>和机器学习<b class='flag-5'>工具</b>调查

    Python网页爬虫,文本处理,科学计算,机器学习和数据挖掘工具

    本文档的主要内容详细介绍的是Python工具包合集包括了:网页爬虫工具集,文本处理工具集,Python科学计算
    发表于 09-07 17:14 37次下载
    Python网页爬虫,文本处理,<b class='flag-5'>科学</b>计算,机器学习和<b class='flag-5'>数据</b>挖掘<b class='flag-5'>工具</b>集

    IBM与NVIDIA携手为数据科学家拓展开源机器学习工具

    2018年10月,IBM宣布计划将全新RAPIDS™ 开源软件纳入到其企业级数据科学平台中,涵盖本地预置、混合云和多云环境。凭借其庞大的深度学习与机器学习解决方案组合,IBM能为偏好不同部署模型的
    的头像 发表于 10-20 09:43 2833次阅读

    Arduino实践中科学逻辑的应用和VVVV入门教程

    本文档的主要内容详细介绍的是openbook开源杂志2013年第五期主要内容包括了:Arduino实践中科学逻辑的应用和VVVV入门初级教程
    发表于 11-01 10:51 15次下载
    Arduino实践中<b class='flag-5'>科学</b>逻辑的应用和VVVV<b class='flag-5'>入门</b>教程

    如何用TensorFlow进行机器学习研究

    从理论上讲,这几乎是您使用 TensorFlow 进行机器学习研究所需要的全部内容
    的头像 发表于 02-05 10:06 1793次阅读
    如何用TensorFlow进行机器学习研究

    干货 数据科学入门指南

    最近,在Github上发现了一份数据科学的“入门套路”。无论你是从未尝试过编写代码,还是你需要深入复习相关数学知识,都可以在这份开源项目里找到你想要的 比如你是一位刚刚接触
    的头像 发表于 07-19 14:09 2961次阅读
    干货 <b class='flag-5'>数据</b><b class='flag-5'>科学</b><b class='flag-5'>入门</b>指南

    什么是数据科学数据科学入门教程说明

    本文档的主要内容详细介绍的是什么是数据科学数据科学入门教程说明
    发表于 04-10 08:00 1次下载
    什么是<b class='flag-5'>数据</b><b class='flag-5'>科学</b>?<b class='flag-5'>数据</b><b class='flag-5'>科学</b>的<b class='flag-5'>入门</b>教程说明

    2020年常见的20种数据科学工具,你了解多少

    执行数据科学任务的最佳工具有哪些?作为数据科学新手,你应该选择哪些工具? 我相信在你的
    的头像 发表于 08-27 15:56 3663次阅读

    Jeff Ullman:机器学习不是数据科学全部!统计学也不是

    Ullman 是数据科学领域的巨擘,他的研究兴趣包括数据库理论、数据库集成、数据挖掘等。在去年撰写的一篇评论文章中,他用浅显的语言重新定义
    的头像 发表于 04-09 10:14 1504次阅读