2021暑期实习面试准备

常见面试题:
https://www.nowcoder.com/discuss/33737

机器学习相关常见问题:
https://www.nowcoder.com/ta/review-ml

万字详解整个数据仓库设计体系:
https://blog.nowcoder.net/n/b2ed80c6387449f09ed06950512fa894

各种常见机器学习算法的简洁实现
https://github.com/rushter/MLAlgorithms

数据前置条件(采集、存储、治理、
https://blog.csdn.net/weixin_41794169/article/details/106996624

智力题汇总:
https://blog.csdn.net/weixin_41888257/article/details/108638866

行测题

一、图形规律题

1.对称图形:轴对称,中心对称,轴+中心对称
轴的数量、方向
等腰,五角星更喜欢考察轴的数量
轴与图形内部线、面、点的关系
图形整体不对称且由两到三个封闭对称小图形组成,关注小图形对称轴的夹角
黑白块,数个数,个数相同看位置,个数不同先看黑白运算再看整体对称性

二、逻辑推理

逻辑论证:
加强题型:赞同。搭桥、解释举例、必要条件
削弱题型:反对。否定论点、拆桥、削弱论据
解题思维:看提问 - 找论点、论据 - 预设 - 看选项,正向思维选不出答案时可以利用错误选项思维排除。
1.较明显的选项陷进:
(1)主题不一致
(2)话题不一致,副作用为易错项
2.较难识别的选项陷阱:
(1)明文规定、道听途说的选项 -- 一般都是无关项,即使是“法律规定...”,并不等同于实际

数据库

Myisam和InnoDB的区别:

myisam:性能极佳,但是不支持事务和行级锁,崩溃后无法安全恢复
所以:执行非常快速的读取操作,如果读写比例(插入|更新)小于15%,则最好使用MyISAM;
innodb:(事务性数据库引擎),大多数情况下使用的引擎,不支持全文索引
所以:要求事务和行级锁,要求全文索引时使用,提交,回滚和崩溃恢复功能来保护用户数据,支持事务和容错

常见SQL题 - 业务类

https://zhuanlan.zhihu.com/p/361870962

1.where & having**

Where是一个约束声明,是在查询结果集返回之前约束来自数据库的数据,且Where中不能使用聚合函数
Having是一个过滤声明,是在查询结果集返回以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。HAVING语句通常(亲自验证,不是必须!)与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集;HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。

2.rank(),row_number(),dense_rank()

(1)rank()函数:此排序方法进行排序时,相同的排序是一样的,而且下一个不同值是跳着排序的。
(2)row_number()函数:此方法不管排名是否有相同的,都按照顺序1,2,3…..n
(3)dense_rank()函数:此方法对于排名相同的名次一样,且后面名次不跳跃
区别

3.数据倾斜问题:

前面提到分布式计算,是一个集群共同承担计算任务,理想状态下,每个计算节点应该承担相近数据量的计算任务,然而实际情况通常不会这么理想,数据分配严重不均就会产生数据倾斜。我们先来给数据倾斜下个明确点的定义。
数据倾斜,指的是并行处理的过程中,某些分区或节点处理的数据,显著高于其他分区或节点,导致这部分的数据处理任务比其他任务要大很多,从而成为这个阶段执行最慢的部分,进而成为整个作业执行的瓶颈,甚至直接导致作业失败。
map,join,reduce三端倾斜时的处理方法??
HiveSql调优经验:https://www.cnblogs.com/duanxingxing/p/6874318.html
数据倾斜:https://blog.csdn.net/zgaoq/article/details/103148513?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs

4.Hadoop解决数据倾斜方法

  • 1)提前在map进行combine,减少传输的数据量
    在Mapper加上combiner相当于提前进行reduce,即把一个Mapper中的相同key进行了聚合,减少shuffle过程中传输的数据量,以及Reducer端的计算量。
    如果导致数据倾斜的key大量分布在不同的mapper的时候,这种方法就不是很有效了。

  • 2)导致数据倾斜的key 大量分布在不同的mapper

(1)局部聚合加全局聚合
第一次在map阶段对那些导致了数据倾斜的key 加上1到n的随机前缀,这样本来相同的key 也会被分到多个Reducer中进行局部聚合,数量就会大大降低。
第二次mapreduce,去掉key的随机前缀,进行全局聚合。
思想:二次mr,第一次将key随机散列到不同reducer进行处理达到负载均衡目的。第二次再根据去掉key的随机前缀,按原key进行reduce处理。
这个方法进行两次mapreduce,性能稍差。

(2)增加Reducer,提升并行度
JobConf.setNumReduceTasks(int)

(3)实现自定义分区
根据数据分布情况,自定义散列函数,将key均匀分配到不同Reducer

4.行转列

case when + group by

5.Hive Hbase等区别

https://blog.csdn.net/wshyb0314/article/details/81475475

5.1 spark

6.数仓分层

7.常用函数

  • datediff(date1, date2) 返回结束日期减去开始日期的天数

  • date_sub(date, intdays) 返回date减少days后的日期

  • date_add(date, intdays) 返回date增加days后的日期

  • CONCAT_WS(sep, str1, str2, str3)
    将每个参数值和第一个参数sep指定的分隔符依次连接到一起组成新的字符串,长度和类型取决于输入值。
    说明:如果sep取值为null,则将sep视作与空串进行拼接。如果其它参数为NULL,在执行拼接过程中跳过取值为NULL的参数。

  • later view explode

    select   city_id 
           ,collect_set(id) 
    from   (
      select  id
              ,city_id
      from    dataset
      lateral view explode(split(co_city_id, ',')) city as city_id
      where   dt = '$[YYYY-MM-DD - 1D]'  
      group by  id, city_id
    )
    group by  city_id  
  • COALESCE ( expression,value1,value2……,valueN) :主要用来进行空值处理
    COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。
    COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。
    逻辑:
    如果expression不为空值则返回expression;否则判断value1是否是空值,
    如果value1不为空值则返回value1;否则判断value2是否是空值,
    如果value2不为空值则返回value2;……以此类推,
    如果所有的表达式都为空值,则返回NULL。

8.窗口函数的实现原理:

新名词:partitioned table function (PTF)
https://zhuanlan.zhihu.com/p/126230668
步骤:
(1)计算除窗口函数以外所有的其他运算,如:group by,join ,having等。
(2)将第一步的输出作为第一个 PTF 的输入,计算对应的窗口函数值。
注:partitioned by 后边的字段为“窗口”,若同时使用了多个窗口函数,且窗口字段相同,那么会在同一个shuffle中完成
(3)如本次查询还包含其他窗口,那么继续:将第二步的输出作为 第二个PTF 的输入,计算对应的窗口函数值。
图片说明

9.shuffle详解

Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。
Reduce的数据来源于Map,Map的输出即是Reduce的输入,Reduce需要通过Shuffle来获取数据。
从Map输出到Reduce输入的整个过程可以广义地称为Shuffle:Shuffle横跨Map端和Reduce端,在Map端包括Spill过程,在Reduce端包括copy和sort过程
图片说明
https://blog.csdn.net/kaede1209/article/details/81953262?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&dist_request_id=1329187.12886.16178890834880637&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control

10.MySQL索引

https://mp.weixin.qq.com/s/Zz5FrAdCL4wcDZ5W2Qgz9w
索引本质:帮助MySQL高效获取数据的排好序的数据结构(二叉树、红黑树、Hash表、B-tree)

  • 红黑树:二叉平衡树,按照左小右大排列二叉树,但在加入一个数后会做调整,让树分布更均匀。但是数据量大时,查找叶子节点数据时仍运算较慢。
  • B-tree:限制树的深度,宽度变宽
    图片说明
  • B+树

11.数据库优化

https://www.zhihu.com/search?type=content&q=%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BC%98%E5%8C%96
图片说明

面试常考1:https://www.nowcoder.com/discuss/637486?type=0&order=7&pos=225&page=1&source_id=discuss_center_0_nctrack&channel=1009
常考2:https://blog.nowcoder.net/n/296d3fbc1ed74d7b85dafee924650eac

12.exists和in的区别

exists和in用于子查询

  • 内外表顺序:使用exists时会先进行外表查询,将查询到的每行数据带入到内表查询中看是否满足条件;使用in一般会先进行内表查询获取结果集,然后对外表查询匹配结果集返回数据。
  • 索引:in在内表查询或外表查询过程中都会用到索引;exists仅在内表查询过程中使用到索引。
  • 适用:当子查询结果集较小,外表较大时,使用in效率更高;当外表较小时,使用exists效率更高。
  • not exists 效率高于 not in:与子查询的结果集无关,not in对内外表都进行了全表扫描,没有用到索引;not exists子查询中用到了表上的索引。

Python

请说明一下python中is和==的区别

is是用来判断两个变量引用的对象是否为同一个,比较的是id,==用于判断引用对象的值是否相等。可以通过id()函数查看引用对象的地址。

统计学基础

1.分布

Z分布和T分布:
图片说明
1.1 指数分布
指数分布通常用来表示随机事件发生的时间间隔,如旅客进机场的时间间隔、电子产品的寿命分布等
指数分布的特征:无记忆性。比如灯泡的使用寿命服从指数分布,无论它已经使用了多长时间,假设为s,只要还没有损坏,它能再使用一段时间t的概率与一件新产品使用时间t的概率是一样的。这个证明过程简单表示:
P(s+t|s) = P(s+t,s)/P(s) = F(s+t)/F(s)=P(t)

1.2 卡方检验
卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。

注意:卡方检验针对分类变量。

图片说明

1.3 F检验
F检验是检验两个正态分布的样本的方差是否存在显著差异
也可以用于对多组样本之间比较
计量中,F检验原假设所有自变量对因变量都没有影响,排除原假设说明至少有一个自变量对因变量有影响

1.4负二项分布
假设有一组独立的伯努利数列,每次实验有两种结果“成功”和“失败”。每次实验的成功概率是p,失败的概率是1-p。我们得到一组数列,当预定的“非成功”次数达到r次,那么结果为“成功”的随机次数会服从负二项分布:
X~NB(r;P)
参数为(r, p)的负二项分布的数列k+r的期望和方差是:图片说明
负二项分布的概率密度函数为:图片说明

2.概率和似然
概率:已知模型参数,推测实验结果。(已知硬币是标准的,那么正面朝上概率为0.5)。
概率函数:P(x|theta) ,theta为模型参数已知,x为实验结果未知。
似然:已知实验结果,推测模型参数。(已知正面朝上次数基本占比50%,那么推测硬币是标准的)。
似然函数:P(x|theta) ,x为实验结果已知,theta为模型参数(待估计)未知。

3.标准化(归一化)
三种常用归一化方法:
(1)min-max归一化(规范化方法)
图片说明
(2)z-score归一化(正规化方法)
图片说明
(3)比例归一化(归一化方法):针对全部数据为正值的序列。
图片说明

归一化的优点:
(1)提升模型的收敛速度
主要体现在优化环节,假设只有两个特征,在二维空间中如左图所示,是一个窄长的椭圆形,在梯度下降时,梯度的方向是垂直等高线的方向走之字,这样会迭代很慢;归一化处理之后,两个维度的值都在【0,1】之间,是一个比较正的圆,沿着负梯度方向优化时先不论步长,在方向上总是对的,迭代起来会快很多。

归一化的优势

(2)提升模型精度:在涉及距离计算的算法中,消除量纲和数量级的影响
(3)深度学习中数据归一化可以防止模型梯度爆炸

机器学习

evaluation metrics

混淆矩阵
图片说明

ROC/AUC/recall/precision详解
1.https://blog.csdn.net/weixin_42111770/article/details/81015809?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-8&spm=1001.2101.3001.4242
2.https://www.zhihu.com/question/39840928
AUC是指 随机给定一个正样本和一个负样本,分类器输出该正样本为正的那个概率值 比 分类器输出该负样本为正的那个概率值 要大的可能性

精度、召回率:
或者我们也可以从另一个角度考虑:条件概率。我们假设X为预测值,Y为真实值。那么就可以将这些指标按条件概率表示:
精准率 = P(Y=1 | X=1)
召回率 = 灵敏度 = P(X=1 | Y=1)

P-R曲线、ROC曲线:通过遍历所有阈值来绘制整条曲线的

图片说明

图片说明

微众银行笔试题:将分类算法的阈值由0.5提高,精度、召回率的变化:注:没有找到答案,以下为自己的分析
阈值提高,精度上升或不变,召回率下降或不变
原因:阈值提高,预测为1的样本量减少,召回率针对实际样本而言,为正确判断的正实例占总体正实例的比例,分母为样本中正实例的数量,由于阈值的提高,被预测为正的样本量减少,其中被正确预测为正的样本量有可能降低(当小于调整后的阈值时),有可能不变(正实例值比较大时);而精度是针对预测结果而言,为所有预测为正的样本中真正正实例的比例,预测为正的样本就随阈值提高而减少,分母减小,分子可能减小或不变;准确率为所有判定正确 (包括真正、真负)占所有样本的比例?

模型验证

验证策略
K折交叉验证步骤:

流程图:
K折交叉验证流程图
对数据集进行shuffle打乱顺序;
将数据分成K折。K=5或10适用于大多数情况;
保留一折用于验证,使用剩下的其它折数据进行模型的训练;
在训练集合上训练模型,在验证集上评估模型,并记录该Fold的结果;
现在对所有其它的Fold重复该过程,每次选择单折作为验证的数据集;
对于每一次迭代,我们的模型都会在不同的数据集上进行训练和测试;
最后我们将每一次的分数相加,采用最终的平均分作为我们的验证结果;

示例:
示例

分层K折交叉验证:
使每折中都可以有更准确的数据分布,分层K折叠在分类问题中更有用,在分类问题中,每折中具有相同百分比的标签非常重要。
在回归问题的情况下:我们选择折,使每折中的平均值大致相等;
在分类问题的情况下,每折被选择具有相同比例的分类标签。
分层K折交叉验证

GBD、XGB和LGB对比

LGB:https://mp.weixin.qq.com/s/dQpCxjfqIij9IpP2UgnBUQ
图片说明

GBDT树分裂方式:gini指数,越小,判别性越强
XGBoost、LightGBM树分裂方式:在每个节点处寻找最小化loss的分割点

1.GBDT、XGB差别:
(1)算法层面:
1)XGBoost中的导数引入了二阶导数部分(二阶泰勒展开),二阶的近似使模型能更好更快地近似我们的模型损失函数
2)XGBoost正则项的改进:不仅对于树中的叶子节点的个数进行控制,与此同时还对每个叶子节点的分数加入正则,帮助模型更好地防止过拟合。

(2)工程层面:XGBoost中Extreme部分指的更多的还是系统设计层面的
1)用于并行计算的列模块;
2)Cache-aware Access;
3)内存外的计算;

(3)XGB的优势
1)行(样本)采样,列(特征)采样 (降低方差)
2)Early stopping,Shrinkage(学习率)的设置,这些可以用来防止过拟合.
3)缺失值的处理

2.XGB、LGB差别:
https://www.pianshen.com/article/47671532280/
https://zhuanlan.zhihu.com/p/72247243
  1、xgboost采用的是level-wise的分裂策略,而lightGBM采用了leaf-wise的策略,区别是xgboost对每一层所有节点做无差别分裂,可能有些节点的增益非常小,对结果影响不大,但是xgboost也进行了分裂,带来了务必要的开销。
leaft-wise的做法是在当前所有叶子节点中选择分裂收益最大的节点进行分裂,如此递归进行,很明显leaf-wise这种做法容易过拟合,因为容易陷入比较高的深度中,因此需要对最大深度做限制,从而避免过拟合。

  2、lightgbm使用了基于histogram的决策树算法,这一点不同与xgboost中的 exact
算法,histogram算法在内存和计算代价上都有不小优势。
  (1)内存上优势:很明显,直方图算法的内存消耗为(#data* #features * 1Bytes)(因为对特征分桶后只需保存特征离散化之后的值),而xgboost的exact算法内存消耗为:(2 * #data * #features* 4Bytes),因为xgboost既要保存原始feature的值,也要保存这个值的顺序索引,这些值需要32位的浮点数来保存。
  (2)计算上的优势,预排序算法在选择好分裂特征计算分裂收益时需要遍历所有样本的特征值,时间为(#data),而直方图算法只需要遍历桶就行了,时间为(#bin)

  3、直方图做差加速
一个子节点的直方图可以通过父节点的直方图减去兄弟节点的直方图得到,从而加速计算。

  4、lightgbm支持直接输入categorical 的feature
在对离散特征分裂时,每个取值都当作一个桶,分裂时的增益算的是”是否属于某个category“的gain。类似于one-hot编码。

XGB特征重要性:
weight: 该特征被选为分裂特征的次数.
gain: 该特征的带来平均增益(有多棵树)、作为划分属性时loss平均的降低量
cover: 该特征对每棵树的覆盖率、作为划分属性时对样本的覆盖度
LGB特征重要性:
split: 使用该特征的次数.
gain: 该特征的总增益.
参考:https://www.jianshu.com/p/2110409fbc24

特征选择的方法
1.过滤器法(filter):指定指标并基于此过滤特征,相关/卡方
2.包装法(wrapper):将特征选择视为搜索问题,特征组合起来进行筛选,递归特征消除方法
3.嵌入式:将特征选择方法嵌入算法中,Lasso/RF输出特征重要性进行筛选

xgb调参
https://zhuanlan.zhihu.com/p/95304498

** gbdt / rf区别 **

logistic / 线性回归差别
求解算法:

  • logistic - 极大似然估计,以对数似然函数为目标函数的最优化问题,通常采用梯度下降法及拟牛顿法。(迭代算法求解)
  • 线性回归:最小二乘估计
  • SVM支持向量机:求解凸二次规划的最优化算法,具有全局最优解,有许多优化算法用于该问题的求解,比如序列最小最优化(SMO)
  • 朴素贝叶斯的参数估计:极大似然估计

生成模型 / 判别模型

  • 生成模型:由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测模型,模型给定了输入X产生输出Y的生成关系。朴素贝叶斯、隐马尔可夫。
    (1)能还原联合概率分布
    (2)学习收敛速度更快,样本量增加时更快收敛于真实模型
    (3)存在隐变量时仍可以用生成方法学习
  • 判别模型:由数据直接学习决策函数f(X)或条件概率分布P(Y|X)作为预测的模型,关心对于给定的X应该预测什么样的输出Y。K近邻、感知机、决策树、逻辑斯蒂回归、最大熵、SVM、提升方法、条件随机场等
    (1)直接学习,直接面对预测,学习准确率高
    (2)直接学习,可以对数据进行抽象、定义特征、使用特征,可以简化学习问题

*树模型

  • 信息增益(ID3):得知特征X的信息而使类Y的信息的不确定性减少的程度,熵和条件熵之差(互信息),选择信息增益最大的特征。ID3算法只有树的生成,所以该算法生成的树容易产生过拟合。
  • 信息增益比(C4.5):选择信息增益比最大的特征
  • 基尼系数(CART):选择基尼系数最小的特征(基尼指数越大,样本集合的不确定性越大)
    注:CART 回归树 - 平方误差最小化准则; 分类树 - 基尼指数最小化准则

互联网常见指标

DAU(Daily Active User):日活跃用户数量
一般用于反映网站、互联网应用等运营情况。DAU通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户),这与流量统计工具里的访客(UV)概念相似。

DOU(Dataflow of usage):平均每户每月上网流量(average data flow per one month per one user)
电信行业的一个衡量指标,单位:兆(M)

ROI: 投资回报率(ROI)
是指通过投资而应返回的价值,它涵盖了企业的获利目标。利润和投入的经营所必备的财产相关,因为管理人员必须通过投资和现有财产获得利润。又称会计收益率、投资利润率。

GMV:网站成交金额
属于电商平台企业成交类指标,主要指拍下订单的总金额,包含付款和未付款两部分。

PV (Page View): 流量

UV(Unique View): 独立访客
一台电脑24小时以内访问N次计为1次

安迪比尔定律:硬件提高的性能,很快被软件消耗掉了
把安迪比尔定律用于分析用户流量消费,也可以说得通。举个例子,用户同样看一部时长为1个小时的电影,普通清晰度2个GB就可以,6个GB的高清电影也是如此。对用户来说,视频画面效果虽然略有差异,但是同一时间段内完成的确实是同一件事。所以,即使在不限量套餐下,用户的总流量增多了,但是同样的是内容也升级了品质,最终也将消耗用户更多的流量。从这个角度看,在当前的4G和未来的5G时代,DOU或许将更多地反映用户内容消费的多少。

实习总结

数据分析项目

一、供应商入驻环节优化:
供应商入驻流程中需要需要提交基础信息、品类资质等信息,一个商户的入驻从商户提交信息到最终审核通过需要经过从总部到区域采购到品类到商户确认等业务流程,商户会由于各环节审核人效、审核驳回等因素影响到入驻的体验感,进而可能会造成商户流失,在这样的背景下,我是作为数据分析的角色参与到入驻环节优化项目中的,(1)与运营、产品同时沟通之后理清整个流程,搭建了一个准入环节漏斗数据看板,一方面掌握整体审核通过情况, 包括首次通过、当日通过、次日通过、7日内通过率及2小时内触达率,另一方面来看各环节的审核人效、审核时效,并且按照区域、品类、审核人角色等维度拆分至操作层面,中台运营、区域同事可以及时把握各环节整体审核节奏,并且进行督促催办;对产品方面的优化体现在两个方面:(1)一个方面是从驳回角度,提取总部集中审核人员高频驳回原因,反馈给产品端优化驳回标签,规范审核人员操作,提高审核时效(2)并且基于高频驳回标签,在商户入驻最开始填报信息的页面就做好提示,降低驳回率,最终也确实降低了大概有15%的审核人员驳回不规范率,商户驳回率降低了近10%。

二、供应商治理策略:
主要从整体上回顾了违规率变化、重犯率、申诉率、罚款金额分布、频次分布、违规时间间隔等方面回顾整理策略效果,看罚款金额是否触碰到商户痛点,违规频次、罚款金额主要集中在什么范围内,据此可以设定今后专项整治尾部供应商的阈值;从商户维度,分析单个商户各场景的违规分布情况,建立履约评价指标体系,给商户打分,运营侧据此分品类对高频累犯供应商做清退。

面试准备

一、快手数据分析实习生

1.短视频业务核心指标
图片说明

业务题

1.如果次日用户留存率下降了5%该怎么分析?

首先采用“两层模型”分析:对用户进行细分,包括新老、渠道、活动、画像等多个维度,然后分别计算每个维度下不同用户的次日留存率。通过这种方法定位到导致留存率下降的用户群体是谁。
具体分析可以采用“内部-外部”因素考虑,内部因素分为获客(渠道质量低、活动获取非目标用户)、满足需求(新功能改动引发某类用户不满)、提活手段(签到等提活手段没打成目标、产品自然使用周期低导致上次获得的大量用户短期内不需要再使用等)
外部因素采用PEST分析,政治(政策影响)、经济(短期内主要是竞争环境,如对竞争对手的活动)、社会(舆论压力、用户生活方式变化、消费心理变化、价值观变化等偏好变化)、技术(创新解决方案的出现、分销渠道变化等)

2.DAU下降20%,如何分析 -- 指标分解

(1).核实数据的真实性
(2).拆解分析:各维度拆解,定位问题缘由
1.用户基本画像
2.用户新老(是否使用):新用户(拉新,渠道转化率、新增),老用户(留存),新老用户对产品需求差异较大,关注的侧重点不同
3.用户来源渠道(其他产品和广告)
4.用户登录入口
5.用户所使用的机型
(3).联合各部门,找出问题(分锅)
1.产品:策略,ui改动,功能变化
2.开发:app的bug(秒退),耗电,加载过慢
3.运营:push推送,活动推广不佳
(4).漏斗分析:转化率分析
从用户进去app到购买这个动作的子环节,功能或者界面出现问题
(5).除了内部原因外,还有开学季和订单均价(政府政策,市场价格)等外部原因

3.用户生命周期价值

用户生命周期价值LTV(Lifetime Value)
LTV 一定要大于CAC
LTV指在生命周期内创造的净利润的价值,不是GMV或者实付金额。
原始公式:LTV= LT*ARPU
ARPU指每一个用户所能带来的收入。
ARPU=用户带来的总收入/用户数
LT:引入期(熟悉)、成长期(高活跃用户、高粘性)、成熟期、衰退期、流失期
arpu在用户生命周期呈现正态分布状。
CAC=获取新用户花费的成本/获取的新用户数

【重点】用户生命周期价值预测

  • 从公式入手,直接预测
    • LTV=LT*ARPU(均值)
    • LT=1+次日留存率+2日留存率+...n日留存率。(对留存率衰减的预测)
    • 适合功能比较稳定的产品
    • 在衰减率上有很大的误差,ARPU通常是动态变化的,取平均值的方法不准确。
  • 从交易成交角度预测
    • 【从全量用户的角度出发】LTV=付费用户LTARPU付费转化率
    • 适合重视付费转化的行业。
    • 与方法一有类似的问题,付费转化率也会收到产品调整或者运营策略的影响。
  • 时间序列模型
    • 对历史数据量有着更高的要求

LTV和ROI之间存在什么样的关系?
A: ROI=总收入/总成本。 当ROI变大,总收入提高,与此对应的LTV也会增加。

3.如何识别作弊用户(爬虫程序, 或者渠道伪造的假用户)**

分类问题可以用机器学习的方法去解决
特征:
(1)渠道特征:渠道、渠道次日留存率、渠道流量以及各种比率特征
(2)环境特征:设备(一般伪造假用户的工作坊以低端机为主)、系统(刷量工作坊一般系统更新较慢)、wifi使用情况、使用时间、来源地区、ip是否进过黑名单
(3)用户行为特征:访问时长、访问页面、使用间隔、次日留存、活跃时间、页面跳转行为(假用户的行为要么过于一致,要么过于随机)、页面使用行为(正常用户对图片的点击也是有分布的,假用户的行为容易过于随机)
(4)异常特征:设备号异常(频繁重置idfa)、ip异常(异地访问)、行为异常(突然大量点击广告、点赞)、数据包不完整等

4.1 如何构建指标体系**

指标体系构建

一级指标:公司战略层面指标。
用于衡量公司整体目标达成情况,通常设定在5-8个指标。这类指标是与业务紧密结合,按照行业标准进行制定,有可参考的行业标准指标,且这类指标针对全公司所有员工均具有核心的指导意义。
比如某游戏公司的一级指标:新增账号、留存率、DAU/MAU、付费人数(率)、收入金额等。

二级指标:业务策略层面指标。
为了实现一级指标,企业会做出一些策略,二级指标通常与这些策略有所关联。可以简单理解为一级指标的实现路径,用于更快定位一级指标的问题。
例如:某游戏公司一级指标是游戏收入,那么二级指标可以设定为不同游戏物品的收入。一级指标是DAU,那么二级指标设定为分服务器的DAU等。这样当一级指标出现问题的时候,我们可以快速查询到问题的所在点。

三级指标:业务执行层面指标。
三级指标是对二级指标的路径拆解,用于定位二级指标的问题。三级指标的使用通常是可以指导一线人员开展工作的指标内容。三级指标的要求是:一线人员看到指标后,可以快速做出相应的动作。
如游戏公司的二级指标是XX区服的DAU,那么三级指标则可以设定为游戏时长、游戏频次、游戏等级分布、游戏关卡流失情况等。通过观察这些数据,可以去针对性地做调整,如某个关卡流失的用户特别高,那么尝试降低难度。

一级二级指标,能否反应产品当前的运营情况;
三级四级指标能否帮助一线人员定位问题,指导运营工作。

4.2 指标体系搭建思路

4.3 AARRR模型

5.两种竞品对比:抖音、快手

相似点:根据用户画像做差异化推荐
差异:由表及里
(1)logo、slogan有很大差别,可以直观的感受到两个产品定位的差;抖音:音符,“记录美好生活”,快手:照相机,“拥抱每一种生活”。抖音的重点可能在于“美好”,快手在于“记录每一种生活”,差别可能来源于两个产品的定位不同,抖音倾向于结合一些音乐、BGM打造一些比较酷炫、比较潮的作品;快手可能更倾向于通过摄像机记录平凡的生活。
(2)进入APP使用上的差异:

  • 从排列方式:抖音一开始是瀑布式排列方式,强调用户沉浸式观看体验;快手一开始是双排列方式,用户在看了封面之后决定是否点击观看,现在两个APP的精选(快手)、推荐(抖音)其实都是瀑布流式观看方式,其他几个模块下也都有双排列形式。
  • 除了排列方式上的差异,快手、抖音在功能上都提供快进、暂停、评论、点赞、转发等功能,但是在使用上会存在一定的差异:比如抖音右滑进入主页,快手右滑选择作品,再右滑进入主页;抖音评论只能点击聊天按钮,快手点击标题就能看评论;抖音看评论会遮挡视频,快手会缩小屏幕继续播放等
    图片说明
  • 抖音定位在“美好”生活,更鼓励优质创作者提供一些更酷炫的视频,用户群体集中在一二线城市,男女比例相当;快手更加平民化,主推内容更加下沉,用户也主要集中在三四线城市,男性用户更多,这是用户组成上的差别,这也决定了两款APP流量分发模式的差异,虽然都是进行差异化个性推荐,但是快手模式下视频推荐偏下沉、便分散,更加注重用户的参与机会,能够把更多的流量分发给更多的普通用户;抖音更加注重观看体验,流量分发会更加集中,分发给内容视频更加优质、拥有大量粉丝群体的视频博主那里,但是其实两个APP都有在取长补短,抖音开始下沉,快手也在往高端方向做,获取更多一二线用户
  • 从未来发展方向来看,两个APP都在优化电商这一块的发展,因为短视频是为了获得流量,获得流量也是为了最终的变现,电商是一个非常重要的变现渠道,抖音注重短视频带货,博主推荐之后会把链接放在下方,引导客户购买;快手更强调与用户建立信任,快手模式更多通过直播带货,抖音目前也有直播带货,这体现在页面布局上,抖音APP主页面(最上方)会有直播入口。

6.异动分析

异常监控、归因、链路拆解、多维分析(维度下探)--城市、业务等,依赖公示

快手流媒体数据分析实习生-准备方面

2.短视频/直播业务
3.播放体验优化
4.流量成本

ABtest

https://zhuanlan.zhihu.com/p/75762862
图片说明

智商题

1.毒老鼠

面试题:现有1000瓶药,其中999瓶无毒,只有一瓶有毒。已知小白鼠喝了毒药1小时后会死,现给你10只小白鼠,和1个小时的时间,让你找出有毒的那瓶药。说明:每一瓶药的量足够每只小白鼠同时服用,喂药时间可以忽略,小白鼠的胃足够大,可以喝很多瓶。
思路:看到10和1000是否想到2的10次方等于1024,10个0和1最多可以组成1024,并且不会重复。把每个瓶子编上号码,然后把这些编号转成二级制,下面就解题:
把小白鼠从左到右依次编号10,9,8一直到1,把瓶子从1到1000转成二进制树,不够10位左补0,就组成了下面的图(中间的很多数字省略了)。
示意图
图片说明
把这1000瓶都喂给所有小白鼠,死亡的小白鼠记为1,活着的小白鼠记为0,比如9,7,4,3,1死了,其余的活着,这个组合起来就是0101001101,把这个数转成十进制数据,对应着十进制的333,也就是333这瓶有毒,依次类推,就可以找到哪瓶有毒了。

ABtest相关、因果推断

PSM-DID

1、介绍ABtest思想、流程

2、P值的理解、与置信区间的关系yang

3、样本量的确定

4、一些很tricky的问题

  • ABtest很显著,实际结果不显著
    答:样本量很大,在统计意义上显著的细微差别,在用户使用过程中几乎没有感知

全部评论

相关推荐

每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
1
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务