数据分析笔试题|网易2020提前批校招

网易2020提前批校招(来源:牛客网)

11.用户分析是电商数据分析中重要的模块,在对用户特征深度理解和用户需求充分挖掘基础上,进行全生命周期的运营管理(拉新—>活跃—>留存—>价值提升—>忠诚),请尝试回答以下3个问题:

① 用户第一单购买的行为往往反映了用户对平台的信任度和消费能力。现在数据库中有一张用户交易表order,其中有userid(用户ID)、amount(消费金额)、paytime(支付时间),请写出对应的SQL语句,查出每个用户第一单的消费金额。

② 当你发现本月的支付用户数环比上月大幅下跌(超30%),你会如何去探查背后的原因?请描述你的思路和其中涉及的关键指标

③ 为了更好的理解用户,我们通常会基于用户的特征对用户进行分类,便于更加精细化的理解用户,设计产品和运营玩法,请你设计对应的聚类方法,包括重点的用户特征的选择及聚类算法并说明其基本原理和步骤

  1. 我的答案:
select userid, amount 
from order
order by paytime limit 1 
或者是
select userid, amount
from (select userid, amount, min(paytime)
from order
group by userid
)
  1. 我的答案:
    假设该月为4月,上月为3月
    4月支付用户数环比上月大幅下降,不一定说明是4月的整个环节出现问题。因此,我们还应该对比往年4(同比)和本年1-3的用户支付数。
    (1)同比比较时,KPI 主要为:过去3年4月的用户支付数、3月用户支付数,以及衍生指标:4月同比增长率
    如果过去3年该月支付数与上月相比都明显存在大幅下降,并且历年该月支付数存在以一个稳定略有上升的增长率,那么出现该月大幅下降,属于正常现象,推测可能是由于季节变换等环境的影响
    (2)环比比较时,KPI主要为:过去3-6个月的用户支付数
    如果3月用户支付数也明显高于之前几个月,并且4月与之前几个月相比绝对数值稳定、持续的增加或保持不变,则该月出现大幅下降属于正常现象,可能是上月公司做了相关的营销活动
    (3)如果同比、环比比较都显示出今年该月大幅下降属于异常现象,那么我们需从外部、内部等多个角度考虑。
    外部:经济环境的变化,例如出现全国性的疾病;市场是否出现了新崛起的竞争对手
    内部:可以分老顾客、新顾客变化进行分析
    支付用户数=浏览用户数*支付率。浏览用户数下降,具体细分是老用户还是新用户,新用户浏览数下降是因为渠道引流没做好?还是产品调整;老顾客浏览数下降因为最近购买产品不满意?支付率下降,是因为客户流失还是最近会有优惠活动,在等待时机。
    总体思路是从不同维度、人群进行细分,从而可以落实到具体的指标进行分析。
  2. 我的答案
    用户特征:购买产品大类、购买产品风格、消费金额、一个月内消费次数
    聚类算法:K-means聚类
    思想:类内距离尽可能小,类间距离可能大
    步骤:
    (1)首先根据经验确定K的大小,随机选择K个点作为K个类别的初始化中心
    (2)计算每个点到K类中心的距离,将每个点划分到距离较近的组
    (3)重新计算各类中心,并重复(2),知道每个点不再发生变化

12.网易严选是网易旗下原创生活类自营电商品牌,深度贯彻“好的生活,没那么贵”的品牌理念。商品覆盖居家、餐厨、配件、服装、洗护、母婴、原生态饮食等几大类目,兼具品质和性价比,得到用户的广泛好评。若你是网易严选负责商品的数据分析师,当面对以下业务问题时,你会如何解决?

① 用户增长团队期望选择一批合适的商品用于吸引新客,期望你帮助从数据的角度筛选出一批合适的商品,你会如何帮助他们进行筛选?请描述你的思路。

② 商品研发负责人期望能有一套指标帮助衡量开发的商品表现,请你帮助设计对应的评估方案,包括设计思路、涉及的数据指标等。

(1)首先定位发展方向,是发展现有产品还是进行新产品的拓宽。可以通过用户调研,调查目前用户选择网易严选平台的原因,是因为专注于一个方向,还是因为性价比高,如果核心用户选择专注于一个方向,则更应该选择发展现有产品,否则可以考虑拓宽产品类型。
(2)确定方向后,确定具体产品,需要考虑用户的消费能力,选择品牌等。通过调研用户选择其他平台而不选择网易严选的原因,调查产品类别是否存在不足。确定产品类别后,还需考虑用户的消费能力,可根据消费者过往消费记录或调研将用户大致分为高水平消费者、中等水平消费者、低水平消费者三类,从而选择相应价位的产品
(3) 确定大致价格后,还需要调研什么产品对于消费者性价比高。
2.
(1)初期,可进行定性调查,考虑小范围用户体验的调研,KPI可以考虑用户一个月内使用次数等。chan从用户日常的使用过程中,衡量商品开发效果。例如,对于新买的家具,用户是否需要晾晒一段时间或者栽种盆栽来去除气味;针对同一款产品的不同颜色,用户是否具有偏好等。
(2)推广期,可进行定量调查,并和同类产品进行比较。
KPI: 该产品和同类产品一个月的浏览次数、点击次数、购买次数、各类评价的数量,以及衍生指标。购买率 = 购买次数/总浏览次数,点击率=点击次数/浏览次数,好评率=好评数量/评价数量,差评率=差评数量/总评价数量等。
该产品浏览次数较低,可能是因为推广度不够;浏览次数高,点击次数、点击率较低则说明该产品开发没有解决用户最急迫的需求,不能吸引用户;好评率低,则说明该产品存在问题等。

  1. 小易在维护数据的时候遇到一个需求,具体来说小易有一系列数据,这些数据了构成一个长度为n的数字序列,接下来小易会在这个序列上进行q次操作。
    每次操作有一个查询的数字x,小易需要将序列数据中所有大于等于x的数字都减一,并输出在本次操作中有多少个数字被减一了。
    小易犯了难,希望你能帮帮他。
    参考答案思路:
    将原始序列、输入序列分别存放一个list,然后一对一比较
n,q=map(int,input().split())
num=list(map(int,input().split()))
list2=[]
for i in range(q):
    x = int(input())
    list2.append(x)
#print(list2)
#list2 是验证数 num是初始数  
#print(type(num))
for i in range(q):
    count=0
    for j in range(n):
        #print(num[j],list2[i])
        if num[j]>=list2[i]:
            num[j]-=1
            count+=1
    print(count)
         

14.小易学习了辗转相除法之后,就开始实践这个算法在求解最大公约数上。
牛牛给小易出了一道不同寻常的求解最大公约数: 求解a和b的最大公约数,但是a和b的范围特别大。
小易遇到了困难,向聪明的你寻求帮助,希望你能帮帮他。

我的答案:
思路:辗转相除法,两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数
#直到其中一个数为0

def fun(a,b):
    x=max(a,b)
    y=min(a,b)
    if x%y == 0:
        return y
    else:
        return fun(y,x%y)
a=int(input())
b=int(input())
#print(type(a)),没有int时,a的类型为字符串型
print(fun(a,b))

15.小易有一个初始为空的数字集合,支持两种操作:
1、加入数字x到集合中。
2、询问集合中是否存在一个子集,满足子集中所有数字的Or值恰好为k。
Or为二进制按位或操作,C++中表示为"|"。
小易希望你能解决这个问题。

我的答案:

list=[]
def fun(x,y):  
    if x == 1:
        list.append(y)
    else:
        if y in list:
            print('YES')
        else:
            print('NO')        
q=int(input())
for i in range(q):
    x,y=map(int,input().split())
    #print(x)
    #print(type(x))
    fun(x,y)

16.小易给定了一个长度为n的数字序列,对于每一个,小易希望能求解出所有长度为k的连续子序列的最大值中的最小值。
我的答案:
思路:确定需要比较几个数-在确定比较组数

n=int(input())
num=list(map(int,input().split()))#转化为List

result=[]
for i in range(1,n+1):#确定几个数比较
    max_list=[]
    for j in range(n-i+1):#当有i个数比较时,比较的组数有n-i+1
        #print(j)
        max_list.append(max(num[j:j+i]))#确定比较的范围
    result.append(min(max_list))#找到i位置最大值里的最小值
#print(result) 此时输出的result为list
print(' '.join(map(str,result)))#join只能连接字符串,''表示用空格连接
    

你可能感兴趣的:(春招暑假实习)