掐指一算,自己已经是有一年找工作经验的非著名985渣硕。找工作这一年中,最想做的就是技术博客的更新,但是由于各种事情,断断续续,没有形成系统的更新,这篇文章属于炒冷饭了,是之前自己在刚开始面试数据分析和算法岗遇到的一些问题,这里分享给大家。有问题,扫描最后的公众号二维码,联系作者~
1.机器学习中特征的理解
概念:特征选择和降维
特征选择:原有特征选择出子集,不改变原来的特征空间
降维:将原有的特征重组成为包含信息更多的特征,改变了原有的特征空间
降维的主要方法
Principal Component Analysis(主成分分析)
Singular Value Decomposition(奇异值分解)?
Sammon's Mapping(Sammon映射)?
特征选择的方法
Filter方法
Chi-squared test(卡方检验)?
information gain(信息增益),详细可见“简单易学的机器学习算法——决策树之ID3算法”
correlation coefficient scores(相关系数)
Wrapper方法
其主要思想是:将子集的选择看作是一个搜索寻优问题,生成不同的组合,对组合进行评价,再与其他的组合进行比较。这样就将子集的选择看作是一个是一个优化问题,这里有很多的优化算法可以解决,尤其是一些启发式的优化算法,如GA,PSO,DE,ABC等,详见“优化算法——人工蜂群算法(ABC)”,“优化算法——粒子群算法(PSO)”。?
Embedded方法
其主要思想是:在模型既定的情况下学习出对提高模型准确性最好的属性。这句话并不是很好理解,其实是讲在确定模型的过程中,挑选出那些对模型的训练有重要意义的属性。
主要方法:正则化,可以见“简单易学的机器学习算法——岭回归(Ridge Regression)”,岭回归就是在基本线性回归的过程中加入了正则项。?
2.机器学习中,有哪些特征选择的工程方法?
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已
1. 计算每一个特征与响应变量的相关性:工程上常用的手段有计算皮尔逊系数和互信息系数,皮尔逊系数只能衡量线性相关性而互信息系数能够很好地度量各种相关性,但是计算相对复杂一些,好在很多toolkit里边都包含了这个工具(如sklearn的MINE),得到相关性之后就可以排序选择特征了;
2. 构建单个特征的模型,通过模型的准确性为特征排序,借此来选择特征,另外,记得JMLR'03上有一篇论文介绍了一种基于决策树的特征选择方法,本质上是等价的。当选择到了目标特征之后,再用来训练最终的模型;
3.****通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验;
4. 训练能够对特征打分的预选模型:RandomForest和Logistic Regression等都能对模型的特征打分,通过打分获得相关性后再训练最终模型;
5.通过特征组合后再来选择特征:如对用户id和用户特征最组合来获得较大的特征集再来选择特征,这种做法在推荐系统和广告系统中比较常见,这也是所谓亿级甚至十亿级特征的主要来源,原因是用户数据比较稀疏,组合特征能够同时兼顾全局模型和个性化模型,这个问题有机会可以展开讲。
6.通过深度学习来进行特征选择:目前这种手段正在随着深度学习的流行而成为一种手段,尤其是在计算机视觉领域,原因是深度学习具有自动学习特征的能力,这也是深度学习又叫unsupervised feature learning的原因。从深度学习模型中选择某一神经层的特征后就可以用来进行最终目标模型的训练了。
3.机器学习中的正负样本
在分类问题中,这个问题相对好理解一点,比如人脸识别中的例子,正样本很好理解,就是人脸的图片,负样本的选取就与问题场景相关,具体而言,如果你要进行教室中学生的人脸识别,那么负样本就是教室的窗子、墙等等,也就是说,不能是与你要研究的问题毫不相关的乱七八糟的场景图片,这样的负样本并没有意义。负样本可以根据背景生成,有时候不需要寻找额外的负样本。一般3000-10000的正样本需要5,000,000-100,000,000的负样本来学习,充分的说明机器学习是试误。
在检测的问题中问题不像分类那么简单,因为检测问题需要做的事情是指出哪里有什么,也就是既要给出框,又要说明框中是什么,在这种情况下,我们所具备的数据就是一些人工标注的图片,这些图片上有框,并且会给出框中的物体类别,我们需要运用这些数据生成训练中的正负样本数据。
首先,检测问题中的正负样本并非人工标注的那些框框,而是程序中(网络)生成出来的框框,这些框中的一部分被选为正样本,一部分被选为负样本,另外一部分被当作背景或者不参与运算。不同的框架有不同的策略,大致都是根据IOU的值,选取个阈值范围进行判定,在训练的过程中还需要注意均衡正负样本之间的比例。**
4.线性分类器与非线性分类器的区别及优劣;
区别:所谓线性分类器即用一个超平面将正负样本分离开,表达式为 y=wx 。这里是强调的是平面。
而非线性的分类界面没有这个限制,可以是曲面,多个超平面的组合等。
典型的线性分类器有感知机,LDA,逻辑斯特回归,SVM(线性核);
典型的非线性分类器有朴素贝叶斯(有文章说这个本质是线性的,http://dataunion.org/12344.html),kNN,决策树,SVM(非线性核)
优缺点:1.线性分类器判别简单、易实现、且需要的计算量和存储量小。
为解决比较复杂的线性不可分样本分类问题,提出非线性判别函数。:超曲面,非线性判别函数计算复杂,实际应用上受到较大的限制。在线性分类器的基础上,用分段线性分类器可以实现复杂的分类面。解决问题比较简便的方法是采用多个线性分界面将它们分段连接,用分段线性判别划分去逼近分界的超曲面。 2.如果一个问题是非线性问题并且它的类边界不能够用线性超平面估计得很好,那么非线性分类器通常会比线性分类器表现得更精准。如果一个问题是线性的,那么最好使用简单的线性分类器来处理。
参考:机器学习面试问题10
5.对于维度很高的特征,你是选择线性还是非线性分类器?
维度很高的特征:特征数量多,一般线性模型欠拟合,所以采用选择非线性分类器。。
6.特征比数据量还大时,选择什么样的分类器?
如果训练集很小,那么高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k近邻分类器),因为后者容易过拟合。
然而,随着训练集的增大,低偏差/高方差分类器将开始胜出(它们具有较低的渐近误差),因为高偏差分类器不足以提供准确的模型。也可以认为这是生成模型与判别模型的区别。
7.对于维度极低的特征,你是选择线性还是非线性分类器?
key
维度底,一般简单的线性模型即可,选择线性分类器。
8.如何解决过拟合问题?
key
解释过拟合:模型在训练集表现好,在真实数据表现不好,即模型的繁华能力不够。从另外一个方面来讲,模型在达到经验损失最小的时候,模型复杂度较高,结构风险没有达到最优。
解决:1. 学习方法上:限制机器的学习,使机器学习特征时学得不那么彻底,因此这样就可以降低机器学到局部特征和错误特征的几率,使得识别正确率得到优化.2. 数据上:要防止过拟合,做好特征的选取。训练数据的选取也是很关键的,良好的训练数据本身的局部特征应尽可能少,噪声也尽可能小.
9.L1和L2正则的区别,如何选择L1和L2正则?
L1 Norm 和L2 Norm的区别(核心:L2对大数,对outlier更敏感!):
L1优点是能够获得sparse模型,对于large-scale的问题来说这一点很重要,因为可以减少存储空间。缺点是加入L1后目标函数在原点不可导,需要做特殊处理。
L2优点是实现简单,能够起到正则化的作用。缺点就是L1的优点:无法获得sparse模型。实际上L1也是一种妥协的做法,要获得真正sparse的模型,要用L0正则化。
机器学习中的范数规则化之(一)L0、L1与L2范数
10.有监督学习和无监督学习的区别
有监督学习:对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的岐义性低。监督学习中只要输入样本集,机器就可以从中推演出制定目标变量的可能结果.如协同过滤推荐算法,通过对训练集进行监督学习,并对测试集进行预测,从而达到预测的目的.
无监督学习:对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的岐义性高。聚类就是典型的无监督学习
无监督例子:比如我们去参观一个画展,我们对艺术一无所知,但是欣赏完很多幅作品之后,我们面对一幅新的作品之后,至少可以知道这幅作品是什么派别的吧,比如更抽象一些还是更写实一点,虽然不能很清楚的了解这幅画的含义,但是至少我们可以把它分为哪一类。再比如我们在电影院看电影,对于之前没有学过相关电影艺术知识的我们,可能不知道什么是一部好电影,什么是一部不好的电影,可是在观看了很多部电影之后,我们脑中对电影就有了一个潜在的认识,当我们再次坐在电影院认真观看新上映的电影时,脑中就会对这部电影产生一个评价:怎么这电影这么不好啊,整个故事线是混乱的,一点也不清晰,比我之前看过的那些电影差远了,人物的性格也没有表现出来,关键是电影主题还搞偏了;哎呀,这个电影拍得确实好啊,故事情节和人物性格都很鲜明,而且场景很逼真,主角的实力表演加上他与生俱来的忧郁眼神一下把人物演活了。
监督学习的典型例子就是决策树、神经网络以及疾病监测,而无监督学习就是很早之前的西洋双陆棋和聚类。
扫码关注有惊喜哦~
Monke的公众号
网友评论