写点什么

数据分析到底该怎么学?

  • 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:4415781

评论

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

体验亚马逊的 CodeWhisperer 感觉

亚马逊云科技 (Amazon Web Services)

Java 人工智能

如何在低代码平台中应用可视化编程

力软低代码开发平台

HarmonyOS使用多线程并发能力开发

HarmonyOS开发者

HarmonyOS

从技术创新到应用实践,百度智能云发起大模型平台应用开发挑战赛!

不叫猫先生

百度智能云 千帆大模型平台

华为阅读“鲁迅专栏”已上线,读国内名家作品就上华为阅读

最新动态

活动预告 | 中国数据库联盟(ACDU)中国行第三站定档成都,邀您探讨数据库前沿技术

墨天轮

MySQL 数据库 oracle postgresql zabbix

Generative AI 新世界 | 扩散模型原理的代码实践之采样篇

亚马逊云科技 (Amazon Web Services)

机器学习 #人工智能 生成式人工智能 Amazon SageMaker 大语言模型

WorkPlus Meet 视频会议,自主可控,支持私有化部署

BeeWorks

rabbitMQ到底是个啥东西?

程序员万金游

Java 开发 #java Rabbit MQ

上新啦!腾讯云云原生数据湖产品DLC 2.2.5版本发布,来看特性详解

腾讯云大数据

数据湖

自动驾驶汽车:AI技术的未来之路

测吧(北京)科技有限公司

测试

聚势共创 多元共生——中科美菱联动清华大学助力产研融合!

联营汇聚

如何访问TDH中Inceptor 底层的元数据库TxSQL

明哥的IT随笔

大数据 hive

跨网传输文件时,如何通过日志记录来审计追溯?

镭速

跨网文件传输

WorkPlus私有化部署IM即时通讯平台,构建高效安全的局域网办公环境

BeeWorks

百度智能云 AI 加速器第二期今日开营,42家AI原生应用企业入选

极客天地

OpenHarmony自定义组件介绍

OpenHarmony开发者

OpenHarmony

开启 Kerberos 安全认证的大数据环境中如何正确指定 HS2 的 jdbc url 地址?

明哥的IT随笔

大数据 hive kerberos

用友系列之 YonBuilder 低代码平台概论和基本使用

YonBuilder低代码开发平台

低代码 可视化

自动驾驶汽车—AI技术的未来之路

测吧(北京)科技有限公司

测试

Git Stash:临时保存和切换工作状态的利器

凌览

git git stash

ICCV 2023|小红书 4 篇入选论文亮点解读,「开集视频目标分割」获得 Oral

小红书技术REDtech

算法 ICCV

企业内部通讯,WorkPlus助您打造高效沟通平台

BeeWorks

写SAE评测,获 Airpods 2大奖【集结令】!

Serverless Devs

Serverless 云原生 AIGC

彻底告别传统FTP,新的替代FTP产品比你想象的好的多

镭速

传输协议 FTP传输替代方案

DevOps|研发效能团队组织架构和能力建设

laofo

DevOps cicd 研发效能 持续交付 组织架构

关于 TDengine 3.0 数据订阅,你需要知道这些

TDengine

tdengine 时序数据库 国产时序数据库

华为云API对话机器人CBS的魅力—要是有AI,我要做“李白”- 5分钟开发作诗机器人

云计算 软件开发 华为云

华为3场重磅主题演讲先睹为快,顶级云原生&开源盛会即刻出发

华为云开源

华为 开源 云原生 KubeCON

软件测试/测试开发丨利用ChatGpt编写测试方案

测试人

人工智能 程序员 软件测试 测试方案 ChatGPT

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