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

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 条评论
登录 后参与评论

相关文章

来自专栏应兆康的专栏

送给刚踏入数模路上的萌新们

送给刚踏入数模路上的萌新们 这里不会引用任何官方术语,均为我个人的理解,所以小伙伴们放心阅读 前面如果觉得很枯燥,可以调到后面,后面会提供干货 顺便打个广告,嘿...

38610
来自专栏AI2ML人工智能to机器学习

R语言和表数据分析

最近几年, 对于表数据分析有一些常见的问题, 譬如: 缺失值(Missing), 奇异值(Outlier)(参考 “一个奇异值的江湖 -- 经典统计观” 和 “...

441
来自专栏专知

【干货】最全知识图谱综述#1: 概念以及构建技术

【导读】知识图谱技术是人工智能技术的组成部分,其强大的语义处理和互联组织能力,为智能化信息应用提供了基础。我们专知的技术基石之一正是知识图谱-构建AI知识体系-...

1.9K5
来自专栏企鹅号快讯

7步让你从零开始掌握Python机器学习!

这篇文章旨在通过7个步骤,将最少的机器学习知识转化为知识型实践者,所有这一切都在使用免费的材料和资源。这个大纲的主要目标是帮助你通过许多可用的免费选项; 有很多...

21810
来自专栏大数据挖掘DT机器学习

PageRank算法(2):PageRank原理剖析

一、PageRank算法的简单举例 Google PageRank算法的思想精华在于:将一个网页级别/重要性的排序问题转化成了一个公共参与、以群体民主投票的方式...

4296
来自专栏PPV课数据科学社区

【学习】如何避免数据可视化的十大误区?不在出渣图表

数据可视化,是一种用来将复杂信息数据清晰表述出来的强大有力的工具。 通过可视化信息,我们的大脑可以更有效地合成和保留信息内容,增强对信息的理解。但是如果不正确数...

27210
来自专栏AI研习社

手把手教你用 R 语言分析歌词

翻译 | 刘朋 Noddleslee 程思婕 余杭 整理 | 凡江

1543
来自专栏机器学习算法与Python学习

干货 | 台大“一天搞懂深度学习”课程PPT(下载方式见文末!!)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 Deep Learing Tutor...

6454
来自专栏新智元

百度公开硬件基准 DeepBench,推动深度学习专用芯片研发竞争

2016年10月18日, 世界人工智能大会技术分论坛,特设“新智元智库院长圆桌会议”,重量级研究院院长 7 剑下天山,汇集了中国人工智能产学研三界最豪华院长阵容...

3856
来自专栏IT派

7步让你从零开始掌握Python机器学习!

这篇文章旨在通过7个步骤,将最少的机器学习知识转化为知识型实践者,所有这一切都在使用免费的材料和资源。这个大纲的主要目标是帮助你通过许多可用的免费选项; 有很多...

3224

扫码关注云+社区