转自:http://saslist.com/wrchow/2011/05/14/%E7%99%BE%E5%BA%A6%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98%E7%A0%94%E5%8F%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%AE%9E%E4%B9%A0%E7%AC%94%E8%AF%95%E9%9D%A2%E8%AF%95/
笔试题:
一、简答题30分
1. extern”C”{}的作用和应用场景;
2.写出两者你熟悉的设计模式,及应用场景,可以给出伪代码;
3.TCP中time_wait是表示那种状态,及应用场景,以及起好处和坏处;
二、算法题40分
1. 有一个任务执行机,任务数N<1000,该机器每次只能执行一个任务,而任务之间存在依赖关系,
但是任务之间没有循环依赖,请给出适当的任务执行顺序。算法、伪代码,并分析其时间复杂度和
空间复杂度。
2. 编写函数,统计在某段英文文本中完整句子的数目,文本中只包括大小写字母,空格,点好(.),逗号(,)。
完整的句子必须包含至少一个字母并以点号,结束。
要求:完整的代码,达到目标;高效;简洁;
三、系统架构30分
有一个监控系统,有大量的数据记录包括{url,用户访问ip,时间},要对这个监控系统进行维护,并提供查询。
设计一个能存储和维护1000亿条记录,实时监控,并支持一下两种查询:
1. 指定任意一个时间段(精确到分钟)和某个url,查处这个时间段内的所有url的访问总量。
2. 指定任意一个时间段(精确到分钟)和某个ip,查询这个时间段内的ip访问总量。
面试一
1.自我介绍;结合自己的简历简单地介绍一下。
2.项目介绍;结合自己做主要的项目,以及带的项目介绍资料,互动式地讲解;面试官关系的是机器学习相关的问题。
3.算法题;二叉树的非递归实现前序遍历;
4. 算法设计题;如何去掉重复页面;
面试二
1. 自我介绍;(同上)
2. 项目介绍;(同上)
3. 算法题;(略)问到了一个TTest;
4. 算法设计题;如何对Query进行分类;
面试三
1. 自我介绍;
2. 项目介绍;
3. 算法题两道;
1>一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。并分析时间复杂度与空间复杂度。
2>从1到1亿,所有出现的数字的和(125=1+2+5),手工计算机出来;
我的感受:
1.是对这次实习招聘,并无准备,笔试能通过已经很意外了;
2.自己的算法题的解答能力有待提高,面试的时候遇到的题目其实都很常见,估计在网上多看看就都能答得很好了;
3.百度笔试+三面的流程,大致和网上讲的差不多,前二次面试是类似的,三面可能是补充,并且往往会问道一些你职业规划上的一些问题;
一、异常值是指什么?请列举1种识别连续型变量异常值的方法?
异常值(Outlier) 是指样本中的个别值,其数值明显偏离所属样本的其余观测值。在数理统计里一般是指一组观测值中与平均值的偏差超过两倍标准差的测定值。
Grubbs’ test(是以Frank E. Grubbs命名的),又叫maximum normed residual test,是一种用于单变量数据集异常值识别的统计检测,它假定数据集来自正态分布的总体。
未知总体标准差σ,在五种检验法中,优劣次序为:t检验法、格拉布斯检验法、峰度检验法、狄克逊检验法、偏度检验法。
二、什么是聚类分析?聚类算法有哪几种?请选择一种详细描述其计算原理和步骤。
聚类分析(cluster analysis)是一组将研究对象分为相对同质的群组(clusters)的统计分析技术。 聚类分析也叫分类分析(classification analysis)或数值分类(numerical taxonomy)。聚类与分类的不同在于,聚类所要求划分的类是未知的。
聚类分析计算方法主要有: 层次的方法(hierarchical method)、划分方法(partitioning method)、基于密度的方法(density-based method)、基于网格的方法(grid-based method)、基于模型的方法(model-based method)等。其中,前两种算法是利用统计学定义的距离进行度量。
k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然 后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
其流程如下:
(1)从 n个数据对象任意选择 k 个对象作为初始聚类中心;
(2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
(3)重新计算每个(有变化)聚类的均值(中心对象);
(4)循环(2)、(3)直到每个聚类不再发生变化为止(标准测量函数收敛)。
优点:本算法确定的K 个划分到达平方误差最小。当聚类是密集的,且类与类之间区别明显时,效果较好。对于处理大数据集,这个算法是相对可伸缩和高效的,计算的复杂度为O(NKt),其中N是数据对象的数目,t是迭代的次数。一般来说,K<<N,t<<N 。
缺点:1. K 是事先给定的,但非常难以选定;2. 初始聚类中心的选择对聚类结果有较大的影响。
三、根据要求写出SQL
表A结构如下:
Member_ID (用户的ID,字符型)
Log_time (用户访问页面时间,日期型(只有一天的数据))
URL (访问的页面地址,字符型)
要求:提取出每个用户访问的第一个URL(按时间最早),形成一个新表(新表名为B,表结构和表A一致)
create table B as select Member_ID, min(Log_time), URL from A group byMember_ID ;
四、销售数据分析
以下是一家B2C电子商务网站的一周销售数据,该网站主要用户群是办公室女性,销售额主要集中在5种产品上,如果你是这家公司的分析师,
a) 从数据中,你看到了什么问题?你觉得背后的原因是什么?
b) 如果你的老板要求你提出一个运营改进计划,你会怎么做?
表如下:一组每天某网站的销售数据
a) 从这一周的数据可以看出,周末的销售额明显偏低。这其中的原因,可以从两个角度来看:站在消费者的角度,周末可能不用上班,因而也没有购买该产品的欲望;站在产品的角度来看,该产品不能在周末的时候引起消费者足够的注意力。
b) 针对该问题背后的两方面原因,我的运营改进计划也分两方面:一是,针对消费者周末没有购买欲望的心理,进行引导提醒消费者周末就应该准备好该产品;二是,通过该产品的一些类似于打折促销等活动来提升该产品在周末的人气和购买力。
五、用户调研
某公司针对A、B、C三类客户,提出了一种统一的改进计划,用于提升客户的周消费次数,需要你来制定一个事前试验方案,来支持决策,请你思考下列问题:
a) 试验需要为决策提供什么样的信息?
c) 按照上述目的,请写出你的数据抽样方法、需要采集的数据指标项,以及你选择的统计方法。
a) 试验要能证明该改进计划能显著提升A、B、C三类客户的周消费次数。
b) 根据三类客户的数量,采用分层比例抽样;
需要采集的数据指标项有:客户类别,改进计划前周消费次数,改进计划后周消费次数;
选用统计方法为:分别针对A、B、C三类客户,进行改进前和后的周消费次数的,两独立样本T-检验(two-sample t-test)。
这是今年3月份阿里招聘数据分析师实习生的笔试试题,答案仅供参考!�Cby wr-chow