【社招面经】某厂数据挖掘岗位一面
开头依然自我介绍 依照项目发问。
1 异常数据分析。我的简历里写到这条,他让我着重说了一下,然后我介绍了一下捕捉异常数据的方法,都是依据业务给规则来输出的异常。所以面试官问为什么选择用规则而不用异常检测的模型。
这个问题问得挺好,用模型识别异常数据泛化性更强,并且随着业务的增长,阈值等也可以动态变化。但用规则的原因可以分两点:第一,规则便于业务人员理解,项目是业务主导,且项目时间较短,设置规则识别异常可能是短时间内最快且直接的途径。模型或算法的结果可能难以在短时间内超过业务规则,不过在二期可以优化;第二个设置规则的目的跟用模型识别的目的不同。 看板的数据主要为业务的考核数据,反映的是实际业务变化。例如他从业务的经验出发认为某指标超过某个阈值业务发展就可能存在问题,这种是总部定的考核规则,非监督学习是无法学习的。
2 什么是充分统计量和完备统计量
简单的说,知道了充分统计量我们就可以扔掉样本,因为样本里的信息全都被包含在充分统计量里面。对于正态分布来说,充分统计量,一个均数,一个是方差。有了这两个参数(数据),你就可以决定一个正态分布了。那么这两个就是充分统计量,缺一不可。
完备统计量( complete statistic):若存在一个统计量,使得对于总体参数的任意函数,基于该统计量的无偏估计至多只有一个,则称之为完备统计量
3 什么是大数定理(我淦,居然还被问到本科上课的定理。。。)
4 l1正则和l2正则是什么,作用是
为了防止模型处于过拟合状态,需要用L1正则化和L2正则化降低模型的复杂度,很多线性回归模型正则化的文章会提到L1是通过稀疏参数(减少参数的数量)来降低复杂度,L2是通过减小参数值的大小来降低复杂度。
5 给一组数据,如何快速了解这组数据
做EDA,看一些描述性统计量,如均值 最大值 最小值之类的,还可以画图,如果是时间序列就画时序图,还有箱型图可以看数据的离散情况等等。
6 做线性回归之前,需要关注的问题
判断因变量(y)是否符合正态分布,以及自变量(x)是否存在多重共线性的问题。还要考虑是否要对自变量做标准化处理等。
7 遇到多重共线性的问题要怎么处理
a、保留重要解释变量,去掉次要或可替代解释变量。自变量之间存在共线性,说明自变量所提供的信息是重叠的,可以删除不重要的自变量减少重复信息
b、主成分分析,对自变量降维处理。
c、逐步回归分析。逐步回归(Stepwise Regression)是一种常用的消除多重共线性、选取“最优”回归方程的方法。其做法是将逐个引入自变量,引入的条件是该自变量经F检验是显著的,每引入一个自变量后,对已选入的变量进行逐个检验,如果原来引入的变量由于后面变量的引入而变得不再显著,那么就将其剔除。引入一个变量或从回归方程中剔除一个变量,为逐步回归的一步,每一步都要进行F 检验,以确保每次引入新变量之前回归方程中只包含显著的变量。这个过程反复进行,直到既没有不显著的自变量选入回归方程,也没有显著自变量从回归方程中剔除为止。
8 常见的方法检验正态性
画数据分布图观察是否正态分布……QQ plot,还有正态性检验:利用假设检验。 用于正态性检验的假设检验类型,最常用的是D-W检验。
9 数据预处理,log变化,标准化
10 一道算法题。
规则:不能有相邻重复,如 1,2,2,3要变成1,2,3
样例1: 输入 [1,1,2,2,3,3] 输出 [1,2,3]
样例2: 输入 [1,2,3,3,1,2,2,3,1,2,3] 输出 [1,2,3]
样例3: 输入 [1,2,3,4,1,2] 输出 [1,2,3,4,1,2]
需要特别看一下样例2,去掉相邻重复的之后是123123123,然后123重复了三次,所以结果输出123。因此思路其实是要不断去重,一开始以一个数为一个单位,就是相邻的数去重;之后以两个数为一个单位,如121212就要去重成12;然后是三个数一个单位……
nums = [1,2,3,3,1,2,2,3,1,2,3]count = 1while count <= len(nums)/2: i = 0 while i<len(nums): before = nums[i count:i 2*count] after = nums[i:i count] if after == before: nums = nums[0:i count] nums[i 2 * count:] continue i = count count = count 1 nums