打破认知:程序设计 = 算法 + 数据结构?

栏目: 编程工具 · 发布时间: 5年前

内容简介:大家好,我是陈旸,也是极客时间《数据分析实战 45 讲》专栏作者。很荣幸接到极客时间的邀请,来到极客 Live 和大家分享关于“数据分析”的话题。这次分享会共分为五部分,来为大家答疑解惑。很多写程序的人都听说过一个公式:程序设计 = 算法 + 数据结构,我也相信很多人认为算法是编程里的基础。在我看来,这个公式应该过时了。从我 10 岁开始学编程时,我就被灌输了这个认知。所以,那时候我们学二叉树,学队列,学一些数组的表达方式,包括一些快速排序、排序的方法等等。

大家好,我是陈旸,也是极客时间《数据分析实战 45 讲》专栏作者。很荣幸接到极客时间的邀请,来到极客 Live 和大家分享关于“数据分析”的话题。这次分享会共分为五部分,来为大家答疑解惑。

我们为什么要学数据分析?

学习新的数据结构和新的数据算法将会是新时代我们的使命。

很多写程序的人都听说过一个公式:程序设计 = 算法 + 数据结构,我也相信很多人认为算法是编程里的基础。

在我看来,这个公式应该过时了。从我 10 岁开始学编程时,我就被灌输了这个认知。所以,那时候我们学二叉树,学队列,学一些数组的表达方式,包括一些快速排序、 排序 的方法等等。

而现在,很多的数据结构,包括我们排序的算法,都已经不需要我们去编写代码了。我们直接调用一行命令,通过封装的方式,就可以拿来即用。

我再举个简单例子,在我很小的时候,有一门课叫汇编语言。它非常基础,比如,把一个字母 A 打到这个显示屏里面分多少步?它分了 32 个步骤,是如何从计分器里面读出去,最后让显示器里面显示出来。这是一个很简单的事,现在大家已经不需要关注到汇编语言的底层,很多的语言越来越高级,我们的知识已经封装的越来越完善。

我觉得在新的时代里面,如何去更新我们新的数据结构和新的数据算法,这是我们的使命。再给大家一个数据,我们近三年,所有互联网数据的总和等于 4 万年数据的总和。知识处于一个非常爆炸的过程,而且我们相信,在未来的三年,它整个的总和又是以前的双倍。

在这个海量的数据时代里面,它需要更加新型的存储的方式,举个例子,我们现在会接触到矩阵的运算,包括这些大型矩阵之间的向量表达方式和特征的抽取,包括以前我们可能会关注到一些快速排序等一系列的算法。我们现在最主要关心的是,如何从这些数据里面找出关联关系出来,如何进行分类,如何进行聚类?

这个是在新的一个时代里面的算法的数据结构和基础的能力,也是一个非常重要的核心,也是这个市场上一个新的需求。我专门做了一个关于“程序员薪资情况”的调查,我发现在招数据分析,尤其是算法数据挖掘工程师,他们的薪资普遍比其他的工程师薪资要高。

为什么?一方面是企业及整个市场的需求都很大,以数据挖掘为例,三到五万的月薪并不奇怪,甚至更高的月薪都会存在;另一方面市场缺口也很大,在 2020 年,就是一年之后,整个数据人才的需求量是现在的两倍,而且它能创造出来更多的价值。

总结而言,我们是不是需要更新我们 20 年前的认知?那一阵学的算法和数据结构基础,是否能让我们更跟上时代的步伐?

这也是我开设 《数据分析实战 45 讲》 专栏的一个初衷,想让大家通过这个专栏的学习,掌握到新的数据结构和新的算法的能力。

没有编程基础,也能学好数据分析

请,不要灰心。

有编程基础和没有编程基础是相对的,就算你有编程基础,但你未必有数据编程的能力。我想说的是,如果你没有编程基础,也不要灰心。因为数据分析是一个很新的领域,这几年也是非常的火爆,而且出现了很多新的理论。可能在 5 年前,有些理论是之前没有的。所以,无论是新人还是老人,起跑线都是很接近的。请,你不要灰心。

第二方面,我在这个专栏着重重强调的学习方法是 MAS 学习方法。

M-Multi-Dimension:想要掌握一个事物,就要从多个角度去认识它。也就是说要学习数据分析,你需要从不同的纬度跟人家去打交道,不管是知识概念的纬度,从 工具 的纬度,还是从实战的纬度,你都需要与其建立起联系。

A-Ask:不懂就问,程序员大多都很羞涩,突破这一点,不懂就问最重要。以往如果我们没有专栏可以一对一去互动,或者答疑解惑,你可能通过网上去找答案,但是网上的答案有的时候不一定是正确的,或者你不一定能找到答案,但是通过专栏留言、社群答疑,我可以帮你来去进行解答,这是非常好的方法。(进入数据分析社群,可加专栏运营 Monica 微信:imonica,了解入群规则。)

S-Sharing:最好的学习就是分享。用自己的语言讲出来,是对知识的进一步梳理。我看到专栏里的很多同学,现在逐渐养成分享的习惯。当你把这个内容分享给其它人的时候,这个内容才是你自己的,而不是老师的。我非常鼓励大家去写笔记,也有好多人把自己整理的内容放到幕布或者博客上面,这是非常好的方法。

打破认知:程序设计 = 算法 + 数据结构? 其中一个用户总结的思维导图,很赞!

我总结以下两点:

1、如果你没有编程的基础,没有关系,你可以跟上我的专栏,你跟大家的速度是一样的,甚至你会比别人跑得更快;

2、另外,掌握好的学习方法真的非常重要,MAS 是个很不错的学习方法。这也是我专栏想达到的一个目的,授人以鱼不如授人以渔。

即使数学高考考 9 分,也不妨碍你学习数据分析

高考是封闭环境下的能力测试,考的是你的计算能力

哈哈,数学高考考 9 分也是非常了不起的一件事。我是这么看的,高考的是计算能力。举个例子,让你去求一个排列组式。我们知道,在实际的工作中,我们做的不是闭卷答案,在开卷环境下,你是可以用计算器或者提问的方式去解决问题。就是说,你现在的工作环境和以前上学的考试是两种完全不同的状态。工作上,最重要的方法是:“不懂就问“,你求助于别人,这是最省时省力的解决问题的方法。

另一方面,有些人跟我说,他的计算能力、数学能力都比较差。其实,这是有解的。在我的专栏里,我会让你去了解一些概念,你知道该怎么去用就好了,你完全没有必要去做推导。你只需要知道,我要用哪个公式,或者说我要用哪个算法,这个算法可能抽样出来就是一行代码,如果是可视化工具,根本就不用代码。

总而言之,即使你的数学基础不好,不妨碍你去学这个专栏,掌握它的概念以及方法。

很多人会望而却步,觉得中间是否需要一些数学的推导和运用。其实,大家应该从白话的角度去理解这个专栏,因为专栏里会有很多案例、比喻等等,会让大家更容易去理解概念,比如什么叫数据挖掘,什么叫分类,什么叫聚类,什么叫关联分析。

打个比方,你同时认识了两个漂亮女孩,你要追哪一个成功概率比较高?这就可以用到数据分析的一些原理,比如,你想知道这个漂亮女孩,她到底是御女还是萝莉?这就会用到分类的算法;你认识女孩的渠道比较多,比说朋友会介绍,或者网上认识等等,就会要用数据集成的知识,因为不同的渠道你需要汇总到同一个渠道里面。不同朋友推荐同一个女孩,这时候就要做数据清洗了。

再举个例子,假设你认识的女孩数量不只两个,假设有五万个,这时候决策该怎么做?那你要把这些女孩进行分组,把五万个人划分成五个组,每个组采用相同的决策,这叫聚类。聚类的方式是把一个个纬度的目标换成一个纬度,由原来的五万人变成了五个组,就大大提升了效率,采用一种降纬的思维。最后,这个数据它产生什么样的结果,你就需要采用数据可视化的方式帮你实现:我到底得出什么样的规律,或者我最后采用什么样的决策。

通过这个例子,我们可以看习数据挖掘对我们实际的帮助是很大的,它可以帮助你解决实际中遇到的一些问题,抽象出来,利用数据挖掘、清洗等方式去解决。

数据分析学到什么程度,能找到工作?

我把它分成三个阶段:初级,中级和高级。

初级:你需要了解基本的概念,会使用简单的工具。比如说你要做数据采集的话,你不会 Python 没有关系,我会教你八爪鱼怎么使。因为它是一个可视化的软件,拿来即用。另外,我也会讲解一些软件的使用,如果你也能学会用一些软件的话,也可以拿到很高的薪水。

中级:需要自己动手去写一些代码。在这个专栏里,我会主推 Python 去做数据分析,比如分类的算法、聚类的算法、关联分析的算法,包括数据预测。而一个算法需要一个好的语来实现言而,Python 是非常直接的语言,会让你得到更多可视化的结果。

高级:熟练度,还有就是效率上的提升。我举个例子,我之前做过深度学习,最开始是去调试一个图像识别算法过程,需要两到三周的时间。后来,我有了更多的经验之后,我知道哪些参数该进行优化,且这个参数在什么样的情况下可以采用什么样的收敛模型,中间的层次该怎么去调。之前需要花三周时间去完成的事情,就被缩短为三天,整个工作效率提升了 10 倍。

在我的专栏里,我特意设置了一个专属题库。为什么我要做题库呐?因为,我觉得知识要被消化吸收最快的方法,就是练习,不断地反复练习。只有练习了,把知识点融会贯通,知识才会是你的。这些题库,我也都做会讲解。

我在专属题库里列了十多个项目,都是非常实战的项目。多练习、多实战,你完全可以把这些项目写到自己的简历里,包括数据的描述及解题过程,最好用自己的话去做总结,并用博客的方式去呈现。这是非常棒的经历。

Q&A

问:本人已经工作 7 年了,做运维开发也有 5 年之多,主流语言也是 Python,个人对大数据开发,数据分析,数据挖掘之类的工作也特别感兴趣,所以毫不犹豫就买了老师的课程。之前空闲之余也看过相关数据挖掘的知识,比如 svm xgboot 手写体之类的。但找类似的工作突然发现没有底气,原因是没有数据挖掘相关的工作经验,我怕以后转行越来越困难,再加上一旦转行没有我现在的工资高,想想又放弃了,又不甘心,我该如何抉择?

答:首先这是一个先有鸡,还是先有蛋的问题。

我想你是认可数据挖掘,也对数据分析很有兴趣。最着急的是简历中没有相关的经验。

确实很多公司很看重背景,而且你工作 7 年,又不能从初级职位开始,即使你对数据分析很感兴趣。

我建议你还是以丰富简历为目标,在简历中要想办法增加 数据分析,数据挖掘的比例。

我的专栏里会有 10+ 个项目,当然这些项目都不是太复杂。我建议你把它都做一遍,然后用自己的语言做项目总结,这些可以放到简历中。作为数据分析,数据挖掘的经验

没有其他的捷径,如果你在这方面的简历不丰富 HR 很难给你一个满意的薪水。所以你就需要在工作之外,自己来训练,整理这些项目笔记。我专栏中的很多数据都来自于 Kaggle,这里有很多实战的项目,你如果完成了我的专栏,还想进一步丰富项目经验,可以做更多 Kaggle 项目。同样采用我的方式,把它作为项目背景,自己写项目总结,作为项目经验。

问:数据挖掘预测部分会有哪些内容?

答:数据挖掘,我列了 10 大算法,都是最经典的算法,包括:决策树 C4.5,CART,朴素贝叶斯、SVM、KNN、K-means、EM 聚类、Apriori、PageRank、Adaboost。这些主要是分类、聚类、关联分析、连接分析的算法。当然现在深度学习很火,后面如果大家有需求的话,可以在算法介绍完之后,加餐个深度学习。不过这里最好要有 GPU 运行环境了,要不运行起来会有些吃力。

问:推荐一些数据分析的书

答:思维:《思维简史:从丛林到宇宙》;

数据处理:《数据挖掘:概念与技术》;《Pentaho Kettle 解决方案》;《精益数据分析》;《Small Data》;《利用 Python 进行数据分析》

点击 《数据分析实战 45 讲》 ,现在正在限时优惠,原价 ¥99,限时优惠 ¥79,仅限 3 天!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Growth Hacker Marketing

Growth Hacker Marketing

Ryan Holiday / Portfolio / 2013-9-3 / USD 10.31

Dropbox, Facebook, AirBnb, Twitter. A new generation of multibillion dollar brands built without spending a dime on “traditional marketing.” No press releases, no PR firms, and no billboards in Times ......一起来看看 《Growth Hacker Marketing》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换