..

⑴ 如何使用Spark ALS实现协同过滤

1.背景协同过滤(collaborative filtering)是推荐系统常用的一种方法。cf的主要思想就是找出物品相似度高的归为一类进行推荐。cf又分为icf和ucf。icf指的是item collaborative filtering,是将商品进行分析推荐。同理ucf的u指的是user,他是找出知趣相似的人,进行推荐。通常来讲icf的准确率可能会高一些,通过这次参加天猫大数据比赛,我觉得只有在数据量非常庞大的时候才适合用cf,如果数据量很小,cf的准确率会非常可怜。博主在比赛s1阶段,大概只有几万条数据的时候,尝试了icf,准确率不到百分之一。。。。。2.常用方法cf的常用方法有三种,分别是欧式距离法、皮尔逊相关系数法、余弦相似度法。测试矩阵,行表示三名用户,列表示三个品牌,对品牌的喜爱度按照1~5增加。(1)欧氏距离法就是计算每两个点的距离,比如Nike和Sony的相似度。数值越小,表示相似的越高。[python] view plain print?在CODE上查看代码片派生到我的代码片def OsDistance(vector1, vector2):sqDiffVector = vector1-vector2sqDiffVector=sqDiffVector**2sqDistances = sqDiffVector.sum()distance = sqDistances**0.5return distance(2)皮尔逊相关系数两个变量之间的相关系数越高,从一个变量去预测另一个变量的精确度就越高,这是因为相关系数越高,就意味着这两个变量的共变部分越多,所以从其中一个变量的变化就可越多地获知另一个变量的变化。如果两个变量之间的相关系数为1或-1,那么你完全可由变量X去获知变量Y的值。· 当相关系数为0时,X和Y两变量无关系。· 当X的值增大,Y也增大,正相关关系,相关系数在0.00与1.00之间· 当X的值减小,Y也减小,正相关关系,相关系数在0.00与1.00之间· 当X的值增大,Y减小,负相关关系,相关系数在-1.00与0.00之间当X的值减小,Y增大,负相关关系,相关系数在-1.00与0.00之间相关系数的绝对值越大,相关性越强,相关系数越接近于1和-1,相关度越强,相关系数越接近于0,相关度越弱。clip_image003在Python中用函数corrcoef实现,具体方法见http//infosec.pku.e.cn/~lz/doc/Numpy_Example_List.htm(3)余弦相似度通过测量两个向量内积空间的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。在比较过程中,向量的规模大小不予考虑,仅仅考虑到向量的指向方向。余弦相似度通常用于两个向量的夹角小于90°之内,因此余弦相似度的值为0到1之间。\mathbf{a}\cdot\mathbf{b}=\left\|\mathbf{a}\right\|\left\|\mathbf{b}\right\|\cos\theta[python] view plain print?在CODE上查看代码片派生到我的代码片def cosSim(inA,inB):num = float(inA.T*inB)denom = la.norm(inA)*la.norm(inB)return 0.5+0.5*(num/denom)

⑵ spark中有哪些推荐系统算法

看清楚dbscan算法中有两个关键的参数是eps,andmingroupthreshold.直观的想法是,如果你的eps很大,min-group-threshold也很大的时候,那回你得到的聚类的答类数目就会少很多,那你搜索的时候就可能很快收敛。

⑶ 如何使用spark实现实时推荐系统

实时监控家里的情况,手机还做不到呢。只能连接支持GPRS或3G的报警系统,连接摄像头。设定防区。当防区内发生情况而且在设定范围内的,可以自动截图,并将图及时通过彩信发送到你的手机。

⑷ spark和hadoop哪个好

大数据的浪潮风靡全球的时候,Spark火了。在国外 Yahoo!、Twitter、Intel、Amazon、Cloudera 等公司率先应用并推广 Spark 技术,在国内阿里巴巴、网络、淘宝、腾讯、网易、星环等公司敢为人先,并乐于分享。在随后的发展中,IBM、Hortonworks、微策略等公司纷纷将 Spark 融进现有解决方案,并加入 Spark 阵营。Spark 在IT业界的应用可谓星火燎原之势。创新都是站在巨人的肩膀上产生的,在大数据领域Spark也不例外。在 Spark 出现前,要在一个平台内同时完成批处理、各种机器学习、流式计算、图计算、SQL 查询等数种大数据分析任务,就不得不与多套独立的系统打交道,这需要系统间进行代价较大的数据转储,但是这无疑会增加运维负担。Spark一开始就瞄准了性能,实现了在内存中计算。 话题讨论:1.Spark为啥这么火?Spark框架采用的编程语言是什么?是否容易上手?2. Spark能否成为Hadoop的替代者呢?为什么?它们有哪些相似点与区别?3.作为一种内存的迭代计算框架,Spark使用哪些场景?4.淘宝为什么会选择Spark计算框架呢?5.Mesos 是一个能够让多个分布式应用和框架运行在同一集群上的集群管理平台。那么它是如何来调度和运行Spark的呢?6.Spark 为什么会选择弹性分布式数据集(RDD)作为它的数据存储核心?而不是分布式共享内存(Distributed Shared Memory)DSM?它们有哪些区别? 7.Spark on YARN与Spark有啥区别?8.有人觉得,大数据时代,最精髓的IT技术是Hadoop ,Yarn,Spark,您是否体验过?看好哪个?1.Spark为啥这么火?Spark框架采用的编程语言是什么?是否容易上手?Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合,如pageRank、K-Means等算法就非常适合内存迭代计算。Spark整个生态体系正逐渐完善中,GraphX 、 SparkSQL、 SparkStreaming 、 MLlib,等到Spark有了自己的数据仓库后,那就完全能与Hadoop生态体系相媲美。 Spark框架采用函数式编程语言Scala,Scala语言的面向对象、函数式、高并发模型等特点,使得Spark拥有了更高的灵活性及性能。如果你学过java,可能会对scala中的一些新概念表示陌生,如隐式转换、模式匹配、伴生类等,但一旦入门,你会感觉scala语言的简洁与强大。2. Spark能否成为Hadoop的替代者呢?为什么?它们有哪些相似点与区别?两者的侧重点不同,使用场景不同,个人认为没有替代之说。Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的概念。RDD可以cache到内存中,那么每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapRece大量的磁盘IO操作。但是,我们也要看到spark的限制:内存。我认为Hadoop虽然费时,但是在OLAP等大规模数据的应用场景,还是受欢迎的。目前Hadoop涵盖了从数据收集、到分布式存储,再到分布式计算的各个领域,在各领域都有自己独特优势。3. 作为一种内存的迭代计算框架,Spark适用哪些场景?适用于迭代次数比较多的场景。迭代次数多的机器学习算法等。如pageRank、K-Means等。4. 淘宝为什么会选择Spark计算框架呢?这主要基于淘宝业务的应用场景,其涉及了大规模的数据处理与分析。其主要是应用Spark的GraphX图计算,以便进行用户图计算:基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等。5.Mesos 是一个能够让多个分布式应用和框架运行在同一集群上的集群管理平台。那么它是如何来调度和运行Spark的呢?目前在Spark On Mesos环境中,用户可选择两种调度模式之一运行自己的应用程序 粗粒度模式(Coarse-grained Mode):每个应用程序的运行环境由一个Dirver和若干个Executor组成,其中,每个Executor占用若干资源,内部可运行多个Task(对应多少个“slot”)。应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源,即使不用,最后程序运行结束后,回收这些资源。举个例子,比如你提交应用程序时,指定使用5个executor运行你的应用程序,每个executor占用5GB内存和5个CPU,每个executor内部设置了5个slot,则Mesos需要先为executor分配资源并启动它们,之后开始调度任务。另外,在程序运行过程中,mesos的master和slave并不知道executor内部各个task的运行情况,executor直接将任务状态通过内部的通信机制汇报给Driver,从一定程度上可以认为,每个应用程序利用mesos搭建了一个虚拟集群自己使用。 细粒度模式(Fine-grained Mode):鉴于粗粒度模式会造成大量资源浪费,Spark On Mesos还提供了另外一种调度模式:细粒度模式,这种模式类似于现在的云计算,思想是按需分配。与粗粒度模式一样,应用程序启动时,先会启动executor,但每个executor占用资源仅仅是自己运行所需的资源,不需要考虑将来要运行的任务,之后,mesos会为每个executor动态分配资源,每分配一些,便可以运行一个新任务,单个Task运行完之后可以马上释放对应的资源。每个Task会汇报状态给Mesos slave和Mesos Master,便于更加细粒度管理和容错,这种调度模式类似于MapRece调度模式,每个Task完全独立,优点是便于资源控制和隔离,但缺点也很明显,短作业运行延迟大。6.Spark 为什么会选择弹性分布式数据集(RDD)作为它的数据存储核心?而不是分布式共享内存(Distributed Shared Memory)DSM?它们有哪些区别?RDD是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapRece大量的磁盘IO操作。这对于迭代运算比较常见的机器学习算法, 交互式数据挖掘来说,效率提升比较大。 RDD只能从持久存储或通过Transformations操作产生,相比于分布式共享内存(DSM)可以更高效实现容错,对于丢失部分数据分区只需根据它的lineage就可重新计算出来,而不需要做特定的Checkpoint。7.Spark on YARN与Spark有啥区别?让Spark运行在一个通用的资源管理系统(如yarn)之上,最大的好处是降低运维成本和提高资源利用率(资源按需分配),部分容错性和资源管理交由统一的资源管理系统完成。而spark单独是无法有效提高资源利用率。8.有人觉得,大数据时代,最精髓的IT技术是Hadoop ,Yarn,Spark,您是否体验过?看好哪个?Yarn不就是Hadoop MapRece新框架吗,这里为何要单独列出。个人认为当下Hadoop生态体系相当庞大,且技术日趋成熟,Spark还有待发展。如果有一天,Hadoop加进内存计算模型,到时,Spark又会是怎样的处境呢?

⑸ 用Spark做数据分析是怎样一种体验

数据科学家为了回答一个问题或进行深入研究,会使用相关的技术分析数据。通常,他们的工作包含特殊的分析,所以他们使用交互式shell,以使得他们能在最短的时间内看到查询结果和代码片段。Spark的速度和简单的API接口很好地符合这个目标,它的内建库意味着很多算法可以随时使用。Spark通过若干组件支持不同的数据科学任务。Spark shell使得用Python或Scala进行交互式数据分析变得简单。Spark SQL也有一个独立的SQL shell,可以用SQL进行数据分析,也可以在Spark程序中或Spark shell中使用Spark SQL。MLlib库支持机器学习和数据分析。而且,支持调用外部的MATLAB或R语言编写的程序。Spark使得数据科学家可以用R或Pandas等工具处理包含大量数据的问题。有时,经过初始的数据处理阶段后,数据科学家的工作将被产品化,扩展,加固(容错性),进而成为一个生产数据处理应用,作为商业应用的一个组件。例如,一个数据科学家的研究成果可能会产生一个产品推荐系统,集成到一个web应用上,用来向用户生成产品建议。通常由另外的人员(如工程师)对数据科学家的工作进行产品化。这个的话,先要了解下当下比较火的大数据,ITjob官网上有大数据和Spark的文章和帖子,如果觉得回答的不够详细,可以自己再去了解下。也可以去专业的贴吧和博客寻找下答案。

⑹ 大数据入门阶段该学什么

你好,大数据的复待遇让人制羡慕,大数据工程师成为很多人的梦想。想要成为大数据工程师,肯定需要工作技巧、行业背景知识等多方面的输入。只要掌握了真正的的技术,以后各方面的发展都会非常不错。如果想入大数据行业,却苦于自己没有基础,担心自己学不会,可以选择专业的学习,千锋的很不错,一般学习费用在2W左右,也有线上的相关学习。零基础学习并不可怕,一般4-6个左右的时间,只要你肯努力,一切都不是事。

⑺ 金融需要 hadoop,spark 等这些大数据分析工具吗使用场景是怎样的

各行各业都是需要的,比如行业基本面分析和量化分析。

⑻ 唯品会高级资深算法工程师的算法工程师要有spark开发经验,却不要求java经验

java现在环境来很不好,各地都是培训源,几个月填鸭教学连数据结构,网络原理,硬件原理都没学过怎么搞算法.要求c++基本都是本科相关专业,底层知识至少都了解过,比半路出家的半吊子java好多了. 顺便我不是黑java