标签:
标签(空格分隔): SPARK机器学习
欢迎关注小小草的微信号:大数据机器学习。日后不定期分享大数据,机器学习的学习资料与博文,希望与大家共同学习进步~
很多年前,当我还在应付着微分方程,条件概率,用问卷星写抽样调查报告在QQ群发求填,对着30多条就被称为大样本的数据做检验和回归的时候,“大数据”的概念已经如火如荼地在微博圈和朋友圈里圈圈相传了。
但是到底大数据是什么,和我们生活有什么关系,企业是怎么“大数据”的,它到底在星星之火,还是燃烧燎原,到底是蹒跚陨落还是晨辉未起呢?一切都似乎神秘不可窥探。
写这篇文章绝不是给大家科普,小女子尚未到达大谈己论的火候,只当是对我接触大数据与机器学习以来所思所想所见所学的一道梳理与记录。
大数据是数据,就像红苹果是苹果,美少女是少女一样,只是加上了一个平无奇常的定语,便赋予了独有的属性———“大”!这里我说不出它有多大,也不知道大小的界线,每个企业的数据量都不同,要不你自行脑补一下,大到没地方存储,大到简单的计算都非常慢非常吃力,就像一个大胖子,全身的肉都下垂到地上了,动一下都汗流浃背,张嘴讲话都挪不动脸上的肉,哈哈。
我将数据的来源分成三大类:
第一,公司自有的用户行为数据,公司有自己的网站,只要有用户打开了这个网站,所有的操作与行为都会被详细记录,包括从什么页面跳转过来,进入网站各个页面的时间点,在每个页面停留的时间段,用户的IP,通过IP号还可以知道用户所在的城市与区域,当然每个用户在网站上的购买行为等等都是公司的可以自由支配的数据。如此一来,拥有越多活跃用户的网站将掌握越丰富的数据,从而也可以从数据中挖掘更多意想不到的价值,比如淘宝,京东,携程网等等。
第二,与其他数据龙头的公司合作,所谓数据龙头公司,就是上一点中那些拥有巨大数据的公司,如果有资源与人脉,你也许可以与淘宝合作,获得一部分你想要的消费行为数据,从而实现你的分析需求。另外,像电信,移动这类巨头,如果能合作,便可以获得用户的上网行为数据,只要你上网,那么你的所有网络行为在电信都是有记录的,通过数据挖掘可能会获得巨大的商业价值。
第三,爬虫爬取数据。爬虫可以模拟人登入各类网站,然后爬取网站上的数据与内容,比如可以爬取大众点评上所有店的信息,包括它的评价数,评分,地址,类别等。只要网站上有这个信息,便能获得。爬虫的缺点是,许多网站,比如微博会有反爬虫的措施,一个IP号反复登入超过某个频率便会被拉黑;另外,登入许多网站时需要输入验证码也是一中反爬虫的方式,扭曲的字母与数字人可以看清但机器却时常难以分辨。
以上三种是我所接触到的主要的数据获取方式。
在这里说个小小题外话,我之前一直想为什么咨询公司现在很少有将大数据结合起来的,现在想到可能的原因是咨询公司没有自己的数据,企业宁可自己高额招聘分析人员也绝不可能将自己数据交给咨询公司去做诊断与分析,况且数据是接连不断的,而咨询公司提供的服务是一时的。(感觉这里还是有新的商业模式可以挖掘的,各位客官如何看?)
每天产生几亿的数据,要源源不断地增量存储,而且数据的格式多姿多彩,传统的方式肯定无法再满足了。购买高性能的大型服务器,不但昂贵,而且也只能满足一时的数据量。
此时,我要普及一个很重要的概念————“分布式”。什么是分布式呢,举一个简单的例子,一台普通的电脑(假设8G内存,4核,1T硬盘),当我的数据超过1T的时候,我又买了台电脑,将这两台电脑部署在一起,我就可以存2T的数据了,同理,随着数据量不断的扩大,我可以不断地买新电脑加入这个集群,我的数据通过某种机制被分布在了多台电脑上,同时会有一个入口让你自由存取集群里的数据。我们称每台PC为一个节点,在这些节点组成的大家庭中,有一个主节点如同皇帝,其他为从节点如同各地方的官员,形成了一个从容运行的生态系统。原来在单台电脑上需要运行10个小时的算法程序,在集群中可能只需要1个小时(因为内存,核数增多了)。这就是所谓的“分布式”,它还带着另一个优点,就是可扩展,集群的大小可以根据企业的发展和数据增量来自由扩展。
这样是不是比去买一台相同性能的大型服务器要棒好多呢~
了解了分布式的概念,你可能会问,那总要有个工具或者载体能够把这些独立的PC连接起来形成一个集群的呀~对呀,我现在就要介绍一下hadoop,这个词我第一次听到是在一门研究生课上,有一张PPT一闪而过我却一直记着这个词,后来学了hadoop开发才对它有进一步的了解。hadoop 现在最稳定的是版本2,Hadoop2现在由三个部分组成:hdfs, yarn,mapreduce
hdfs是分布式存储数据的文件系统,里面也有一台节点为皇帝叫namenode,负责管理其他从节点,其他节点叫datanode,按块存储着数据,并且听从namenode的差遣;
mapreduce是一个计算框架,当我们想对数据就行分析的时候,就会从hdfs上读取数据然后通过mapreduce进行计算,计算完的结果同样可以存储会hdfs上;
yarn是一个资源调度框架,集群里有那么多pc组成,那么在mapreduce执行计算任务的时候,谁干什么,谁有多少资源,以及任务的执行都是归yarn管的。
hadoop的主要成员各司其职,形成了一个核心的大数据框架。
具体他们的运行原理我在这里就不长篇大论地讲了,有兴趣的小伙伴可以关注我的公众号,我会定期发送笔记与学习文档给大家。(话说现在hadoop3版本据说已经出来了)
在这个hadoop集群中,我们照样可以安装mysql等关系型数据库,也可以安装hbase这样的列式存储的数据库,来实现数据的存储与读取,我有许多朋友都在从事hadoop大数据开发的工作,在企业无论大小,都在尝试着部署自己的大数据集群,因为在利用数据之前,建立一个有效的系统能稳定安全高效地将数据有条有序地存放好是关键首步。
说起分析,我觉得其实是企业大张旗鼓,费尽心机投身于大数据的关键与核心。撇开卖数据来赚钱,数据其实不产生实际的价值,只有通过分析数据,帮助企业决策与定位,从而提高企业业绩,才能产生真正的价值。那么分析的过程就尤为重要了。
我自定义将数据分析的程度分成两类,一类是浅层的描述分析;一类是深层的建模分析。
之所以这样分,是因为企业不同的发展程度与业务需求,对于现阶段数据分析的程度也不同。去拉勾网,前程无忧等招聘网站搜索数据分析师,不同企业的要求是不同的。
有些企业只要求你掌握mysql,sql server等关系型数据库和nosql查询,甚至有些还停留在熟练使用excel上。这类企业可能只需要通过sql去增删查减数据,为各业务部门提供销售,经营,供应链等数据的报表,在计算上涉及加减乘除以及其他描述性统计的功能。
第二类企业会需要你使用SAS,SPSS,Eviews等分析工具,这些工具能不仅能实现增删查减与描述性统计的功能,还能够使用其中的功能进行数据建模分析,不会写coding的小伙伴也可以使用它们的图形化界面去灵活操作。
第三类企业会进入更深层次,它们不但需要你掌握sql,还需要你能熟练利用R,Python语言进行数据挖掘,进行数据建模。R和Python有非常丰富的算法包可以直接调用,但对于一些不常用的算法,分析师也需要自己用代码写算法程序。
第四类企业是在第三类企业基础上的大数据升华。随着数据量增大,单纯地将python,R在本地机器上运行已经无法承载了,于是目前有一个备受青睐的框架————Spark! Spark是一种内存计算框架,比起hadoop的mapreduce速度简直是神一样的存在。Spark的具体介绍我过后再惊心动魄地和大家讲解,在这里只说它的两个优点,第一它也封装了越来越多的机器学习的包,我们可以直接调用;第二它支持R,Python,Java,Scala四种语言,就是说你只要会其中任何一种,都可以使用Spark去实现快速地算法程序。原来要跑几个小时,现在轻松几分钟,是不是高效地不要不要的~
以上就是目前比较普遍的分析情形,随着数据量的增大,像Spark这类框架也许会持续走红,企业们也正在向大数据领域逐渐地学习与尝试。
上面说了Spark机器学习,机器学习其实是由来已久的,大家记不记得大学里概率论这门课中会教条件概率,朴素贝叶斯公式,全概率公式,那么这个朴素贝叶斯其实就是机器学习中的一种分类算法。你的QQ邮箱分辨垃圾邮件与非垃圾邮件,沃尔玛可能会将消费者分为有钱消费者和普通消费者,信用卡部会将用户分为正常用户和潜在的违约用户等等,可能背后都会涉及到贝叶斯算法。分类的算法还有支持向量机,决策树,逻辑回归。
另外还有一种最常见的机器学习算法是推荐算法,比如酷狗音乐向你推荐你可能喜欢的歌曲,优酷向你推荐你可能喜欢的电影,淘宝和京东向你推荐你可能喜欢的商品,你自己都不知道怀孕了亚马逊就向你推送胎教音乐了,等等这些背后都是推荐算法的运作。推荐算法分为基于用户的推荐与基于物品的推荐,还是一样,后续文章我会对这些算法详细说明。
所谓机器学习就是让机器去学习一组数据,找到从中隐晦的规律,建立模型,当下一个数据进来的时候,机器能根据这个模型做出准确地预测。机器学习的这些算法在金融领域的量化投资上也是十分常用。
那么你可能会问了,贝叶斯这些东东几十年前国外的论文就一大堆,其理论早就成熟了,为啥机器学习现在才火起来呢?这个原因我之前自己想过,上周领导给我们培训的时候,我发现想的和领导一样,所以我才敢在这里大谈一下,哈哈。
其实很简单,成熟的理论无法用到实践中产生商业价值自然得不到人们的关注,也只有数学家和学术研究者对其错综复杂的推导之美爱之深切(曾经有位老师在课上推导了一黑板的公式,然后望着黑板,由心而生地感叹了一句“so beautiful!”,我才理解他们的感情)。那么现在情况变了,商人也好,程序员也好,已经开始目不转睛地爱上了数据挖掘,晦涩难懂又无法商业化的公式和算法,如今已经可以通过一些大数据的工具(比如SPARK)活灵活现地巧妙应用了,从数据的获取到价值的展示短短的几天甚至一天就可以实现。你叫它怎么能不火起来呢,哈哈。
有些小伙伴会说机器学习和大数据很多年前就火过一段时间了,好像也没啥花头。我个人觉得,之前的火是燃烧在人们“口中”,现在的火是点燃在“企业的实践中”,之前是大公司一家独大,现在是中小企业人人皆可尝试。
能看到这里的小伙伴真是不容易,欢迎点个赞让我知道你们是谁,哈哈。
另外要注明的是,以上所有言论都是我的一家之言,错误的地方希望小伙伴们能指正。
再另外,感兴趣的小伙伴欢迎关注我的公众号,文章都是自己写的,以后会不断更新,有技术资料也有文艺日志。
再另外,我不是程序员,也不准叫我女程序员。
扫描二维码,关注小草-墨色凤舞的微信公众号,本小草是一颗伪程序猿草,和,伪文艺草,等待大家带我飞
标签:
原文地址:http://blog.csdn.net/sinat_33761963/article/details/51699178