十年码农一枚,记一次某公司机器学习面试,没什么准备或者对问题本身思考深度不够,结果肯定不用问了,还记得几个题目,现在记录下,避免重复犯错。
问题一:如何检测过拟合?关键字:噪音、泛化误差、测试误差、交叉验证、正则化、dropout
问题二:异常检测有哪些方法?
问题三:正负样本不均衡,如果处理?
问题四:说说你都熟悉那些模型?线性模型、逻辑回归、KNN、
问题五:什么是损失函数?关键词:度量一次模型预测好坏、0-1损失、绝对损失、平方损失、指数损失、对数损失、折叶损失。
问题六:ROC和AUC? 关键词:ROC曲线下面积、
问题七:缺失值处理方法有哪些?
问题八:什么是决策树?关键词:连续特征离散化、自动组合特征
问题九:说说梯度下降,最小二乘法?
问题十:说说你在kaggle、天池比赛?
答:问题一:如何检测过拟合?
人生第一次机器学习面试被问到的题目,让我忽然想起来一句话,we are not overfitting alone!大致可以说出过拟合是什么?然后接下来,怎么检测过拟合呢?有点晕,然后就想换个思考角度回忆过拟合是机器学习那个阶段发生的事情?再然后我的大脑就如下图所示,堪称车祸现场,
机器学不学习什么的不重要,我主要是看你怎么面试失败的那些事的?
问题本身可以分为3个问题:什么是过拟合?如何检测过拟合?
什么是过拟合?
过拟合维基百科解释: https://zh.wikipedia.org/wiki/%E9%81%8E%E9%81%A9 ,维基百科上剪切的图很好的诠释了什么是过拟合:
绿线代表过拟合模型,黑线代表正则化模型。虽然绿线完美的符合训练数据,但太过依赖,并且与黑线相比,对于新的测试数据上具有更高的错误率。
用自己的话说:过拟合就是当前数据量较少或者存在噪音, 训练的时候学习到了少量数据和噪音数据的特性,在当预测时在未知的数据集拟合效果不好,过拟合只能尽量减少,无法完全消除。
什么是噪音?真实标记与数据集中实际标记间的偏差,通常由多种因素综合影响构成,不可去除。
一个实际的例子来解释过拟合,依然是房价数据,求的是120平方的房屋价格是多少?
数据在坐标系的图如下:
如果我们希望找规律,一般能想到的是可以通过一条曲线把3个点连起来,然后从面积为120的点向上画直线,和曲线相较的点的纵轴的值(房价值),也即是我们所求。
这个是不是已经解决问题了? 但是如果这个是房价数据从3条增加到1000条,这个方式还行吗?
当然是不行了,这个时候红色直线是最佳。所以增加数据也可以减少过拟合的情况。
如何检测过拟合?
方法有:交叉验证、早停法、贝叶斯信息准则、模型比较、正则化(削弱不重要的特征变量)、dropout
交叉验证:用于检验是否发生了过拟合,最常用K折交叉验证,数据量超大,运行时间较长时候,可能会考虑只运行一次,相当于留出法。
选择经验是:已知数据集充足,通常采用留出法和K折交叉验证;数据量较小且难以划分训练集和测试集,采用自助法;已知数据集较小切可以有划分训练集和测试集,采用留一法。
早停法:在一定次数之后就停止掉,省的训练时间过程,过拟合了。
过拟合处理参考链接:https://zhuanlan.zhihu.com/p/38947625