Python 中有一个包叫Pandas,是专门进行数据处理的
同样,还有这样一个包叫Scikit-learn,是进行数据挖掘的
还有像爬虫、可视化Seaborn|matplotlib、线性代数scipy、深度学习keras 等等这样的包,数据科学都涵盖进去了。
ok,数据科学就是一个涵盖数据处理、可视化、数据挖掘、深度学习等这些内容的学科**,理解就好。**
想必对很多同学,尤其是还在学校的同学来说,会对这个问题比较感兴趣。
那么在实际工作中,一个数据分析项目,它的实现流程究竟是怎样的?
小一我翻了下这两三年自己在工作中遇到的大小项目,并且和同事进行了充分的交流,差不多总结了六个步骤。
分析业务指标,明确数据内容
很惊讶吧,第一个竟然是这个。
在实际遇到一个项目的时候,往往领导给你的任务,是一个大的目标,比如:
**领导:**小一啊,我们这个月比上个月的用户投诉略有增多,你来分析一下是什么原因,顺便预测一下下个月我们应该重点抓哪些指标“
像这种,就需要先了解具体业务了
用户为什么会投诉?产品哪里做的让用户不满意?用户不满意的具体数据有哪些?这些数据是怎么生成的?不同粒度的数据又表示什么?
另外别忘了老板的终极目标(xxx,这是顺便一下就能预测出来的吗…)
提出问题假设,建立分析方法
当你已经知道你的目标和哪些数据有关系,却不能确定哪个是主要问题,哪个是次要的时候,你就到了第二阶段。
如果你时间允许的话,我建议你可以建立对照组进行对照试验。
比如上面的问题,你就可以假设用户投诉和资费太贵有关、和产品质量有关系、和售后服务有关系等
另外,如果你有历史的投诉数据,你也可以提出基于时间维度的假设:不同月份受天气影响太大,造成用户投诉(如果你真的把原因归结为天气,希望你不会挨老板毒打吧)
利用采集工具,获取相关数据
你已经提出了问题,也知道你的问题会和哪些数据有关联,这个时候你需要数据,需要尽可能多的数据去验证你的结论,让你的结论更有信服力,能被老板接受。
一般在大公司里面,会有专门的人负责对接取数这个活,你只需要提需求就完事了。
在小公司里面,往往你就是自己的主宰。
想要数据?自己去取。
数据不够?自己去找。
我找不到?您真厉害(要你何用)
你可以通过一些数据采集工具或者自己写爬虫脚本。
这里,小一的经验是:
如果你数据量很小,就几百几千条那种,爬虫就没必要了,找一个八爪鱼或者火车头这类的采集工具,效率很高。
如果你数据量略大,需要定时获取那建议你学习一下Python 爬虫
“不会Python,不会爬虫怎么办?”
“往下看,后面有你想要的!”
通过编程手段,实现数据清洗
在你的一波极限操作(差点被辞退)之下,你终于拿到了想要的数据。
仔细一看,监控系统每小时保存一个记录文件,上个月一共30*24个文件,文件也不大,就几MB的样子,但顶不住它量大啊。
咋办?
所以在这一步,掌握至少一门编程语言是基本要求。R、Python都可,推荐后者,后面会细说
在数据清洗的过程中,你需要面对这些问题:
缺失值处理、异常值处理、重复值处理,还有系统偶尔抽风后保存的垃圾数据。
提取有用信息,进行数据分析
现在万事俱备,终于到你熟悉的领域了。
你利用基本的统计学方法进行数据统计,分析每一个指标的数据分布,对比上月的数据你还计算了不同指标的环比情况。
你找到了反映用户投诉的具体指标,确实是这个月这些指标波动比较大影响的,然后你又通过对比不同年份同时期的数据去证实你的结果。
最后,你利用数据分析软件建立了一个简单的预测模型,通过历年数据预测这个月的指标,结果发现相差不大。
受此鼓舞的你又通过模型预测了下个月的指标情况,信心满满。
合理数据展现,输出分析报告
当你一筹莫展不知道怎么写你的分析报告时,你的同事给你发来了“xxxx数据分析报告模板”。
当你看完模板你知道写报告需要这些:图表展示+数据论证+结果预测
你原想着长篇大论说一通,最后却被你精炼到了五六页PPT 上
由于同事模板助攻的到位,你只需要换几张图贴一些数据表,然后将最初的目标原因解释清楚,形成一个稍有信服力的结论
最后附上你预测的结果,来一段合理又不偏颇的建议,你的报告就搞定了。
流程说完了,还是得来点实际的干货,不然又被你们说我水文章了。
这部分主要介绍:如何入门+学习方法
1. 确定自己的方向
在数据分析中,有这样两种类型:偏业务型的数分和偏技术型的数分。
偏业务型的我不太好说,因为我不是业务出身。我了解的偏业务型更多的是在和市场的人打交道,针对市场的促销活动分析用户痛点,提供有价值的分析结果?(是问号,我没打错)
针对运营的周、月、季度、年指标进行输入输出,完美阐释了“我们不生产数据,我们只是数据的搬运工”这句话。
偏技术型的大多都呆不久,哈哈,开个玩笑。
偏技术的会注意各种指标之间的关联,根据业务的情况相应的进行指标优化,预测业务的相应指标。
所以,偏技术型的数据分析最后干着干着就成了一名数据挖掘工程师,自然演变吧。
偏业务型的更容易入门,多了解指标看看业务相关,剩下的就是水到渠成的事情。偏技术的就需要你自己不断的学习,提高自己,尤其是算法模型,没那么简单入门。
2. 提高自己的能力
前面说的有点夸大,你也不必太紧张。数据分析这能力,有很多种途径去提升。
下面我列一下能力阶梯,想要入门的同学可以一级一级往上提升自己。
2.1 业务能力
不多介绍,看个人能力。短则一两周,长则一两个月。
业务相关的,就那么点数据,指标的含义都是早都确定好了的。能举一反三,将一个大目标分解成具体的小指标上,或将小指标确定到具体数据上去,业务能力就ok了。
2.2 Excel 相关
很多同学不把它当回事,不当回事的我暂且认为你还是学生,但凡开始工作已经接触到数据的人,你敢说你真的会用Excel 吗?
Excel 永远是数据处理的一大利器,这不仅体现在它对数据进行各种统计汇总的操作上,还体现在它的图表输出上。
相信也有很多同学通过Python 处理完数据之后,还会去用Excel 画图。
当你的数据量小(以100万行为界限),数据处理简单,数据表唯一的情况下,建议你直接用Excel,快速、方便,输出简单。
在老板眼中,可以用Excel 搞定的分析任务分分钟就能出结果!
2.3 Python/R
前面已经说过为什么要掌握一门编程语言,那在这就来说说怎么简单快速入门一门编程语言
我们都知道,有目的性的去学习是事半功倍的,编程也是
这里我们学编程进行数分的目的就是进行数据清洗、统计预测之类的,那肯定会有这样一个流程:读数据—清洗数据—分析数据—图表分析—关联预测—保存数据。
读数据:肯定和文件操作有关,学习文件相关内容
清洗数据:先判断所有不合理数据,在删除或填充,所以和判断、循环有关,学习分支相关内容
统计分析:通过数学方法汇总指标,和方法有关,学习函数、数学模块相关内容
图表分析:通过制作图表进行更深层次的维度分析,学习可视化的相关内容
关联预测:通过的3、4两步进行合理的关联预测,需要学习相应的简单算法,以及代码的实现应用(加分项)
保存数据:保存到文件或者数据库,学习数据库相关内容
这一个流程下来,编程的相关语法就差不多也学完了,为了提高处理效率在学习下进程线程相关、数据处理高阶模块相关,基本上你的编程技术也就没啥问题了。
这里小一推荐你们直接入门Python,我有写一整套的Python 从入门到进阶再到高阶的学习教程,感兴趣的可以快速入门: 小白学Python(入门+进阶+高阶)
R就不说多了,建议直接Python
2.4 SQL
我本来都忘了写这个技能,回过头看文章才补了上来。不是因为它不重要,而是我每天都在用,熟悉的都忘记了!
学习SQL 没啥好说的,比上面的Python、R简单多了
记住四个功能:增删改查
数据库的基本操作都是围绕这四个的,高阶的数据库操作在数据分析上也用不到,暂时不用考虑
2.5 挖掘能力
不要纠结这个小标题,权且把这个当做数据分析的一个加分项吧,有则更好。
目前的数据分析师大多都会要求懂些算法知识,这个没办法,别人懂就会比你有优势,就会抢你饭碗。
对于新手来说,到了这一步建议直接先去看挖掘十大算法,了解概念就好,然后尽可能的看一些相关的算法模型案例,知道怎么用就行。
最好,自己动手搞几个数据集玩一玩。
至于手撕XX算法这种事,就看个人能力了,别勉强。
2.6 输出能力
套路+练习,小一我觉得主要就这两个。
毕竟写PPT、输出文章这种能力,和天赋有关系也和你的上司有关系,你要是写的东西合胃口了,怎么写都行,要是不合,那可能就会有xxxx数据分析报告Vxx.xx版这种类型的报告频繁出现了。
多看看老同事们写的文档,熟悉熟悉自己公司的文档风格和套路,多写多练,也会慢慢好起来的,这不是什么硬性要求。
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!