写点什么

数据分析到底该怎么学?

  • 2019-05-29
  • 本文字数:2672 字

    阅读完需:约 9 分钟

数据分析到底该怎么学?

互联网发展至今,已离不开数据,使得很多公司格外青睐具备数据分析能力的人。迎着这一浪潮,很多人都跃跃欲试,想要掌握数据分析的技能,让自己在职场上更有主动权。


但万事开头难,摆在很多人面前的困扰是,我到底该怎么学数据分析?


  • 我需要掌握 Excel 吗?

  • 数据分析对统计学和数学要求高吗?

  • 没有编程能力还能学数据分析吗?

  • Python 语言和 R 语言我该选择哪一个?


相信这是不少人的疑惑,之所以会出现这些问题,是因为很多人混淆了数据分析的概念。


广义上的数据分析包括了统计学、增长黑客、相关性分析等,更偏向产品运营,而我们这里所说的数据分析,则是隶属于编程世界里的数据分析,是算法和技术的天下。


作为一个程序员,相信你更需要的是后者。学习数据分析,你最需要掌握的就是 Python 语言、数据预处理以及算法知识。


Python 语言贯穿于数据分析的整个过程,只有掌握 Python,你才能熟练地通过它做数据预处理,以及使用各种算法包。


掌握 Python 之后,你才会使用 Python 的各种机器学习库、第三方工具等,有了它们,数据预处理才会事半功倍。


算法是数据分析的精髓,只有掌握算法,你才能处理各种数据。


那么具体到这三点,该怎么学数据分析呢?

入门:掌握 Python

如果你刚接触数据分析,面对纷繁复杂的算法和工具不知所措,那么,首先你最需要掌握的就是 Python 语言。听起来是不是很不可思议?事实上,Python 是数据分析领域中当之无愧的王者语言,它封装了很多算法工具包,使用起来非常方便。


在专栏里,我用一篇文章快速帮你理解 Python 语言的基础语法,比如输入输出、循环语句、数据类型等。


除了 Python 语言之外,你还需要了解 NumPy 和 Pandas 这两个第三方库。NumPy 提供的数据结构是 Python 数据分析的基础,它可以让 Python 的科学计算更加高效。Pandas 则是一个含有更高级数据结构和分析能力的工具包,它的核心数据结构是 Series 和 DataFrame。基于这两种结构,我们可以很方便地处理数据。





新手:使用 Python 工具包进行数据预处理

当你入门 Python 后,接下来就算正式进入数据预处理阶段。“数据分析”涵盖两部分:数据是基础,分析是过程,所以数据的前期准备工作也很重要。


这些工作主要包括:


  • 数据采集

  • 数据清洗

  • 数据集成

  • 数据变换

  • 数据可视化


不要小看这些工作,看似和“分析”不挂钩,其实,这些工作相当于分析前的“备菜过程”,没有“备菜”,何谈“掌勺”?


第一步,采集数据。


你可以用 Python 自动采集数据,也可以使用第三方平台,比如用八爪鱼来采集数据。我用两篇文章分别讲了这两种方法,其中都讲到了 XPath 这个路径语言,它可以通过元素和属性快速帮我们定位位置。


具体的实操方法,可以看下面两篇文章:




很多时候,我们采集到的数据是杂乱的,可能会遇到各种问题,比如有缺失值、数据单位不统一、有重复值等。这个时候你可以采用“完全合一”的原则清洗数据。



当然,大家最感兴趣的可能还是数据可视化。运用各种酷炫的图片将数据的规律直观地呈现在众人面前,想想是一件特别有成就感的事情,比如天猫双十一的数据大屏等。我们可以用各种工具、编程语言做数据可视化,比如 DataV、Tableau、Python 或者 R 语言。


在专栏中,我主要是用 Python 的 Matplotlib 工具来做数据可视化。Matplotlib 是 Python 的可视化基础库,非常适合入门学习。下面的这几张图就是用 Matplotlib 绘制出来的。



可视化的具体操作方法:


进阶:掌握算法,学会实战

当你掌握了数据分析中基础的操作后,接下来就该正式处理数据了。为了进行数据挖掘任务,数据科学家们提出了各种算法,我在专栏中主要讲解了数据挖掘十大经典算法,根据用途,把它们分为四大类:


  • 分类算法:C4.5、朴素贝叶斯、SVM、KNN、Adaboost 和 CART

  • 聚类算法:K-Means、EM

  • 关联分析:Apriori

  • 连接分析:PageRank


你看到这些算法可能会发愁,看不懂怎么办呢?这个你完全不用担心,我在专栏里用了大篇幅内容来讲解这十大经典算法,每一个算法都有很多的案例去辅助你理解,还提供了一些数据库让你去实操,即学即用。


而实际上,你不需要了解这些算法具体的推导过程,只需要了解它们的原理即可。比如在数据挖掘算法中,大名鼎鼎的朴素贝叶斯算法和贝叶斯原理之间是什么关系?通过下面这张图,你可以直观地找到这个问题的答案。



更多详细补充:



为什么我会说不需要了解算法具体的推导过程呢?因为在实际工作中,有很多工具已经帮我们封装好这些算法了,比如 sklearn,你在使用的时候,只要写一行代码,就可以直接引用,只需要调整参数就可以。


当然,虽说 sklearn 封装了数据挖掘所用到的绝大多数算法,但也有一些算法并不能覆盖到,比如图论和网络建模。那么,这个时候我们该怎么办呢?


你可以使用 NetworkX,一个用 Python 语言开发的工具,它内置了常用的图论与网络分析算法,可以方便我们进行网络数据分析。比如我们可以直接调用里面的 PageRank 算法,而不用在意具体的计算细节。在专栏中,我用 NetworkX 这一工具分析了希拉里邮件往来人员的关系和彼此之间的权重,帮我们非常直观地呈现出了以下结论图。




当你掌握了多种算法之后,实际工作中还会遇到这类问题:如何选择各种分类器,到底选择哪个分类算法,是 SVM,决策树,还是 KNN?如何优化分类器的参数,以便得到更好的分类准确率?


这两个问题,是数据挖掘核心的问题。当然对于一个新的项目,我们还有其他的问题需要了解,比如掌握数据探索和数据可视化的方式,还需要对数据的完整性和质量做评估。这些内容我在之前的课程中都有讲到过。


这里给到大家一个建议:使用 GridSearchCV 工具对模型参数进行调优。GridSearchCV 是 Python 的参数自动搜索模块,我们只要告诉它参数的范围,它就可以把所有情况都跑一遍,提供最优解。


我在专栏里用“信用卡违约率分析”的案例详细讲解了 GridSearchCV 的使用:



总之,你想要深入数据分析,算法与工具是你必须要攻克的两座大山。当然,我也希望你能认识到,工具只是帮我们实现目的,我们不可以被工具所奴役。数据分析与挖掘最重要的还是思考能力,收集什么数据,用什么工具分析,分析出什么样的结果,用什么方式呈现出来,都需要大家的思考与观察。这也是我在专栏里十分强调的点。


毕竟工具是别人的,但思维和实战经验,才是你自己的。


内容选自极客时间数据分析实战45讲专栏


2019-05-29 17:4415845

评论

发布
暂无评论
发现更多内容

Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸

JackTian

Python 程序员 爬虫 后端 实战

没有一个行业能比房地产中介更需要CRM

低代码小观

企业管理 房地产业 管理系统 企业管理系统 行业管理系统

Kafka是如何实现高性能的,程序员进阶知识点

android 程序员 移动开发

kotlin库,大佬带你看源码

android 程序员 移动开发

企业系统太多?WorkPlus让工作事半功倍

BeeWorks

各位Oracle DBA们,你们期待的在线实训环境终于来了

墨天轮

MySQL 数据库 oracle redis 实训

喜大普奔!BFE 控制平面正式开源发布!

百度开发者中心

负载均衡 云原生 Go 语言 开源技术

打造价值交付体系,企业 CIO 如何应对 DevOps 命题?

BoCloud博云

DevOps 云原生

kotlin协程实现原理,【绝对干货】

android 程序员 移动开发

kotlin实现接口,已开源下载

android 程序员 移动开发

技术干货 | 闲鱼:一个优秀的 Push 平台,需要经历怎样的前世今生

蚂蚁集团移动开发平台 mPaaS

消息推送 push mPaaS

html5移动端开发2020,跳槽大厂必看

android 程序员 移动开发

[架构实战营] 模块一作业

张祥

架构实战营

kotlinui库,字节跳动内部学习资料泄露

android 程序员 移动开发

行云创新马洪喜出席云栖大会,解读云原生时代开发者工具变革探索与实践

行云创新

开发者 云原生 行云 云栖大会 马洪喜

端智能研发核心套件:MNN 工作台深度剖析

阿里巴巴终端技术

深度学习 ios android 移动端 端智能

html5移动开发即学即用网盘,面经解析

android 程序员 移动开发

GTLC 全球技术领导力峰会 | 渐进式的研发管理改进之路

万事ONES

研发管理 研发效能 ONES

面试官:如何防止 Java 源码被反编译?我竟然答不上来。。

Java 编程 程序员 架构 面试

华为全球首发《全光自动驾驶网络白皮书》,助力打造品质联接新体验

EMQ 映云科技5G 边缘计算工业解决方案获中国移动创客马拉松大赛三等奖

EMQ映云科技

5G 物联网 边缘计算 移动互联网

产业数字化的思考

Geek_vidmje

QCon 全球软件开发大会 | 大型团队研发效率持续改进实践

万事ONES

研发管理 研发效能 ONES

kotlin开发网站,字节跳动大神讲座

android 程序员 移动开发

5面阿里斩获offer(Java岗),原来阿里面试官总喜欢问这种问题

进击的王小二

Java java面试 大厂面试

game+defi系统开发需求(公司)

kotlin入门教程百度网盘,阿里开发7年大牛

android 程序员 移动开发

RTE2021 实时互联网大会参会感想

轻口味

1024我在现场 10月月更

kotlinalso函数,34岁程序员年薪50w

android 程序员 移动开发

netty系列之:使用netty实现支持http2的服务器

程序那些事

Java Netty 程序那些事 响应式系统

ironSource 斩获 2021 年度鲸鸣奖三大重量级奖项

数据分析到底该怎么学?_大数据_陈旸_InfoQ精选文章