笔试
一面
时间:2021.6.3 19:00
岗位名称:算法实习生
时长: 1h左
1、自我介绍
项目:
2、介绍MM的一个项目(balabala)
3、用到的数据集?
4、评价标准?
ACC
NMI 代表两个变量的独立性,如果preY和Y越独立,则NMI越小。越不独立,则NMI越大。
PUR:衡量每个簇的纯度,即每个簇中
5、还有好多项目中的小细节问题,有点忘了。。
6、反问做什么
推荐:
1)召回:协同过滤 MF 统计学习(传统ML用的多)
2)模型:CTR 预估 (DNN用的多)
3)排序: rank 精排 (深度多)
推荐的书籍: 《深度学习推荐系统》
编程题(智力题?)
⭐[基础] 给定一个函数f,该函数的功能是可以实现以p的概率生成1,以1-p的概率的生成0。问如何设计函数g来实现以0.5的概率生成1,以0.5的概率生成0?
分析:换个角度来想,以0.5的概率分别生成0、1可以转换为 考虑如何生成两个等概率事件。因为函数f是可以无限被调用的。既然一次调用不行,让我们思考一下两次调用的一个结果:
两次调用f:第一次返回1,第二次返回0的概率为 p(1-p) 返回1
两次调用f:第一次返回0,第二次返回1的概率为 (1-p)p 返回0
所以可以用上述等概率的两种情况来返回1和0
⭐[升级]给定函数g,该函数的功能是可以实现以0.5的概率返回1,以0.5的概率返回0.问如何设计函数h来实现以1/7的概率返回1,以6/7的概率返回0?
分析:承接上一道题的思路,我们应该找到7个等概率事件即可。 关于0、1这两个数值,我们很容易想到二进制位上不是取0就是取1,即在每位上有相等的概率值。
如果我们只有一位(调用一次),那么该位取0或1 的概率相等,为1/2
如果我们只有两位(调用两次),那么两位的可能 00 01 10 11 的概率也是相同的,为 1/4
如果我们只有三位(调用三次),那么三位的可能 000 010…111的概率也是相同的,为1/8
那么如何做到我们1/7的概率呢?
可以调用三次,生成000 001 010 011 100 101 110 111 8个值,由于是等概率的,我们排除一个值剩下的概率也是相同的。 所以我们可以调用三次 当输出的值<6时返回0,等于6时候返回1,等于7时候不做操作。