如何高效入门数据科学?

连接散落的教程文章,作个详细的导读,助你更高效入门数据科学。html

问题

2017年6月以来,我陆续在本身的简书专栏《玉树芝兰》里,写了一系列数据科学教程。算法

这源于一次研究生课编程工做坊尝试。受阎教练的创新思惟训练营启发,我在课后把词云制做流程详细记录转述,分享给了你们。编程

没想到,这篇《如何用Python作词云?》受到了读者们很是热烈的欢迎。后端

此后,一发不可收拾。微信

应读者的要求,结合我本身的学习、科研和教学实践,我陆续分享了更多与数据科学相关的文章网络

读者愈来愈多,我收到的问题也愈发五花八门。框架

许多读者的问题,我其实都已经在其余的文章里面讲解过了,所以有时用“请参考个人另外一篇文章《……》,连接为……”来答复,也帮助读者解决了问题。机器学习

在建构同理心(empathy)以前,估计我会问出这样的问题:工具

他们为何不翻翻个人其余文章呢?post

但如今,我能感觉到他们的疑惑:

我哪里知道你写过另外一篇文章?

散落在各处的文章,不容易系统学习和检索。因而我在2017年11月,把写过的数据科学系列教程聚集到了一块儿,作了个索引贴

我把这个索引贴连接置于每篇新教程的末尾,并不断更新维护。

然而,这样简单的标题索引,依然没法知足许多读者的需求

有的读者跟着教程作完了词云,发现若是对中文文本作分析,就会出现乱码:

这时候,你该怎么办呢?

更进一步,若是你但愿把词云的外边框变成指定的形状,又该如何操做?

光看标题,你可能不容易发现哪一篇文章会帮助本身解决这些问题,甚至可能会选择放弃

我决定作这个导读。

这篇文章,再也不是从任务出发,简单罗列文章标题和连接;而是从先易后难的认知习惯,从新组织文章顺序,简要介绍内容,提示可能遇到的问题。

但愿对你的学习能有帮助

基础环境

大部分的教程,都是在 Python 运行环境 Jupyter Notebook 下运行和演示。

安装这个运行环境,最简单的方法,就是安装 Anaconda 集成套件。

请先收看这个视频教程《如何安装Python运行环境Anaconda?(视频教程)》,本身尝试安装Anaconda,运行起第一个Jupyter Notebook,输出一个“Hello world!”出来。

有了这个基础,你就能够尝试不一样的数据科学任务了。

个人建议是先作词云。

由于简单,并且有成就感。

词云

跟着图文教程《如何用Python作词云?》一步步执行。用几行Python代码,你就能够作出这样的词云来。

我还专门把它升级作成了视频教程《如何用Python作词云?(基础篇视频教程)》,供你观看。

参看这篇文章《如何用Python作中文分词?》,你就能作出这样的中文词云。

若是你但愿改变词云边框外观,就参考这篇文章《Python编程遇问题,文科生怎么办?》的最后部分

到这里,你已掌握Python运行环境安装、文本文件读取、常见软件包调用、可视化分析与结果呈现和中文分词等基本功夫了。

回头望去,是否是成就感爆棚呢?

虚拟环境

细心的你,可能已经发现,图文教程和视频内容并不彻底一致

视频教程目前全系列采用Python 3.6版本,将来得及从新整理的词云图文教程,展现的确实2.7版本Python。

为何呢?

由于随着技术的发展,Python已经逐步要过渡到3.X版本了。

许多第三方软件包都已经宣布了时间表,尽快支持3.X,放弃2.X版本的支持。

才半年,你就能够感觉到技术、社群和环境的变化之快。

但是目前某些软件包,依然只能支持2.X版本Python。虽然这样的软件包愈来愈少了。

你须要暂时作个“两栖动物”,千万不要束缚本身,由于“立场缘由”执拗着不愿用低版本Python。这样吃亏的是本身。

怎样才能作个“两栖动物”呢?

办法之一,就是使用Anaconda的虚拟环境。能够参考《如何在Jupyter Notebook中使用Python虚拟环境?》。

你初始安装版本针对Python 2.7的Anaconda,并不妨碍你快速创建一个3.6版本Python的虚拟环境

有了这个秘籍,你就能够在不一样版本的Python之间左右逢源,游刃有余了。

天然语言处理

下一步,咱们来尝试天然语言处理(Natural Language Processing, NLP)。

情感分析,是NLP在许多社会科学领域热门的应用之一。

如何用Python作情感分析?》这篇文章,分别从英文和中文两个案例,分别采用不一样的软件包,针对性地解决应用需求。

你只须要几行代码,就能让Python告诉你情感的取向。是否是很厉害?

有了情感分析作基础,你能够尝试增长维度,对更大致量的数据作分析。

增长时间维度,就能够持续分析变化的舆情。

如何用Python作舆情时间序列可视化?》这篇文章,一步步指引你在时间刻度上可视化情感分析结果:

这图难看了一些。

不过咱们须要容忍本身起步时的笨拙,不断迭代与精进。

但愿一出手就满分,对极少数天才,确实无非是平常。

但对大多数人,是拖延症的开始。

你可能火烧眉毛,尝试换本身的数据作时间序列可视化分析。

不过日期数据若是与样例有出入,可能会出现问题。

这时候,不要慌,请参考《Python编程遇问题,文科生怎么办?》的第二部分,其中有详细的错误缘由分析与对策展现。

看事后,分析结果图也会迭代成这个样子:

到这里,你对情感分析有点儿感受了吧?

若是你不打算使用第三方提供的情感分类算法,打算本身动手训练一个更为精确的情感分类模型,能够参考《如何用Python和机器学习训练中文文本情感分类模型?》一文。

刚刚这些情感分析,其实只是极性分析(正面vs负面)。可是咱们都知道,人的情感实际上是多方面共同构成的。

如何从文本中,分解出多维度的情感特征变化呢?

如何用Python和R对《权力的游戏》故事情节作情绪分析?》一文分析了《权力的游戏》中某一集剧本,你会得到这样的结果:

若是你是《权力的游戏》剧迷,请告诉我,这张图描绘的是哪一集?

先猜猜看,而后再打开文章,跟结尾作对比。

这篇文章的可视化分析部分,用的是R。

R也是数据科学领域一个很是受欢迎的开源工具。它的通用性和热度可能不如Python(毕竟Python除了数据科学,还能干许多其余的事儿),可是由于有统计学界诸多科学家的拥护和添砖加瓦,所以有很是好的一套生态系统。

若是你但愿对单一长文本提取若干重要关键词,该怎么办呢?

请你阅读《如何用Python提取中文关键词?》一文。它采用词汇向量化、TextRank等成熟的关键词提取算法来解决问题。

课间答疑

随着知识、技能和经验的积累,你的疑问可能也逐渐增多了吧?

有的同窗对这种教学方式有疑问——案例挺有意思,也很简单易学,可是怎么把它用到我本身的学习、工做和科研中呢?

我为你写了一篇答疑说明,叫作《文科生如何高效学数据科学?》。文中提到了如下几个方面:

  • 如何指定目标?
  • 如何肯定深度?
  • 如何增强协做?

提到协做,就不能不说Github这个全球最大的开源代码托管仓库了。

在我们的教程里,也屡次使用Github来存储代码和数据,以便你可以重复运行教程中的结果。

如何高效入门Github?》一文提供了文档和视频教程资源,但愿能对你掌握这个数据富矿提供帮助。

很多读者在这个阶段常提出这个问题:老师,想学Python,推荐本书呗。

看来,你已经明白了Python的好处了,对吧?

如何高效学Python?》帮助你给本身的学习特性作出了分类。根据分类的结果,你能够选择更适合本身的学习路径。

推荐的教材,不只包括书籍,还包括MOOC。但愿这种充满互动的教学方式,对你入门数据科学有帮助。

机器学习

你能够尝试作更进一步的分析了。

例如机器学习(Machine Learning)。

机器学习的妙用,就是在那些你(实际上是人类)没法准确描述解决步骤的问题上,让机器经过大量案例(数据)的观察、试错,构建一个相对有用的模型,来自动化处理问题,或者为人类的决策提供辅助依据。

大致上,机器学习主要分为3类:

  • 监督学习(Supervised Learning)
  • 非监督学习(Unsupervised Learning)
  • 强化学习(Reinforcement Learning)

目前本专栏介绍了前两类的一些例子。

监督学习与非监督学习最大的差异,在于数据。

数据已有标注(通常是人工赋予标签),通常用监督学习;

数据没有标注,通常只能用非监督学习。

监督学习部分,咱们举了分类(classification)任务的例子。

贷仍是不贷:如何用Python和机器学习帮你决策?》中的案例,选择了贷款审批辅助决策。

具体的机器学习算法,是决策树(decision tree)。

有同窗表示,绘制这棵决策树的时候,遇到了问题。

这主要是由于运行环境的差别和依赖工具的安装没有正确完成。

Python编程遇问题,文科生怎么办?》的第一部分,对这些问题作了详细的阐述,请根据列出的步骤尝试解决。

不只如此,这篇文章展现给你了一种任务导向的学习方式,指望它能够提高你Python语言和数据科学学习效率。

非监督学习部分,咱们讲述了《如何用Python从海量文本抽取主题?》。

文中用一种叫作LDA的聚类(clustering)方法,帮你从可能感兴趣的浩如烟海文档中,提取出可能的类别,对应的主要关键词,而且作可视化处理。

文中说起了停用词(stopwords)的处理,可是没有给出中文停用词的具体应用方法。

如何用Python和机器学习训练中文文本情感分类模型?》一文中,我不只对停用词处理方式进行了详细的介绍,并且把监督学习Naive Bayes模型应用于情感分析,手把手教你如何训练本身的情感分类模型。

深度学习

深度学习,指用深度神经网络(Deep Neural Network)进行机器学习。

相对于传统机器学习方法,它使用的模型结构更为复杂,须要更多的数据支持,而且训练起来要消耗更多的计算资源和时间。

常见的深度学习应用,包括语音识别、计算机视觉和机器翻译等。

固然,新闻里面最爱提的,是下围棋这个事儿:

咱们提供的案例,没有那么挑战人类智能极限,而是跟平常工做和生活更加相关。

如何用Python和深度神经网络发现即将流失的客户?》为你介绍了深度神经网络的基本结构。

这篇文章经过客户流失预警的例子,讲述了使用前馈神经网络进行监督式学习的基本样例。

实际操做部分,咱们采用Tensorflow做为后端,tflearn做为前段,构造你本身的第一个深度神经网络。

如何用Python和深度神经网络发现即将流失的客户?》一文末尾还为你提供了进一步掌握深度学习的相关资源。

若是你须要安装Tensorflow深度学习框架(Google出品哦),欢迎先阅读这篇《Tensorflow执行pip升级安装的坑》。

有了深度神经网络的基础知识,咱们折腾计算机视觉。

如何用Python和深度神经网络识别图像?》一文,举例分类哆啦a梦和瓦力这两个机器人的各类花式图像集合。

卷积神经网络(Convolutional Neural Network, CNN)这时就大放异彩了。

这篇文章,帮你分析了卷积神经网络中,不一样层次(Layer)的做用。

咱们尽可能避免用公式,而是用图像、动图和平实简洁的语言描述来为你解释概念。

咱们使用的深度学习框架,是苹果的TuriCreate。你会调用一个很是深层次的卷积神经网络,帮咱们迁(tou)移(ji)学(qu)习(qiao),用不多的训练数据,得到很是高的分类准确率。

有的读者本身尝试,测试集准确率竟然达到100%(视运行环境不一样,有差别),大呼过瘾。可同时又以为难以想象。

为了解释这种“奇迹”,同时解答读者“如何在私有数据集上以图搜图”的疑问,我写了《如何用Python和深度神经网络寻找近似图片?》。

但愿读过此文,你对迁移学习(Transfer Learning)有了更深刻的认识。

若是这两篇文章学完,你对卷积神经网络的基础知识依然不是很清晰,也不要紧,由于个人研究生们遭遇了一样的问题。

为此,我专门录制了一段讲解答疑视频

这段视频里,我主要谈及了如下几个方面:

  • 深度神经网络的基本结构;
  • 神经元的计算功能实现;
  • 如何对深度神经网络作训练;
  • 如何选择最优的模型(超参数调整);
  • 卷积神经网络基本原理;
  • 迁移学习的实现;
  • 疑问解答。

但愿看过以后,你再从论文里读到计算机视觉的神经网络模型,就能够游刃有余了。

另外一批做者又来发问了:

老师,我用Windows,死活就是装不上TuriCreate,可怎么办?

我替他们着急的时候,刚好找到了一个宝贝。因而写了《如何免费云端运行Python深度学习框架?》。

无偿使用GPU,用极为简易的操做,就能够在Google云端Linux主机上部署和执行苹果深度学习框架……

听着是否是像作梦啊?

感谢Google这家为人类知识积累作出贡献的企业。

数据获取

学完深度学习以后,你会发现本身变成了“数据饥渴”症患者。

由于若是没有大量的数据,就没法支撑你的深度神经网络。

如何获取数据呢?

咱们先要区分数据的来源。

数据来源不少。可是对于研究者来讲,网络数据和文献数据比较经常使用。

目前主流(合法)的网络数据方法,主要分为3类:

  • 开放数据集下载;
  • API读取;
  • 爬虫爬取(Crawling)。

如何用Python读取开放数据?》一文中,我为你讲解了如何把开放数据集下载而且在Python中使用。

这篇文章介绍了常见的CSV/Excel, JSON和XML等开放数据文件格式的读取、初步处理和可视化方法与流程。

若是没有开放数据集整理好供你下载,网站只提供API接口,你该怎么办呢?

如何用R和API免费获取Web数据?》一文,咱们使用R读取维基百科API,得到指定条目的访问数量记录,而且作了可视化。

若是没有人为你整理好数据,网站也没有开放API给你,那你就得“直接上大锤”了。

如何用Python爬数据?(一)网页抓取》一文为你介绍了很是人性化、易用的网页抓取软件包 requests_html,你能够尝试抓取网页内的指定类型连接。

文献数据可能存储为各类格式,但其中pdf格式较为常见。

应诸多读者的要求,我写了《如何用Python批量提取PDF文本内容?》。

你能够批量提取pdf文档的文本内容,而且进行各类分析。

文中的分析相对简单,咱们只是统计了文档字符数量。

可是发挥想象力,你可能会作出很是有价值的分析结果。

但愿这些文章能够帮助你高效得到优质数据,支撑起你本身的机器学习模型。

小结

本文把《玉树芝兰》专栏目前的数据科学类文章进行了梳理和归类,创建了连接,以帮你看清它们之间的逻辑依赖关系。

专栏中,数据科学类文章主要围绕如下方面展开:

  • 环境搭建;
  • 基础入门;
  • 天然语言处理;
  • 机器学习;
  • 深度学习;
  • 数据获取;
  • 答疑。

你可能早已发现,咱们还有不少话题,没有来得及涉及。

别着急。

本专栏会持续添加新的内容。这篇导读也会不按期更新。欢迎关注。

讨论

本专栏数据科学类的文章里,你更喜欢哪一个方面的主题?除此之外,你还但愿读到哪些内容?欢迎留言,把你的经验和思考分享给你们,咱们一块儿交流讨论。

喜欢请点赞。还能够微信关注和置顶个人公众号“玉树芝兰”(nkwangshuyi)

若是你对数据科学感兴趣,不妨阅读个人系列教程索引贴《如何高效入门数据科学?》,里面还有更多的有趣问题及解法。

相关文章
相关标签/搜索