机器学习和NLP面试总结
BAT机器学习面试1000题系列(第1~305题):https://blog.csdn.net/v_JULY_v/article/details/78121924
最大似然和贝叶斯分类的区别(回答:先验的有无),分别适用于什么场景:贝叶斯适用于小数据集,因为先验好求。
先验概率:事情没有发生之前事发生的概率,也叫经验概率。 后验概率:车祸已经发生了,酒驾的概率。
区别:最大似然估计属于概率派,假定参数固定,我们利用已知的数据来估计出参数。
而贝叶斯则认为参数不固定,同时符合一定的概率分布,而这个参数分布p(θ)需要人工设置。
所以,其两者的区别在于最大似然估计未考虑先验概率,而贝叶斯则考虑先验来设置p(θ),而两者适用范围也变成了:极大似然估计适用于数据大量,估计的参数能够较好的反映实际情况;而贝叶斯估计则在数据量较少或者比较稀疏的情况下,考虑先验来提升准确率。
参考:https://blog.csdn.net/liu1194397014/article/details/52766760
判别式算法和生成式算法各有哪些,区别是什么,分别适用于什么场景?
【判别模型Discriminative Model】
判别模型:也叫条件概率模型,估计的是条件概率分布,利用正负类样本和标签对数据进行分类。
主要特点: 寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。
优点: 分类边界更灵活,比使用纯概率方法或生产模型得到的更高级。 能清晰的分辨出多类或某一类与其他类之间的差异特征。在聚类、viewpoint changes, partial occlusion and scale variations中的效果较好 。
适用于较多类别的识别 。 判别模型的性能比生成模型要简单,比较容易学习
缺点:只能判别分类数据的类别,无法拟合出数据本身所在的整个场景的特性。
常见的判别模型:k近邻法、感知机、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法、条件随机场
【生成模型Generative Model】
又叫产生式模型。估计的是联合概率分布
主要特点:一般主要是对后验概率建模,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度。
优点: 实际上带的信息要比判别模型丰富, 研究单类问题比判别模型灵活性强 、模型可以通过增量学习得到
能用于数据不完整(missing data)情况 。
缺点: 学习和计算过程比较复杂
常见的生成算法: 朴素贝叶斯方法、隐马尔可夫模型
【两者之间的关系】 由生成模型可以得到判别模型,但由判别模型得不到生成模型。
参考:https://blog.csdn.net/chl033/article/details/5496542
最大熵模型理解?
最大熵原理:要求在概率分布中,将使得熵最大的概率分布作为最好的选择。所谓熵,可以理解为系统的不确定程度。熵越大,系统的不确定程度就越高。比如在掷骰子游戏中,在条件未知的情况下,因为无法知道具体是哪一面,其不确定程度程度最高,即熵最大;当加入可能是两点或四点条件后,其不确定性就降低了,因为只有两个选择可以选,这时的熵也就变小了。
使用HMM实现基于拼音的纠错?
语音识别返回的结果之所以与歌词库不匹配在于其上下文环境不符合歌词环境,但大部分文字是同音的,因此使用第三方java开源包将识别结果先转换为拼音形式,在使用HMM模型对拼音重新组合,从而得到符合歌词环境的字符串。
而在HMM模型中,几个比较重要的概念就是隐藏状态和可观测状态,以及隐藏状态到可观测状态的发射概率、隐藏状态间的转移概率。在这里,可观测状态明显就是拼音形式,而隐藏状态则是它背后的汉字形式,而在歌词环境中,汉字之间是有上下文联系的,也就是说汉字之间在歌词这个语料库中有其独特的转移概率,而每个汉字到其所有的发音都有一个发射概率,且和为1。但是在这里,由于使用的java包可以简单的认为每个字都是单音的,因此,对于每个字而言,它们都只有一个发音,而发射概率为1。
所以现在主要需要做的就是训练HMM模型,即计算字间的转移概率。
腾讯面试题——英文单词间的最短转换路径
1.问题描述
Question.现在有一本英文单词词典,里面大概放了2万个英文单词,这些单词全部由26个字母组成,现在提供一个基本操作,它可以是:
1) 增加一个字母:ear-->bear
2) 删除一个字母:down-->own
3) 修改一个字母:apple-->apply
三种中的任何一种。
下面,我随便从2万个单词中拿两个单词出来,请告诉我该如何通过最少次数的基本操作从第一个词变成第二个词,并且,每次基本操作后得到的新单词需要存在于词典中,即必须每步都是合法词汇,如果无法转换过去也需要告诉我,请帮我设计一个方案。(例如:age->bage->bag->big->pig,每一个单词都存在于词典中)
2.思路:
1.很多做文本的人可能会想到字典树,但是那个只能解决单词匹配问题,而这个问题属于类似社交网络的问题,因此不要绕进去那个思维里。
2.使用无向图结构来保存所有的单词,结合Levenshtein距离(最小编辑距离)来表征单词之间的可转换关系,关于Levenshtein距离的算法和思路,我会在另外一篇文章中介绍,这里简单来说就是一个字符串通过上述3种简单变换后得到另外一个字符串过程中经历的变换次数。
3.采取动态规划的方式去寻找图中两节点间的最短距离,但是这个情景中,节点若相邻则是双向的,并且只要相连那么距离都为1,因此可以直接选择BFS,即图的广度优先遍历来寻找一个节点到另外一个节点的最短路径。
机器学习中常用的距离。参考:https://my.oschina.net/hunglish/blog/787596
1. 欧氏距离(Euclidean Distance)
欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。
2. 曼哈顿距离(Manhattan Distance)
顾名思义,在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
3. 切比雪夫距离 (Chebyshev Distance)
国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。
4. 余弦距离(Cosine Distance)
几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一概念来衡量样本向量之间的差异。
5. 汉明距离(Hamming Distance)
定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。例如:
The Hamming distance between "1011101" and "1001001" is 2. The Hamming distance between "2143896" and "2233796" is 3. The Hamming distance between "toned" and "roses" is 3.
汉明重量:是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符串中非零的元素个数:对于二进制字符串来说,就是 1 的个数,所以 11101 的汉明重量是 4。因此,如果向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。
应用:汉明重量分析在包括信息论、编码理论、密码学等领域都有应用。比如在信息编码过程中,为了增强容错性,应使得编码间的最小汉明距离尽可能大。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。
. 6. 信息熵(Information Entropy)
以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。
机器学习和NLP面试总结相关推荐
- 机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现
网址:https://github.com/NLP-LOVE/ML-NLP 此项目是机器学习(Machine Learning).深度学习(Deep Learning).NLP面试中常考到的知识点和代 ...
- 学习规划|机器学习和NLP入门规划
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2019 ...
- 自然语言处理NLP面试问题
自然语言处理NLP面试问题 前言 一.机器学习相关模型 1.朴素贝叶斯 1-1.相关概念介绍 1-2.贝叶斯定理 1-3.贝叶斯算法的优缺点 1-4.拓展延伸 1-4-1.MLE(最大似然) 1-4- ...
- NLP面试宝典:38个最常见NLP问题答案一文get
新智元报道 来源:greatlearning 自然语言处理(Natural Language Processing,NLP)是指帮助机器理解和分析自然语言:它是利用机器学习算法从数据中提取所需 ...
- 机器学习与算法面试太难?
机器学习与算法面试太难? 来源: https://mp.weixin.qq.com/s/GrkCvU2Ia_mEaQmiffLotQ 作者:石晓文 八月参加了一些提前批的面试,包括阿里.百度.头条.贝 ...
- 资源 | 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)
编辑 | MingMing 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展.最近,我一直在网上寻找关于机器学习和NLP各方面的好资源,为了帮助到和我有相同需求的人,我整 ...
- 干货 | 请收下这份2018学习清单:150个最好的机器学习,NLP和Python教程
本文英文出处:Robbie Allen 翻译/雷锋网字幕组 吴楚 校对/ 雷锋网 田晋阳 机器学习的发展可以追溯到1959年,有着丰富的历史.这个领域也正在以前所未有的速度进化.在之前的一篇文章中,我 ...
- 超过 150 个最佳机器学习,NLP 和 Python教程
作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 我的博客:请点击这里 我把这篇文章分为四个部分:机器学习,NLP,Python 和 数学.我在每一部分都 ...
- 如何准备机器学习工程师的面试
原文链接:http://www.zhihu.com/question/23259302 如何准备机器学习工程师的面试 ?修改 我之前面试一些公司的机器学习或者数据挖掘工程师的职位.感觉自己准备的不够充 ...
最新文章
- 在Eclipse中制作SSH配置文件提示插件
- EntityFramework用法探索(二)CodeFirst
- iPad占据平板电脑网络使用量的85%,苹果继续主宰平板市场
- 重载(overload)与重写(override)的区别
- spring cloud各个微服务打包到docker容器内
- css设置文字上下居中,一行文字居中,两行或多行文字同样居中。
- Hadoop开发第2期---虚拟机中搭建Linux
- 数据库两个表有一个字段互相关联,根据这个关联字段更新一张表
- javascript设计模式-抽象工厂模式
- 抽象类与接口的区别(
- Asp.net网站如何播放Flv视频
- 运筹学 美国人在计算机上实现的四,运筹学试卷及答案
- mac vs 返回上一步_mac 后退一步 快捷键
- Thinkpad T470 内置电池问题
- 不是所有数学命题都是可以被证明或证伪
- C语言简单五子棋两人/五子棋人机
- 修复完浏览器后每次打开ie8都会自动弹出管理加载项,请问怎样才能不弹出
- KeyError: ((1, 1), ‘<i8‘)
- 程序员的五一是怎么过的?除了狗粮还是狗粮?
- 2019java面试3年_Java回顾#3 – 2019年对于社区而言最重要的事情