数据科学
author:zzm
本章内容会从一个小故事开始
讲讲某个人在大一的悲惨经历来为大家串起来一个精简的数据科学工作包括了哪些步骤,同时给各位介绍一些优质的教程
同时,这章内容将详细阐述与人合作的生死疲劳
悲惨世界
若有雷同,纯属瞎编~~根据真实事件改编
后人哀之而不鉴之,亦使后人而复哀后人也!
请欣赏小故事的同时,根据自己的需求选择自己想学的教程
Day1
你是一个可怜的大一学生,学校的短学期的第一天,你的心情非常好,因为要放寒假了,只要再坚持过这个短学期,你的快乐假期要来了!什么是短学期?不知道啊,也没听学长说过,好像是新研究出来的一个课程,去试试看吧。
当你快乐的走进教室,老师告诉你:“你们看看 PPT 上的任务,自由选择啊!”
你看到 PPT 上赫然印着
任务目标
基础系统:
- 淘宝客户价值分析系统,实现爬取数据,数据处理,数据分析。
- 二手房数据分析预测系统,实现爬取数据,数据分析,绘制图表。
- 智能停车场运营分析系统,实现爬取数据,数据分析,绘制图表。
- 影视作品分析系统,实现爬取数据,数据分析,绘制图表。
升级系统:
- 利用爬虫理论,实现 12306 抢票小助手系统。
- 利用数据分析方法,实现淘宝商品排行分析。
- 利用爬虫原理,爬 Google 搜索引擎分析。” 要求实现三项以上的功能模块或三种以上的特征分析或提取。
心中一惊,暗道不妙,这都什么玩意,怎么还有爬谷歌,淘宝和抢 12306 的票啊,这 tm 不是犯法的么!这我要能做出来我还上什么大一的学啊!🥺🥺🥺🥺
老师紧接着补充 “十个人一组啊!一周内做完,数据自己想办法,第三天就要检查你们的进度了!”
这是你倒是暗暗松了一口气,好像十个人一起干也没有那么复杂!😎(这时正是愚昧之峰,错误的认为工作总量就是工作量除以十)迅速的组好队之后,你问了问大伙的进度,what?大伙都没有 python 基础,只有我有?幸好学了 hdu-wiki 和 datawhale 的聪明方法学 python
那就把教程分给大伙吧,我们选一个最简单的,二手房数据的分析系统好了!
第一天选好题了,又是大下午的,摆了摆了,你开心的打开电脑,打开了 steam,开摆!
day 1 End!🤣
Day 2
昨天真是美滋滋的一天,玩了一晚上的你有点头昏脑涨,今天就开始干活好了,反正一周时间呢,比期末复习周可长太多了,就做这么个玩意我还能做不出来吗?
虽然你没有学过爬虫,但是你很幸运的找到了 github 上一个现成的爬虫代码,虽然费了一翻力气,但是仍然躲过了某房价网站的爬虫,他成功爬下来了,我们就把他存在哪里呢?~~(爬虫待补充)
先试试 excel 好了,毕竟这是大家最耳熟能详的存表格的方法,但是你貌似没有深入了解过他,打开了 datawhale 的 free-excel,你才惊讶的发现,wow,原来他有这么多牛逼的功能啊!它除了可以将房价统计,找到它的平均价格,算出他的最高价格之类以外,竟然也可以把他可视化!甚至它还可以对房价进行多元分析!根据房屋数量面积地段等等因素帮你预测房价,甚至可以自动帮你检索和去除重复数据,实在是太好用啦!
当然,这只是一个理想状态,残酷的现实很快给你当头一棒!当你试着多爬点不同城市数据的时候,他崩了!这么脆弱的吗?!干点活就喊累的吗?!😨
当然你想起了有一个备用方案,好像你可以用数据库去存储他!
之前好像看到有一个教程叫做 wonderful-sql
他提到 “随着社会的快速发展,各类企业数字化转型迫在眉睫,SQL 应用能力日趋重要。在诸多领域中 SQL 应用广泛,数据分析、开发、测试、维护、产品经理等都有可能会用到 SQL,而在学校里系统性讲授 SQL 的课程较少,但是面试及日常工作中却经常会涉及到 SQL。”
确实学校没有教过,但是幸好你有教程,折腾了一翻之后,你发现你对数据库有了更深的理解,他帮助了我们在容纳大量的多种不同的数据形式的时候不用专门去考虑怎么设计一个数据结构而是规划了一定的存储方法后全部塞给他,完全不用考虑具体的物理性的以及性能问题存储模式,并且他很多高级的功能可以帮助你便捷的把数据组织成一般情况下难以到达的形式,他的底层设计被严格的包装起来让你在进行数据增删改查的时候都又快又好。
并且它可以非常方便的存一些 excel 不好存的所谓的非结构化的数据,比如说图像等等,并且他不会动不动就喊累!处理几十万条也是一下子!
当然同时你也了解到,你所用的是关系型数据库,是老东西了,目前还有很多较为前沿的非关系型数据库,例如 MongoDB (这玩意什么都能存,比如说地图),Neo4j(像一张蜘蛛网一样的结构,图)等等,他们不用固定的表来存储,可以用图存或者键值对进行存储,听起来好像非常的高级,不过你暂时用不到,数据搞都搞下来了,量也够了,是时候看看队友做到哪了?说不定后面你都不用做了,已经做的够多够累的了!
什么?!刚开始学 python?!woc! 完蛋,你逐渐来到了绝望之谷,唉!明天继续做吧!看来休息不了了。 day 2 End 😔!
Day 3
God!No! 昨天已经够累的了,今天老师还要讲课,还要早起!你期待着老师可以降低要求,可是当老师托起长音,讲起了他知道了学生的累,所以今天决定开始讲课了!(现在讲有毛用啊,你明天就要验收我们的进度了!)
而他却慢悠悠的开始讲 python 的历史,把这点内容讲了足足两节课,你终于绷不住了,本来时间就不够,他竟然又浪费了你足足一早上的时间!这也太该死了!🤬
你回到了寝室,准备今天争取数据分析完就直接交上去好了!
可是你发现了一个让你震惊的噩耗!你找到的数据,是混乱的!😱
这个野鸡房价网站每个城市的排版不一样,你爬虫爬取的完全是按照顺序标的,也就是说你爬取的所有房价信息处于混沌状态!完全就相当于给每个房子爬了一段句子的描述!
没有办法了,看来今天有的折腾了,你找到了一个叫 pandas(熊猫?)的东西,找到了这个教程 Joyful-Pandas,开始了一天的学习!
你了解到 pandas 是一个开源的 Python 数据处理库,提供了高性能、易用、灵活和丰富的数据结构,可以帮助用户轻松地完成数据处理、清洗、分析和建模等任务。你使用了 DataFrame 来装载二维表格对象。
用一些关键词来提取数据中隐藏的信息,例如提取 “平米” 前面的数字放到‘area' 列,提取房价到 'price’列,提取位置到 'locate' 里面,当然你也遇到了可怕的 bug,提取所有 “室” 和 “厅” 前面的数字,他总是告诉你有 bug,全部输出之后才发现你提取到了 “地下室” 结果他没法识别到数字所以炸了!
将数据勉强弄得有序之后,你提取了平均数填充到缺失数据的房屋里面,将一些处理不了的删掉。
当然,你也额外了解到 pandas 这只可爱的小熊猫还有非常多强大的功能,例如数据可视化,例如分类数据,甚至可以让房屋按照时序排列,但是你实在不想动了!
不论怎么说,你勉强有了一份看得过去的数据,你看了看表,已经晚上十一点半了,今天实在是身心俱疲!
问问队友吧,什么,他们怎么还是在 python 语法?!你就像进了米奇不妙屋~队友在说
“嘿~你呀瞅什么呢~是我!你爹~”
此时你像一头挨了锤的老驴,曾经的你有好多奢望,你想要 GPA,想要老师的认同,甚至想要摸一摸水里忽明忽暗的🐠,可是一切都随着你的 hardworking 变成了泡影。
可是步步逼近的截止日期不允许你有太多的 emo 时间,说好的七天时间,最后一天就剩下展示了!也就是说实际上只有 6 天的开发时间,也就是说你必须得挑起大梁了
世界上只有一种真正的英雄主义,那就是看清生活的真相之后,依然热爱生活
好的,你真不愧是一个真正的英雄!
day 3 end!👿 👹 👺 🤡
Day 4
老师在验收的时候认为你什么工作也没做,他认为一份数据实在是太单薄了,特别是被你疯狂结构优化后的数据已经没几个特征了,让你去做点看得到的东西,不然就要让你不及格了,你的心里很难过,你想到也许你需要一些更好看的东西。数据可视化你在昨天的 pandas 看到过,可是你并没有详细了解,你觉得 pandas 已经在昨天把你狠狠的暴捶一顿了,并且老师想要更好看的图。
于是你考虑 pandas 配合 Matplotlib 画一些简单的图(Matplotlib 的缺点是它的绘图语法比较繁琐,需要编写较多的代码才能得到漂亮的图形。)
加上 Plotly 绘制一些复杂的图,让你的图有着更漂亮的交互效果,然后加上看起来很牛逼的英语描述
你找到了下面的教程:
🤗 你绘制了柱状图,散点图,箱线图,甚至花了点钱找了外包去做了一个前端的热力图,虽然你爬的城市和数据不够覆盖全国,但是可以数据不够前端来凑啊!把城市的热量铺洒在全国。
这时你认为你的任务已经完成了!于是早早就心满意足的早早睡着了🍻 🥂。最近真的太累了,天天一两点睡,早上惊醒,做梦都是在爬数据分析数据!太可怕了!
在梦里,你好像看到了美好的假期时光。 😪
day 4 end!~🤤
Day 5
你睡得很死,因为你已经你做完了所有的东西,第二天只要美美的验收结束,买了机票就可以回家了,可是老师仍然制止了你,跟你说如果你今晚走了就给你挂科,因为你没有用机器学习来分析他!
可是机票今晚就要起飞了啊!😰你已经要气疯了,想和老师据理力争,但是又害怕这么一个课被打上不及格的分数,这实在是太难受了!
终归你还是在老师的逼迫下,改签了机票,好吧,多少得加点功能了!呜呜呜~🤢 🤮
可是你并不完全会机器学习的算法,可怜的大一本科生的你没有学信息论也没有学最优化理论,很多算法你完全不懂其理论知识!听说西瓜书很好,可是你在图书馆借到了西瓜书之后根本看不懂!
于是你找到了吃瓜教程,也就是所谓市面上的南瓜书的文字教程
你也找到了西瓜书的代码实践文字教程
你对着他啃了半天,觉得很多东西你都能看懂了,你脑子里已经有了很多思路,你想按使用高级的机器学习的算法!
但是!时间还是太紧张了!你没有办法从头开始实现了!
你想尝试 pytorch 文字教程,但是时间也不够让你去重整数据去训练了。你随便塞在线性层里的数据梯度直接爆炸,你这时候还不知道归一化的重要性,紧张之下把几万几十万的房价往里面塞,结果结果烂成💩了,并且你那薄如蝉翼的基础知识并不够让你去解决这些个 bug,只能疯狂的瞎调参数,可是结果往往不如人意~
时间来到了晚上八点,明天就要最后验收了,走投无路的你把目光看向了远在几十千米外已经入职了的大哥,晚上跟他打电话哭诉你最近的遭遇,你实在搞不懂,为什么十二生肖大伙都属虎,就你属驴。
大哥嘎嘎猛,连夜打车过来,你在因疫情封校的最后两个小时跑出了学校,和大哥一起租了个酒店,通宵奋战,他采取了更多更为优雅的特征工程和模型调参的方式,让模型优雅的收敛到了一定程度,再用春秋笔法进行汇总,在半夜两点半,终于将内容搞定了😭
终于你可以睡个好觉了~
day 5 end!😍 🥰 😘
Day 6
验收日,老师端坐在底下,宛如一尊大佛,提出了一系列无关紧要的问题,比如问 “我们能不能拿这个程序给老年人查资料???”
等等问题和技术一点关系都没有!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
😣 😖 😫 😩
极度悲愤之下,当天晚上,你火速提着行李,离开了这伤心之地~~~~~~~~~~~~~~~~~
The End~~~~~~~~~~
事后总结
你在那个暑假详细了解和学习一下数据科学竞赛,发现他的含金量在职场领域有时候相当高,并且对提升自身的实力也有相当大的帮助!
你还发现了之前从来没有注意到的 kaggle 平台以及一些很棒的综合实践项目!
想到如果你早做准备,没有荒废大一的时光,也许你不但能圆满的通过这次课程,也可以开辟更为广阔的新世界了吧~
同时,你也初窥了数学+机器学习世界的瑰丽传奇,你想更为深入的对其有一个了解,并且做出点东西,希望对你日后的学习生活有个见证~~
少年将去开启新的传奇~~~~~
再次警告,本章内容有很多瞎编的内容,不要全信
比如说一天学完 pandas,一天学完 sql 之类的都是很不现实的!希望大家注意!
当然你也可以在需要用的时候再研究,也来得及,就是很累
不要打击到大家的自信心!
补充内容:下个定义
数据分析是独立于开发和算法岗的另一个方向,它主要是通过应用机器学习和深度学习的已有算法来分析现实问题的一个方向
我们常说:数据是客观的,但是解读数据的人是主观的。
数据这门科学就像中西医混合的一门医学,既要有西医的理论、分析模型以及实验,又需要有中医的望闻问切这些个人经验。
这世界缺的真不是算法和技术,而是能用算法、技术解决实际问题的人
什么是数据科学
数据科学是当今计算机和互联网领域最热门的话题之一。直到今天,人们已经从应用程序和系统中收集了相当大量的数据,现在是分析它们的时候了。从数据中产生建议并创建对未来的预测。在这个网站中,您可以找到对于数据科学的更为精确的定义。
同时,我向各位推荐一个非常有趣的科普视频想你讲解数据分析师到底在做什么:怎么会有这么性感的职业吶?
Datawhale 的生态体系
在与 Datawhale 开源委员会的负责人文睿进行一翻畅谈之后。zzm 受震惊于其理念以及已经构建的较为完善的体系架构,毅然决然的删除了本章和其广泛的体系比起来相形见绌的内容。为了更大伙更好的阅读以及学习体验,我们决定在本章内容引入了 datawhale 人工智能培养方案数据分析体系,希望各位站在巨人的肩膀上,争取更进一步的去完善它。