您的位置:首页 > 其它

毕业找工作笔试题目总结(1)

2008-10-14 19:23 225 查看
阿里巴巴

 聚类(Cluster)分析是由若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者是多维空间中的一个点。聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性。
  聚类的用途是很广泛的。在商业上,聚类可以帮助市场分析人员从消费者数据库中区分出不同的消费群体来,并且概括出每一类消费者的消费模式或者说习惯。它作为数据挖掘中的一个模块,可以作为一个单独的工具以发现数据库中分布的一些深层的信息,并且概括出每一类的特点,或者把注意力放在某一个特定的类上以作进一步的分析;并且,聚类分析也可以作为数据挖掘算法中其他分析算法的一个预处理步骤。聚类分析的算法可以分为分裂法(Partitioning Methods)、层次法(Hierarchical Methods)、基于密度的方法(density-based methods)、基于网格的方法(grid-based methods)、基于模型的方法(Model-Based Methods)。
K-MEAN算法;聚类算法

  k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
  k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开

K-MEDOIDS算法
  K-MEANS有其缺点:产生类的大小相差不会很大,对于脏数据很敏感。 改进的算法:k—medoids 方法。这儿选取一个对象叫做mediod来代替上面的中心的作用,这样的一个medoid就标识了这个类。步骤:

  1,任意选取K个对象作为medoids(O1,O2,…Oi…Ok)。

  以下是循环的:

  2,将余下的对象分到各个类中去(根据与medoid最相近的原则);

  3,对于每个类(Oi)中,顺序选取一个Or,计算用Or代替Oi后的消耗—E(Or)。选择E最小的那个Or来代替Oi。这样K个medoids就改变了,下面就再转到2。

  4,这样循环直到K个medoids固定下来。

  这种算法对于脏数据和异常数据不敏感,但计算量显然要比K均值要大,一般只适合小数据量

Clara算法
  上面提到K-medoids算法不适合于大数据量的计算。现在介绍Clara算法,这是一种基于采用的方法,它能够处理大量的数据。
  Clara算法的思想就是用实际数据的抽样来代替整个数据,然后再在这些抽样的数据上利用K-medoids算法得到最佳的medoids。Clara算法从实际数据中抽取多个采样,在每个采样上都用K-medoids算法得到相应的(O1,O2…Oi…Ok),然后在这当中选取E最小的一个作为最终的结果。

Clarans算法
  Clara算法的效率取决于采样的大小,一般不太可能得到最佳的结果。
  在Clara算法的基础上,又提出了Clarans的算法,与Clara算法不同的是:在Clara算法寻找最佳的medoids的过程中,采样都是不变的。而Clarans算法在每一次循环的过程中所采用的采样都是不一样的。与上次课所讲的寻找最佳medoids的过程不同的是,必须人为地来限定循环的次数。

Hadoop开源项目

项目主页:http://hadoop.apache.org
  一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储

Google的集群系统
Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。即使是分布式开发的新手也可以迅速使用Google的基础设施。核心组件是3个:
  1、GFS(Google File System)。一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统API接口。Google根据自己的需求对它进行了特别优化,包括:超大文件的访问,读操作比例远超过写操作,PC机极易发生故障造成节点失效等。GFS把文件分成64MB的块,分布在集群的机器上,使用Linux的文件系统存放。同时每块文件至少有3份以上的冗余。中心是一个Master节点,根据文件索引,找寻文件块。详见Google的工程师发布的GFS论文。
  2、MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。
  3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是一个巨大的表格,用来存储结构化的数据。
  以上三个设施Google均有论文发表。

  这个分布式框架很有创造性,而且有极大的扩展性,使得Google在系统吞吐量上有很大的竞争力。因此Apache基金会用Java实现了一个开源版本,支持Fedora等Linux平台。目前Hadoop受到Yahoo的支持,有Yahoo员工长期工作在项目上,而且Yahoo内部也准备使用Hadoop代替原来的基于FreeBSD的系统。
  Hadoop实现了HDFS文件系统和MapRecue。用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行。
  目前版本是0.18.1。还不成熟,但是已经集群规模已经可以达到4000个节点,是由Yahoo!实验室中构建的。下面是此集群的相关数据:
  • 4000 节点
  • 2 x quad core Xeons@2.5ghz per 节点
  • 4 x 1TB SATA Disk per 节点
  • 8G RAM per 节点
  • 千兆带宽 per 节点
  • 每机架有40个节点
  • 每个机架有4千兆以太网上行链路
  • Redhat Linux AS4 ( Nahant update 5 )
  • Sun Java JDK1.6.0_05 - b13
  • 所以整个集群有30000多个CPU,近16PB的磁盘空间!
  HDFS把节点分成两类:NameNode和DataNode。NameNode是唯一的,程序与之通信,然后从DataNode上存取文件。这些操作是透明的,与普通的文件系统API没有区别。
  MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。

概率基础:

Ω、Φ分别表示必然事件(在一定条件下必然发生的事件)和不可能事件(在一定条件下必然不发生的事件)。

三门问题:在电视台举办的猜隐藏在门后面的汽车的游戏节目中,在参赛者的对面有三扇关闭的门,其中只有一扇门的后面有一辆汽车,其它两扇门后是山羊。游戏规则是,参赛者先选择一扇他认为其后面有汽车的门,但是这扇门仍保持关闭状态,紧接著主持人打开没有被参赛者选择的另外两扇门中后面有山羊的一扇门,这时主持人问参赛者,要不要改变主意,选择另一扇门,以使得赢得汽车的机率更大一些?正确结果是,如果此时参赛者改变主意而选择另一扇关闭著的门,他赢得汽车的机率会增加一倍。

  生日悖论是指,如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。对于60或者更多的人,这种概率要大于99%。从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。计算与此相关的概率被称为生日问题,在这个问题之后的数学理论已被用于设计著名的密码攻击方法:生日攻击。
  不计特殊的年月,如闰二月。先计算房间里所有人的生日都不相同的概率,那么

  第一个人的生日是 365选365

  第二个人的生日是 365选364

  第三个人的生日是 365选363

  :

  :

  :

  第n个人的生日是 365选365-(n-1)

  所以所有人生日都不相同的概率是:

  (365/365)× (364/365) ×(363/365) ×(362/365)× ... ×(365-n+1/365)

  那么,n个人中有至少两个人生日相同的概率就是:

  1-(365/365)× (364/365) ×(363/365) ×(362/365)× ... ×(365-n+1/365)

  所以当n=23的时候,概率为0.507

  当n=100的时候,概率为0.9999996

E(X ) = x1*p1 + x2*p2;

E(x^2) = x1^2*p1|+ x2^2*p2

D(X) = E(x^2) + E(x)^2

国电南瑞:

  木马和病毒的区别,主要体现在两个方面,一个是它的传播性,程序本身自己就可以传播,比如说插一个U盘有病毒,在这种情况下就会把这个病毒程序自动复制到 你的U盘上,这是病毒本身就具备这种能力,但是木马通常不具备这种能力,木马是需要靠欺骗的手法让中木马的人去运行,诱骗你去下载,或者直接干脆给你说欺 骗的工具,我这儿有一个好玩儿的软件,有一些什么功能发给你,木马是不能自动的进行传播,需要利用特殊的途径。

  第二个特点就是隐蔽性,木马的隐蔽性要远比病毒的隐蔽性好很多,因为病毒入侵之后可以很方便的能观察到你机器当中有一些什么样的限制,你能感 觉到你的机器中毒。木马入侵之后,大多数情况下,木马入侵之后普通用户感觉不到任何的异常,不会把你的系统性能变低,我们在前一段时间发现终结者的病毒非 常的多见,我们检查到通过日志的判断,还有收集的信息来看这种病毒非常的猖獗,我们了解到很多普通用户在他的电脑上已经找不出来这种病毒,找出来的木马都 是没有感觉的,杀毒软件不能用了他都感觉不到。所以木马的隐蔽性很好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: