Q1- bias and variance之间的关系?
More reading: Bias-Variance Tradeoff (Wikipedia)
Bias的原因通常是由于错误或者过分简单的假设造成学习算法的误差. 这些bias导致的模型无法足够拟合数据. 这样就无法得到比较高的准确度(accruacy) 也无法有效generalize泛化模型从训练数据到测试数据.
Variance则恰恰相反通常是由于模型过度复杂造成. 其结果就是导致模型对训练数据里高阶变化过分敏感.其结果就是导致过度拟合,对训练数据有极其高的预测精度准确度但是对测试数据预测能力十分差. 换句话就是从训练数据中带来了太多噪音信息导致这个模型对于没有训练过的测试数据起不到预测作用.
bias-variance影响分解主要是为了将模型中的来自任何算法的学习错误按照来源bias-originated, variance originated 或者一部分不可消除irreducible的由于数据中噪音带来的误差分开考虑. 基本上如果模型变得复杂了就会有更多参数变量, 模型通常会降低bias但是得到过分的variance. 反之亦然, 因此如果我们要得到bias and variance之间的平衡的话, 需要联合考虑bias and variance. 基本的原则是我们既不能有太高的bias也不能有过高的variance.
Q2- 监督学习和无监督学习之间的区别?
More reading: What is the difference between supervised and unsupervised machine learning? (Quora)
老生常谈的问题了.监督学习需要标记数据来训练.比如一个监督学习任务是为了分类,我们首先需要为训练数据人工分类,然后菜可以用于预测测试数据属于训练之后的模型中哪个分类. 但是非监督学习就不一样,直接通过算法自己学习和启发分类的数量种类等,无需外部干预.至少不需要显式explicit的外部干预训练.
Q3- How is KNN different from k-means clustering?
More reading: How is the k-nearest neighbor algorithm different from k-means clustering? (Quora)
K紧邻是一种监督学习的分类算法.而K平均是一种无监督学习的分类算法.最大区别是有没有监督的学习.从名称和机制上看其实很相似但是有无监督意味着对于KNN而言我们需要首先标记训练数据得到分类然后让哪个测试数据通过计算KNN距离得到其属于的分组.而K平均由于是无监督学习只需要一组无标记的点和一个阈值.通过这个阈值算法可以把未标记的数据点通过逐渐学习他们之间的相互距离最终把距离相似的一类放到一个分类中,在这里选择最初的中心点变得是一个很有技术的工作.
Q4-什么是ROC Receiver Operation Characteristics Curve
ROC曲线是在某个给定的模型阈值,真正率作为Y坐标假正率作为X的曲线.这个曲线的主要作用是研究模型的敏感度代表真正率和导致误判的假正率之间的关系.原则上我们需要的是真正率越高越好而假正率越低越好,这就导致需要曲线尽, 可能靠近左上角,所以通过给定模型的一系列阈值我们得到一系列ROC曲线,从曲线中我们可以研究哪个阈值导致最高的真正率和最低的假正率我们选择这个阈值作为模型的评价指标.
Q5 what is called Precision精度 和recal召回
Recall召回是一个很奇怪的说法总之就是真正率,主要是被模型正确识别的真正例和样本中所有真正例之间的比值. Precision也可以叫做正预测值主要是研究有多少可以被预测的正例占据实际正例中的比例 我们举个例子就是在一堆水果中我们有10个橘子和很多其他水果但是预测模型预测15次得到结果是10个橘子和5个?, 这中情形的时候召回率也就是false negative=0 所以没有任何一个橘子被预测为苹果 10个橘子都被找到了.但是精度就有问题了只有10/15 66.7% 因为在15次预测事件中只有10次是正确的.
Q6 什么是贝叶斯理论?
贝叶斯理论主要是给出了在给定事件先验概率的情况下某个事件的事后概率.从数学上说就是一个样本的真正率除以假正率和真正率的和比如: 一个人在做了流感检查之后患有流感的概率是60%, 但是在那些患有流感的人群里测试的真实性自由50%, 另外在人口总数中只有5%的机会有流感.所以现在问题是如果在做了流感检查之后结果为positive的话是不是60%? 根据贝叶斯理论不是的, 我们实际在一个流感检查后诊断真正得流感的概率是条件样本的真正率0.6*0.05 除以 0.6*0.05 +整个population的假正率0.95*0.5 =0.0594也就是5.94%的概率得了流感. 贝叶斯理论朴素贝叶斯分类器的主要基础这是一个机器学习中必须要严肃面对的问题.
Q7.什么是朴素贝叶斯?
朴素贝叶斯在文字挖掘方面有很多不错的应用但是朴素贝叶斯之所以被认为是朴素的因为他的假设一般不可能在实际世界中看到.换句话说就是不靠谱doesnt make sense. 因为这个假设是基于一系列分立概率的纯粹的组合. 这意味比如一个特征的绝对的独立可能在现实中就没有.举个例子吧 如果朴素的贝叶斯分类器认为我喜欢咸菜和冰激凌.他们朴素贝叶斯理论就有可能推荐一个咸菜味道的冰激凌.
Q8. difference between L1 and L2 regularization. L1 L2正则化之间的区别?
首先说一下为什么要用正则化其实就是写在层或者激活函数上的一个惩罚项.主要的目的是防止复杂模型训练时候出现的过分拟合. 具体做法和原理也简单说几句,比方说在一个数值域是某激活函数的取值范围在这个范围内我们很容易达到全局最小值Wmin,但是这个值并不是一个好结果,因为用这个全局最小的值得到一个拟合结果很好的模型很可能是过分拟合了,导致预测其他测试数据的时候效果不够好.但是如果在激活函数上加入一个根据权重的值这样让损失函数优化的时候虽然是不断往其全局最小值方向移动,但是不会到达因为另外一个约束是要求这个损失函数还需要位于L1函数要求的界限内.考虑使用的是梯度下降法,那么最小损失肯定是要往原先的全局最小方向移动.
我们现在要说的不是为什么要做正则化而是L1正则化和L2正则化之间的关系.L2正则化尝试把误差分布到所有项上.而L1正则化是一种二元或者离散化的手段很多变量被给予要么1要么0的权重.L1相当于对各个项目施加了一个拉普拉斯变换而L2则更倾向于一个高斯变换形式
Q10: type I and Type II error错误
第一类误差指的是假正例.而第二类误差指的是假反例.简单说第一类误差意味着预测某事发生了(positive)但是其实没有发生所以是假正例 false positive.而第二类误差是假反例就是预测某事没有发生但是实际上发生了所以是false negative (->true positive) 换一个想法记住这个说法就是 第一类误差指的是预测一个男人怀孕了而第二类错误是预测一个已经怀孕的女人肚子里没有小孩.
Q11. 深度学习和机器学习的区别 其实估计没有面试会问这种问题,知道一下就好
深度学习其实是机器学习的一个子集主要关注的是利用类似人类神经网络的观点来理解计算的对象.主要用于建模在大型数据集通常是没有标记或者半结构化的数据.在这个意义上深度学习是一种无监督学习算法通过神经网络的关点来学习理解数据所表示的含义.
Q12.
如何避免过拟合是机器学习中一个重要的问题,所谓过拟合的意思其实是指携带了过多的数据中的噪音进入到模型中,而这些噪音其实和数据所反应内涵的规律其实不一样的,所以当有包含有过多噪音的模型虽然可以精确拟合已经训练过的数据但是对于其他数据就会有偏差较大,泛化能力就很差.3种手段来避免过拟合的问题
- 尽可能让模型简单降低variance手段上采用考虑更少的变量和参数,这样就能忽略掉一部分噪音带来的系统变化.
- 使用cross-validation技术比如Kfold来分别使用数据集中不同部分作为训练数据找到最好的模型metrics
- 使用正则化技术比如LASSO对那些造成过拟合的参数进行一定的惩罚 regularization技术之前也介绍了.
Q13. 如何处理数据列中缺失或者出错的数据?
这个问题是当一个特征的数据列中缺少相应的数据或者数据奇异的时候,一般选择取消这列数据所代表的值或者用一个其他值来替换他.在PANDAS中有isnull() and dropna()来使用很方便. 如果想替换缺失数据为0或者其他值可以用fillna()函数来实现.
Q14. spark大数据处理的经验如何?
Spark是一个目前常见的高速大数据处理框架.建议花点时间看看美国犹他大学计算机系有关并行化计算的课程https://my.eng.utah.edu/~cs4960-01/ 比如什么是Peril-L语言框架,就很装逼的. ;另外一个就是https://www.websequencediagrams.com/
Q32- How would you implement a recommendation system for our company’s users?
More reading: How to Implement A Recommendation System? (Stack Overflow) A lot of machine learning interview questions of this type will involve implementation of machine learning models to a company’s problems. You’ll have to research the company and its industry in-depth, especially the revenue drivers the company has, and the types of users the company takes on in the context of the industry it’s in.
Q33- How can we use your machine learning skills to generate revenue? 如何使用你的机器学习技能为公司创收?
More reading: Startup Metrics for Startups (500 Startups)
This is a tricky question. The ideal answer would demonstrate knowledge of what drives the business and how your skills could relate. For example, if you were interviewing for music-streaming startup Spotify, you could remark that your skills at developing a better recommendation model would increase user retention, which would then increase revenue in the long run.The startup metrics Slideshare linked above will help you understand exactly what performance indicators are important for startups and tech companies as they think about revenue and growth. 这个问题有点哪个,比如你可以所公司目前的客户需要一个模型来分析和预测股票趋势,公司只要能做出了马上就能上马一个项目哪怕是个小项目.如果公司内部的机器学习不是为了卖给客户,那就只能所这个模型可以带来公司投资和管理方式的调整,把以前不容易发现的环节优化,节约成本. 如何是买东西的也要分情况说,如果是制造业的话,可以说我们通过机器学习的研究得到用户行为,或者我们产品的长期行为,为客户提供更好的售后服务建议等. 当然客户有客户的想法,不能强迫人家买单.