【秋招】拼多多_数据分析岗_面试题整理

1. 贝叶斯公式复述并解释应用场景

1)P(A|B) = P(B|A)*P(A) / P(B)

2)如搜索query纠错,设A为正确的词,B为输入的词,那么:

a. P(A|B)表示输入词B实际为A的概率

b. P(B|A)表示词A错输为B的概率,可以根据AB的相似度计算(如编辑距离)

c. P(A)是词A出现的频率,统计获得

d. P(B)对于所有候选的A都一样,所以可以省去

2. 如何写SQL求出中位数平均数和众数(除了用count之外的方法)

1)中位数:

方案1(没考虑到偶数个数的情况):

declare @m int

set @m = (select count(*)/2 from table)

select column from table order by column limit @m, 1

方案2(考虑偶数个数,中位数是中间两个数的平均):

declare @index int

set @index = -1

select avg(table.column)

from

(select @index=@index+1 as index, column

from table order by column) as t

where t.index in (floor(@index/2),ceilling(@index/2))

2)平均数:select avg(distince column) from table

3)众数:select column, count(*) from table group by column order by column desc limit 1(emmm,好像用到count了)

3. 学过的机器学习算法有哪些

略。

4. 如何避免决策树过拟合

1)限制树深

2)剪枝

3)限制叶节点数量

3)正则化项

4)增加数据

5)bagging(subsample、subfeature、低维空间投影)

6)数据增强(加入有杂质的数据)

7)早停

5. 朴素贝叶斯的理解

1)推导(参考:https://www.cnblogs.com/pinard/p/6069267.html

2)理解:朴素贝叶斯是在已知一些先验概率的情况下,由果索因的一种方法

3)其它:朴素的意思是假设了事件相互独立

6. SVM的优点

1)优点:

a. 能应用于非线性可分的情况

b. 最后分类时由支持向量决定,复杂度取决于支持向量的数目而不是样本空间的维度,避免了维度灾难

c. 具有鲁棒性:因为只使用少量支持向量,抓住关键样本,剔除冗余样本

d. 高维低样本下性能好,如文本分类

2)缺点:

a. 模型训练复杂度高

b. 难以适应多分类问题

c. 核函数选择没有较好的方法论

7. Kmeans的原理

1)初始化k个点

2)根据距离点归入k个类中

3)更新k个类的类中心

4)重复(2)(3),直到收敛或达到迭代次数

8. 对拼多多有什么了解,为什么选择拼多多

略。

9. 口答两个SQL题(一个跟留存率相关,一个要用到row number)

1)留存率:略

2)mysql中设置row number:

SET @row_number = 0;SELECT (@row_number:=@row_number + 1) AS numFROM table

10. 业务场景题,如何分析次日留存率下降的问题

业务问题关键是问对问题,然后才是拆解问题去解决。

1)两层模型:从用户画像、渠道、产品、行为环节等角度细分,明确到底是哪里的次日留存率下降了

2)指标拆解:次日留存率 = Σ 次日留存数 / 今日获客人数

3)原因分析:

1)内部:

a. 运营活动

b. 产品变动

c. 技术故障

d. 设计漏洞(如产生可以撸羊毛的设计)

2)外部:

a. 竞品

b. 用户偏好

c. 节假日

d. 社会事件(如产生舆论)

11. 处理需求时的一般思路是什么,并举例

1)明确需求,需求方的目的是什么

2)拆解任务

3)指定可执行方案

4)推进

5)验收

12. 为什么选择拼多多

略。

13. 用过拼多多下单没,感受如何

略。

14. 可以接受单休和加班么

略。

15. 为啥要选数据分析方向(我简历上写的是数据挖掘工程师。。。)

略。

16. 开始聊项目,深究项目,我研究生阶段的方向比较偏,所以面试的三分之二时间都是在给他讲项目,好在最后他终于听懂了,thx god、、、

略。

17. hadoop原理和mapreduce原理

1)Hadoop原理:采用HDFS分布式存储文件,MapReduce分解计算,其它先略

2)MapReduce原理:

a. map阶段:读取HDFS中的文件,解析成<k,v>的形式,并对<k,v>进行分区(默认一个区),将相同k的value放在一个集合中

b. reduce阶段:将map的输出copy到不同的reduce节点上,节点对map的输出进行合并、排序

(参考:https://www.cnblogs.com/ahu-lichang/p/6645074.html

18. 还有啥问题要问的?于是我出于本能的问了一句“为啥不写代码!” 然后面试官说“时间不够了。。。。”

略。

19.

现有一个数据库表Tourists,记录了某个景点7月份每天来访游客的数量如下:id date visits1 2017-07-01 100……非常巧,id字段刚好等于日期里面的几号。现在请筛选出连续三天都有大于100天的日期。上面例子的输出为:date2017-07-01……

解:

select t1.date

from Tourists as t1, Tourists as t2, Tourists as t3

on t1.id = (t2.id+1) and t2.id = (t3.id+1)

where t1.visits >100 and t2.visits>100 and t3.visits>100

20.

在一张工资表salary里面,发现2017-07这个月的性别字段男m和女f写反了,请用一个Updae语句修复数据例如表格数据是:id name gender salary month1 A m 1000 2017-062 B f 1010 2017-06

解:

update salary

set gender = replace('mf', gender, '')

21.

现有A表,有21个列,第一列id,剩余列为特征字段,列名从d1-d20,共10W条数据!另外一个表B称为模式表,和A表结构一样,共5W条数据请找到A表中的特征符合B表中模式的数据,并记录下相对应的id有两种情况满足要求:1 每个特征列都完全匹配的情况下。2 最多有一个特征列不匹配,其他19个特征列都完全匹配,但哪个列不匹配未知

解:(这题不懂怎么解)

select A.id,

((case A.d1 when B.d1 then 1 else 0) +

(case A.d2 when B.d2 then 1 else 0) +

...) as count_match

from A left join B

on A.d1 = B.d1

22.

我们把用户对商品的评分用稀疏向量表示,保存在数据库表t里面:t的字段有:uid,goods_id,staruid是用户id;goodsid是商品id;star是用户对该商品的评分,值为1-5。现在我们想要计算向量两两之间的内积,内积在这里的语义为:对于两个不同的用户,如果他们都对同样的一批商品打了分,那么对于这里面的每个人的分数乘起来,并对这些乘积求和。例子,数据库表里有以下的数据:U0 g0 2U0 g1 4U1 g0 3U1 g1 1计算后的结果为:U0 U1 2*3+4*1=10……

解:

select uid1, uid2, sum(result) as dot

from

(select t1.uid as uid1, t2.uid as uid2, t1.goods_id, t1.star*t2.star as result

from t as t1, t as t2

on t1.goods_id = t2.goods_id) as t

group by goods_id

23.

微信取消关注分析,题目太长了,没记录

略。

猜你喜欢

转载自blog.csdn.net/u013382288/article/details/80450360