开发 | 数据预处理和挖掘究竟该怎么做?硅谷网红告诉你

Siraj Raval 作为深度学习领域的自媒体人在欧美可以说是无人不知、无人不晓。

凭借在 Youtube 上的指导视频,Siraj Raval 在全世界吸粉无数,堪称是机器学习界的网红。说他是全球范围内影响力最大的 ML 自媒体人,怕也无异议。

因此,AI 研习社联系到了 Siraj 本人,并获得授权将他最精华的 Youtube 视频进行字幕汉化,免费推送给大家。我们将不定期更新,敬请关注!

雷锋字幕组为大家最新译制了 Siraj 深度学习系列,从机器学习和神经网络架构类型到数据可视化、小样本学习等从基础到应用的技巧,争取带领希望掌握神经网络的神奇魔力和想成为深度学习工程师的大家伙早日入坑!哦不,走向巅峰!!

今天主要讲的内容是数据预处理。

(建议在 Wi-Fi 环境下观看视频,土豪随意~)

为了方便流量不足的小伙伴们在路上看,我们特意整理出了图文版:

在这个充斥着怀疑和谎言的网络世界中,数据即真相。海量的原始数据正以惊人的速度增长,其中大部分都是非结构化的,但是通过运用分析我们可以发现其中重要的规律和线索以及隐藏在数字背后的含义。今天我们将学习如何预处理数据,这是重要也最容易忽视的步骤之一,关键点如下:

  • 预处理数据集有三步:清洗、转换和简化
  • 深度学习可以自己从数据集中找到相关特征
  • PCA是常用的降维方法之一,可以通过Scikit-learn中模块操作

数据预处理的三个核心步骤是:清洗,转换,简化。

例子中的第一个数据集与音乐相关,是通过一款名为“Tag A Tune”的小游戏搜集的(玩法请自行百度)。数据集里有25,000首歌以及正确的标签。我们想以此数据集作为一个训练样本来建立一个可以区分歌曲所属标签种类的模型。

先导入Pandas来分析这个数据,通过读取CSV函数来导入数据,它将在pandas中创建一个数据框。这个数据框很容易修改,我们将它命名为newdata。将head函数中参数设置为5,可以显示数据的头5条记录。每一行都被排了序,每首歌都有一个id,每个标签的值为0或者1,代表这首歌是否有这个标签。

通过info()函数来获取关于数据的更多信息,数据大小只有38MB。每个标签都有一个简单的二元取值,幸运的是每个字段也没有空值,可以直奔第二步:数据转换。

很多标签听上去很类似,例如女歌手,女声,可以将它们统一归为一个特征"女“。我们可以为数据中的同义词创建一个二维列表,然后将它们合并到只剩第一列。对于列表中的每一组同义词,将每一特征的最大值保留下来。对于数据中的同义词,可以有效地把一组同义词合并为一列,然后删掉其他类似的词,这样可以得到更规范的特征。在数据简化过程中,我们可以删除那些不需要的信息。接下来我们可以准备模型用到的训练集和测试集。

有一点需要注意,在整个过程中我们并没有考虑哪些特征要用,哪些不用。在没有深度学习的时候,我们需要先选择合适的特征来喂一个模型。但是深度学习不需要我们再自行筛选特征了,它会根据我们放入模型的数据集,决定哪些与问题相关。在深度学习中,常说架构工程是新的特征工程。

第二个例子中的数据集是关于网络连接,网络连接要么正常,要么异常。异常连接是由于有入侵导致。我们想通过一系列特征判定网络连接正常或异常。当我们检查该数据的时候,数据中没有空值,也没有异常值。因此,可以直接跳过清理数据一步,直接进行数据转换。

数据集中数值型变量的范围差异较大,需要先将这些变量进行标准化,可以直接用Scikit-learn里面的Standard Scaler模块对数据进行标准化。标准化完毕后,接下来对数据进行简化。数据中包含很多字段,其中有相当一部分还是高度相关的。我们可以通过“降维”的方法将特征的总数减少,这样也有利于将数据在2D或3D的空间中展示,但这并不保证模型的结果将更精准,只是让我们的数据更容易理解。

一种降维的方法是PCA(Principal Component Analysis)。数据有诸多特征,缩减它们只需要三步:首先是将数据标准化,然后计算相关系数矩阵,算出特征值和特征向量后进行主成分排名。例如我们有四个特征,想通过PCA的方法将其减少至两个,一共5个步骤:

  1. 将数据标准化
  2. 计算协方差矩阵
  3. 特征分解(Eigen decomposition)
  4. 构成新投影矩阵(Projection Matrix)
  5. 通过这个矩阵来对原来数据进行转换

许多入门教程在导入数据时只教如何导入预处理过的数据,例如手写体数字或者电影评分数据,用一行代码就能搞定,但实际操作没那么简单。遇到实际问题,都需要先找到正确的数据集,最终预测的结论依赖于最初导入的数据。所谓:种瓜得瓜,种豆得豆。

Siraj Raval 何许人也?

Siraj Raval 是 YouTube 极客网红,曾任职于 Twilio 和 Meetup,客户包括 Elon Mask 和 Google,教大家如何使用机器学习开发聊天机器人、无人驾驶车、AI 艺术家等视频点击量累计数百万。

Siraj Raval 为什么这么火?

首先,当然是这位哥伦比亚大学高材生活儿好技术好,用自己特有的方式三言两语就能抛出一个原本晦涩的 ML、DL 概念,让听众细细咀嚼。再者,这家伙幽默逗比、口才便给。兴之所至常手舞足蹈,瞳仁奇光掩映,口吐智慧莲华。深度学习讲师不少,但这么风趣可亲的却不多。

延伸阅读:你在数据预处理上花费的时间,是否比机器学习还要多?

获取代码:https://github.com/llSourcell/How_to_Make_Data_Amazing

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

机器学习在web攻击检测中的应用实践

作者简介 岳良, 携程信息安全部高级安全工程师。2015年加入携程,主要负责渗透测试,安全评审,安全产品设计。 一、背景 ? 在web应用攻击检测的发展历史中,...

3927
来自专栏人工智能头条

通过Amazon Machine Learning建立一个数值回归模型

1495
来自专栏媒矿工厂

HDR关键技术:HEVC/H.265编码优化

与传统标准动态范围(SDR)视频相比,高动态范围(HDR)视频由于比特深度的增加提供了更加丰富的亮区细节和暗区细节。最新的显示技术通过清晰地再现HDR视频内容使...

890
来自专栏数说工作室

文本相似度 | 余弦相似度思想

我一直觉得,在数据分析领域,只有文本分析是最“接地气儿”的,“接地气儿”不是指最简单,而是我们普通大众的使用它最多。 我们每天使用互联网,但不一定每个人都炒股...

3037
来自专栏华章科技

为什么你的数据分析那么好,图表做得那么烂?

所有优秀的数据可视化依赖优异的设计,并非仅仅选择正确的图表模板那么简单。全在于以一种更加有助于理解和引导的方式去表达信息,尽可能减轻用户获取信息的成本。当然并非...

752
来自专栏racaljk

人工智能各种技术与算法

>搜索策略(Search Strategies)//详细请参见http://blog.csdn.net/racaljk/article/details/1888...

713
来自专栏数据小魔方

人口金字塔图

今天跟大家分享的图表是——人口金字塔图! 人口金字塔图是按照人口年龄和性别表示人口分布状况的情况,能形象的表示人口某一年龄和性别构成。 该图表对于数据组织的要求...

3497
来自专栏CSDN技术头条

干货 | 机器学习在web攻击检测中的应用实践

一、背景 在web应用攻击检测的发展历史中,到目前为止,基本是依赖于规则的黑名单检测机制,无论是web应用防火墙或ids等等,主要依赖于检测引擎内置的正则,进行...

1849
来自专栏人工智能头条

除了AutoGraph还有 ...... 这两天TensorFlow真是会搞事情

【人工智能头条导读】昨天谷歌发布了 TensorFlow 的一个新工具 —— AutoGraph,可以将 Python 代码快速转化到 TensorFlow 的...

781
来自专栏Albert陈凯

算法与数据结构algorithm

算法与数据结构 《Data structures》 介绍:高级数据结构大全,基本算法:二叉树等 《基于用户投票的排名算法(一):Delicious和Hacker...

2655

扫描关注云+社区