- 什么是数据挖掘
数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
数据挖掘就是对观测到的数据集(经常是很庞大的)进行分析,目的是发现未知的关系和以数据拥有者可以理解并对其有价值的新颖方式来总结数据。
- 什么是机器学习
专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
机器学习的本质是模式识别。 一部分可以用于预测(有监督学习,无监督学习),另一类直接用于决策(强化学习)。相对物理微分方程代表的预测方法来说,机器学习在一定程度说是一种黑箱思想, 即先不求开始找到事物发展的精确模型,而是用基本的模型框架,直接以数据驱动我们的预测。
- 什么是特征工程
特征工程其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。(特征提取和特征选择)
- 简述无监督学习与有监督学习的区别
有监督的学习:简单来说就是给定一定的训练样本(既有特征,也有标签),所谓学习,其本质是利用样本数据找到特征与标签之间的关系即模型,利用得到的模型得到未知数据的标签。(分类,回归)(knn,svm)
无监督学习:与有监督不同之处,在于事先没有任何训练样本,需要直接对数据建模。(聚类)
- 什么时候用有监督学习,什么时候用无监督学习
一种非常简单的回答就是从定义入手,如果我们在分类的过程中有训练样本(training data),则可以考虑用监督学习的方法;如果没有训练样本,则不可能用监督学习的方法。但是事实上,我们在针对一个现实问题进行解答的过程中,即使我们没有现成的训练样本,我们也能够凭借自己的双眼,从待分类的数据中人工标注一些样本,并把他们作为训练样本,这样的话就可以把条件改善,用监督学习的方法来做。当然不得不说的是有时候数据表达的会非常隐蔽,也就是说我们手头的信息不是抽象的形式,而是具体的一大堆数字,这样我们很难凭借人本身对它们简单地进行分类。这个说的好像有点不大明白,举个例子说就是在bag of words 模型的时候,我们利用k-means的方法聚类从而对数据投影,这时候用k-means就是因为我们当前到手的只有一大堆数据,而且是很高维的,当我们想把他们分为50个类的时候,我们已经无力将每个数据标记说这个数应该是哪个类,那个数又应该是哪个类了。所以说遇到这种情况也只有无监督学习能够帮助我们了。那么这么说来,能不能再深入地问下去,如果有训练样本(或者说如果我们可以获得到一些训练数据的话),监督学习就会比无监督学习更合适呢?(照我们单纯地想,有高人教总比自己领悟来的准,来的快吧!)我觉得一般来说,是这样的,但是这要具体看看训练数据的获取。本人在最近课题的研究中,手动标注了大量的训练样本(当然这些样本基本准确了),而且把样本画在特征空间中发现线性可分性非常好,只是在分类面附近总有一些混淆的数据样本,从而用线性分类器进行分类之后这样样本会被误判。然而,如果用混合高斯模型(GMM)来分的话,这些易混淆的点被正确分类的更多了。对这个现象的一个解释,就是不管是训练样本,还是待聚类的数据,并不是所有数据都是相互独立同分布的。换句话说,数据与数据的分布之间存在联系。在我阅读监督学习的大量材料中,大家都没有对训练数据的这一假设(独立同分布)进行说明,直到我阅读到一本书的提示后才恍然大悟。对于不同的场景,正负样本的分布如果会存在偏移(可能是大的偏移,也可能偏移比较小),这样的话用监督学习的效果可能就不如用非监督学习了
- 简述逻辑回归与线性回归的区别
线性回归:用来做数值类型的回归。当问题是线性,或者偏向线性,假设条件又都满足(很难),又做好了数据预处理(工作量可能很大)时,线性回归算法的表现是挺不错的,而且在对模型很容易解释!但是,当问题不是线性问题时,普通线性回归算法就表现不太好了。
逻辑回归:,它主要是用来分析当因变量是分类变量的情况,且由于本身带有一丝的非线性特征,所以在处理非线性问题时,模型表现的也挺好(要用好它,需要做好数据预处理工作,把数据打磨得十分“漂亮”)。企业十分喜欢用它来做数据挖掘,原因是算法本身表现良好,而且对模型的输出结果容易解释(领导们都听得懂),不像其它高端的机器学习算法,比如Multiboost、SVM等,虽然很善于处理非线性问题,对数据质量的要求也相对较低,但它们总是在黑盒子里工作,外行人根本看不懂它是怎么运行的,它的输出结果应该怎么解释!(好吧,其实内行人也很难看懂!- - )
- 简述支持向量机
- 支持向量机和逻辑回归分别在什么情况下使用
两种方法都是常见的分类算法,从目标函数来看,区别在于逻辑回归采用的是logistical loss,svm采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。两者的根本目的都是一样的。此外,根据需要,两个方法都可以增加不同的正则化项,如l1,l2等等。所以在很多实验中,两种算法的结果是很接近的。但是逻辑回归相对来说模型更简单,好理解,实现起来,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些。但是SVM的理论基础更加牢固,有一套结构化风险最小化的理论基础,虽然一般使用的人不太会去关注。还有很重要的一点,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算量。
数据维度高svm
- 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
- 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
- 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
- 简述决策树
决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
- 简述朴树贝叶斯
朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。
- 简述强化学习
是让计算机实现从一开始什么都不懂, 脑袋里没有一点想法, 通过不断地尝试, 从错误中学习, 最后找到规律, 学会了达到目的的方法. 这就是一个完整的强化学习过程. 实际中的强化学习例子有很多. 比如近期最有名的 Alpha go, 机器头一次在围棋场上战胜人类高手, 让计算机自己学着玩经典游戏 Atari, 这些都是让计算机在不断的尝试中更新自己的行为准则, 从而一步步学会如何下好围棋, 如何操控游戏得到高分. 既然要让计算机自己学, 那计算机通过什么来学习呢?
- 简述神经网络
神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。
L1和L2正则化之间有什么区别
如何防止过拟合
什么是交叉验证,为什么使用它
描述各种图形(箱线图、直方图...)的差异,以及如何使用场景
如何在分布中发现异常
降维常使用的方法
PCA ,LDA