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

    文章

    4765

    浏览量

    100616
  • python
    +关注

    关注

    56

    文章

    4784

    浏览量

    84512
  • 数据科学
    +关注

    关注

    0

    文章

    165

    浏览量

    10048

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    入门数据科学资源一览

    在本篇指南中,我们将会给初学者分享65个精心挑选并且带链接的免费数据资源。为了成为一名数据科学家,在前进的路上会遇到令人畏惧的挑战。将需
    发表于 09-22 14:25 0次下载

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

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

    开源工具Arena,数据科学家再也不用为Kubernetes犯难啦

    摘要: 为什么要用Kubernetes去难为数据科学家呢?2018年7月,阿里云将深度学习工具Arena贡献给了开源社区,数据
    发表于 08-21 15:54 105次阅读

    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 3013次阅读

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

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

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

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

    干货 数据科学入门指南

    最近,在Github上发现了一份数据科学的“入门套路”。无论是从未尝试过编写代码,还是需要深入复习相关数学知识,都可以在这份
    的头像 发表于 07-19 14:09 3196次阅读
    干货 <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>教程说明

    蓝牙智能小车手机遥控全部开源资料合集免费下载

    本文档的主要内容详细介绍的是蓝牙智能小车手机遥控全部开源资料合集免费下载。
    发表于 05-28 14:55 61次下载
    蓝牙智能小车手机遥控<b class='flag-5'>全部</b><b class='flag-5'>开源</b>资料合集免费下载

    数据科学和机器学习所需要的基本数学技能

    作为一切科学的基础,数学在数据科学领域也占据着重要地位。如果是一名数据科学爱好者,一定想过这些
    的头像 发表于 07-06 09:39 2560次阅读

    数据科学工具数不胜数——应该选择哪一个?

    我们得承认——数据科学的范围庞杂,每一个领域要求处理数据的方式各有不同,这让许多分析家/数据科学家陷入困惑。而如果
    的头像 发表于 08-27 15:55 1674次阅读

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

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