微软AI面试题有多难?这里有一份样卷

百家 作者:大数据文摘 2018-05-13 04:39:33

大数据文摘作品

编译:张南星、卫青、钱天培



究竟什么样的AI人才能被微软这样的巨头聘用呢?


是不是要码力超群,上来就能徒手写个AlphaGo呢?还是要眼光毒辣,当场就能构想出未来20年AI发展前景呢?


当然不是!


今天,文摘君就淘来了几道微软AI 面试题,同时给出了最基本的解答。(注意是最基本解答哦,欢迎在文末留言给出你认为更好的答案。)


神秘的微软AI面试题,其实非常平易近人。一起来答答看!


合并k个数列(比如k=2)数列并进行排序



代码如上。最简单的方法当然就是冒泡排序法啦。虽然不是最有效的,但却容易描述和实现。


L1/L2正则度量有什么区别?



L1范数损失函数也叫做最小一乘法(LAD)以及最小绝对误差(LAE)。它主要在于最小化目标值(y_i)同预测值(f(x_i))之间的绝对差值之和。


公式一



L2范数损失函数也叫做最小平方误差(LSE)。它主要在于最小化目标值(Yi)以及预测值[f(xi)]之间差值平方之和。


公式二



对于较大的误差误差,L2比L1给出的惩罚更大。此外,加入L2正则后,模型系数会向0聚拢,但不会出现完全为0的情况,而L1损失函数则能使部分系数完全为0。


如何寻找百分位数?



就拿上面这道题目为例吧:过去12小时内共有1000人来过这个购物中心,请估测,截止至何时,购物中心刚好达到30%的总客流量?



我们可以通过多项式线性回归(polynomial regression)或者平滑样条(spline smoothing)等技巧作出下图。


 即为30%的客流量对应3000人


从Y值为3000的点画一条水平线,当与曲线相交时,画一条垂直线在横轴上找到对应的时间值就可以啦。


怎么区分好的可视化与坏的可视化?


针对这个问题,我们会有很多不同的答案。比如,一个不能很好地处理异常值(outliers)的可视化,就不是一个好的可视化。



比如说我们有一个数组,在一系列小数字中有一个很大的数据([1,2,3,4,7777,5,6,9,2,3]),当我们可视化这个数组的时候,会产生如下的图:


右图→原始图片;中间图→规范化值;左图→标准化值


怎样才能更好地可视化这组数据呢?正如上图所示,即使我们对分析值进行了标准化或者规范化,产生的折线图依然不能很好地表示这组数组。究竟要怎么做呢?欢迎留言发表看法。


怎样更快地计算出逆矩阵?


比如,可以考虑Gauss-Jordan法。


如果是一个2x2的矩阵就很简单了。

逆矩阵是:



  ad-bc≠0


只需要交换a和b,取b和c的负值,然后除以方阵ad-bc。



定义方差


方差是每个数据点与整个数据集平均值之间差值的平方和。换而言之,就是数据的变化性。下面这张图就很好地解释了什么是方差。



首先我们计算出每只狗和平均身高的差值;为了计算方差,将每个差值平方后加总,再求平均值。


最后,献上本文出现的所有代码:

https://colab.research.google.com/drive/1DYimC5CEKeXdT15tbptifYL2v5MPkyHj


相关报道:

https://towardsdatascience.com/my-take-on-microsoft-ai-interview-questions-with-interactive-code-part-1-c271388af633


【今日机器学习概念】

Have a Great Definition


志愿者介绍

回复志愿者”加入我们

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接