由于实验室的项目需要,从研二起我开始学习数据挖掘与机器学习。秋招时很幸运拿到了触宝数据挖掘工程师的offer,可以在这个方向一直做下去。因为这个方向近年来比较火,我接触的一些朋友听到我做这方面都蛮好奇,也经常有朋友或学弟妹问我数据挖掘该怎么学习,今天我就用这篇文章介绍这一点。
数据挖掘,大数据可以做什么?
它可以让我们拥有先知的力量,以下是说明。
1.我们的生活被数字化了。
现在我们出行可能要靠滴滴,靠摩拜单车,上班要打卡,吃饭点美团,手机记录了我们的生活轨迹。
对于一家商店,一个企业,它们的经营数据都被各种管理软件记录下来了。
未来当可穿戴设备流行起来,我们的心跳呼吸都会被记录下来作为数据。
也就是说当发生的事都被数据化。世界的运行可以被计算机“理解”了。
很多同学学大数据但是始终不得法,花了好几个月好不容易把基础概念理清楚入门了,发现写出来的代码断断续续无法成形。大数据学习交流扣扣群:606859705 一起讨论进步学习,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习大数据有任何问题(学习方法,学习效率,如何就业),可以随时来咨询。
2.如果模式不变,过去=未来。
一个人的生活轨迹,大多数时候是工作日三点一线,节假日度假或者在家窝着。这个规律是稳定的。
一个商店在一天内什么时候生意最好,什么时候生意最差,这个是稳定的。
一家企业什么季节用工量大,什么季节用工量小,这个是稳定的。
由1、2点得到结论=>计算机可以根据历史预测未来。计算机获取了过去的数据,如果过去的规律在未来不变。
它能够预测出一个人在工作日,节假日的生活轨迹。=>给出相应的促销,广告信息。
它能够预测出一个商店什么时候生意好,什么时候生意差。=>给出最好的商店经营策略。
它能够预测出一家企业什么季节用工量大,用工量小。=>制定出最优的企业运营策略。
当未来会发生的一切都可以预料,你就可以采取最佳的应对办法。就好像黑客帝国中里昂,能够清晰地看到子弹袭来的轨迹,他就能够轻易地躲开所有子弹。这就是数据挖掘的力量。之所以媒体的宣传中数据挖掘和大数据总是一起出现,是因为在数据量很小的情况下,计算机是无法总结出规律的,大数据是预测的基础。
数据挖掘的就业前景如何?
数据挖掘的行业前景是看好的,上一个行业革命中,我们使用各种电子管理软件取代了人力。现在这些软件产生了越来越多的数据,行业的下一个诉求是从这些数据中提取信息。Glassdoor是美国一家做企业点评与职位搜索的网站,它新发布的全美国50个最佳工作名单,数据科学家排名第一。top10中有一半与数据有关[1]。
但它在国内的就业形势并不好,找一份对口的岗位很难,见知乎问题"今年进互联网公司为什么这么难?(数据挖掘方向)"下“严昕”的回答[2]。原因1是国内的数据挖掘仍在初始探索的阶段,并没有大规模的进入应用。岗位也没有大数量的产生。原因2是该岗位门槛较高。企业很需要能熟练进行数据分析,带来商业价值的员工,但大部分刚进入这一领域的同学无法做到这一点。
另一方面看,高门槛也是机会,一旦你跨过了这个门槛,你所掌握的技能就拥有更大的稀缺性。
数据挖掘,大数据,机器学习,他们分别是什么?
大数据(big data)
当数据量很大时,一台电脑就无法处理了。比如一个很大的txt文件,10个GB,你在windows下是打不开的,双击后电脑会卡死半天,最后报个错了事。在企业中的数据,比如一个网站运行的日志,或一家企业的经营信息,很容易到达这个级别,这个时候用任何普通的分析软件,打都打不开,机器直接卡死,更别说分析了。
大数据技术就是用来解决这个问题的,它可以理解为一个特别的软件,使得可以把一个文件分成很多小的片段。用多台电脑分别处理,进行你想要的操作,最后把操作结果汇总到一台电脑上展示。这个分散再合并的过程,我们称作MapReduce。执行这一操作最常用的软件,叫hadoop。hadoop本身解决了最基本的问题,围绕它还有一系列相关软件(pig,zookeeper,hive),让这个过程变得更加容易使用。hadoop以及这些围绕它的相关软件就可以称为大数据技术。这些软件都是免费的,所有人都可以无偿使用,或根据自己的需要对软件做改动。
还有一些其他的大数据软件,hadoop是最具代表性的。其实hadoop的原理最早是google发明的,google因为业务量大的原因,最早遭遇了大数据处理问题。他们解决了这一问题后用一篇论文把hadoop的原理公布了出来,但自用的软件源码没有公布。后来随着数据量的增大,大家也纷纷遭遇大数据问题,通过谷歌论文知道怎么解决,但没有软件用,只好合力自己撸了一个山寨产品hadoop出来。再后来因为hadoop免费,很多公司都纷纷把它应用在自己的产品中,它变成了事实上的标准。
机器学习(machine learning)
我们上文提到了对数据文件进行操作,假设这个数据文件里是消费者的购物信息,统计总购物数量,某个消费者买了多少东西。这都是简单的分析操作。但如果要统计不同消费者间的相似度,对某个消费者的喜好进行猜测,甚至预测某些消费者的年龄性别。这就需要更复杂的计算了。这些更复杂的计算,我们称之为算法。机器学习就指代这样一大堆用于数据挖掘的算法,它们包括逻辑回归,决策树,协同过滤等。这些算法的总数量可能非常多,但在企业中常用的可能只有十几种。近来非常火热的神经网络也是机器学习算法中的一种。
数据挖掘(data mining)
利用机器学习算法可以做到利用旧数据预测新数据@#,也就是说数据挖掘的神奇之处是与它密切相关的。然而任何机器学习算法缺乏了大量历史数据的支持,其效果也会大打折扣,一个算法再奇妙,也没法根据一两条数据得到什么信息。可见大数据技术为机器学习提供了运行的基础。因此可以把数据比喻成食材,大数据技术比喻为厨具,机器学习比喻为烹饪的过程。把食材变成一顿满汉全席,从数据中提炼价值就是数据挖掘的概念。
数据挖掘从业者的方向有哪些?
上文谈了大数据与机器学习,最主要的就是这两个方向:
1.大数据工程师的任务是维护大数据架构,数据仓库等的正常运行。
2.机器学习算法工程师的职责是为算法调优,选择最符合业务要求,性能又最好的算法。
其他方向有:
3.进行初期数据分析,或对小批量数据进行分析主要使用统计学知识,专职统计学分析的岗位称为数据分析师。ps:其实运用机器学习算法的场景其实不多。
4.对数据分析结果进行展示,画出饼状图,柱状图等,要用到数据可视化技术。专职这一岗位的称为数据可视化工程师。
事实上:1与2的描述是极端的两级,大多数人可能是数据挖掘工程师的角色,他们既要懂算法,也要会使用大数据工具操作数据。对两方面都有了解才能展开工作。包括3,4。数据团队的一份子可能会有其中的多种技能,但就好像复联一样,最好每人有不同的专长。
总结来说,数据团队成员的选修技能:
1.计算机基础
2.机器学习算法
3.统计学
4.可视化技能
5.大数据技术
必修技能:
1.高等数学:这是推导一些算法的基础。
2.英语阅读:很多该领域的工具是全英文的,最新的的学习资料也都是英文的。
3.编程技能:所有和数据有关的操作都需要在计算机上运行,都需要编写代码。
自学成为数据挖掘工程师,有可能吗?需要怎么做?
我的数据挖掘知识就是自学的,偏重于机器学习方向,因为是自己摸索,在一些没用的资料上浪费了很多时间 /(ㄒoㄒ)/~~。
很多同学学大数据但是始终不得法,花了好几个月好不容易把基础概念理清楚入门了,发现写出来的代码断断续续无法成形。大数据学习交流扣扣群:606859705 一起讨论进步学习,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习大数据有任何问题(学习方法,学习效率,如何就业),可以随时来咨询。
网友评论