一、词袋模型与one-hot编码:

词袋模型是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,一段文本可以用一个装着这些词的袋子来表示,这种表示方式不考虑文法以及词的顺序,只考虑所有的词的出现频率,每个词都是独立的。词袋模型本质是一种用机器学习算法对文本进行建模时表示文本数据的方法,也是 ngram 中的 unigram。

如:

有了词汇表,我们就可以根据词出现的次数来表示原来的两句话:

而one-hot即独热编码实际上在特征提取上是属于词袋模型,它使用使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。如对于西瓜数据集,我提取了根蒂与敲声两个特征使用one-hot编码进行测试,

最终得到如下编码:

它能解决分类器处理离散数据困难的问题,还能在一定程度上起到了扩展特征的作用。但它并不考虑词与词之间的顺序问题,同时由于在文本中,词的顺序是一个很重要的问题,但one-hot是基于词与词之间相互独立的情况下的,在多数情况中,词与词之间应该是相互影响的,这样就会丢失原有的文本信息。而且one-hot编码得到的特征是离散的,稀疏的,从而会带来维度灾难。

二、词频-逆文档频度(TF-IDF):

TF-IDF是一种用于资讯检索与文本挖掘的常用加权技术,可以用来评估一个词对于一个文档集或语料库中某个文档的重要程度。

TF(Term Frequency)即词频,对于某个词来说,如果它很重要,它应该在这篇文章中多次出现。

IDF(Inverse Document Frequency)即逆文档频率,出现频率最高的词就是这篇文档的关键词,但是一篇文章中出现频率最高的词肯定是“的”、‘是’、‘也’……这样的词,这些词显然不能反应文章的意思,此时就需要对每个词加一个权重,最常见的词如"的"、"是"、"在"给予最小的权重,较少见的但能反应这篇文章意思的词给予较大的权重,这个权重叫做逆文档频率。

而将TF和IDF这两个值相乘,就得到了一个词的TF-IDF值。

某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。但总体来说,TF-IDF算法的优点是简单快速,结果比较符合实际情况。缺点是,单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这会导致一些更有用的特征被忽略。

三、WORD2VEC词向量模型:

word2vec是用一个一层的神经网络,是把one-hot形式的稀疏词向量映射成为一个n维的稠密向量的过程。在 NLP 中,把 x 看做一个句子里的一个词语,y 是这个词语的上下文词语,那么这个模型的目的,就是判断 (x,y) 这个样本,是否符合自然语言的法则。而Word2vec 正是来源于这个思想,但它的最终目的,不是要把函数映射训练得多么完美,而是只关心模型训练完后的副产物——模型参数。并将这些参数,作为输入 x 的某种向量化的表示,这个向量便叫做词向量。word2vec里面有两个重要的模型-CBOW模型与Skip-gram模型:

word2vec的思路与自编码器思路比较相似,都是先基于训练数据构建一个神经网络。当这个网络训练好之后,并不是利用这个训练好的网络处理新任务,而真正需要的是这个模型通过训练数据所学得的参数,例如隐层的权重矩阵。word2vec算法每次迭代要通过梯度下降更新两个矩阵:隐藏层系数矩阵W1和输出层系数矩阵W2,如果词汇量V很大的时候,每次更新矩阵就要消耗巨大的资源,特别的是W2,还需要计算梯度。为了提高效率,word2vec有两种优化策略:Hierarchical Softmax和Negative Sampling。这两种策略出发点一致:不再显式使用W2矩阵,即不再完全计算或更新W2矩阵。

四、MultinomialNB多项式朴素贝叶斯:

朴素贝叶斯的算法分成以下两步:基于条件独立假设,计算联合分布和基于贝叶斯定理,针对输入x,求出后验概率最大的输出y。朴素贝叶斯算法是基于贝叶斯定理和特征条件独立假设的分类算法。贝叶斯定理其实就是一个非常简单的公式,如下:

多项式分布来源于统计学中的多项式实验,这种实验可以具体解释为:实验包括n次重复试验,每项试验都有不同的可能结果。在任何给定的试验中,特定结果发生的概率是不变的。在分类算法里面应用,可以转换成下面的表达式:

在scikit-learn库,根据特征数据的先验分布不同,提供了5种不同的朴素贝叶斯分类算法,分别是伯努利朴素贝叶斯,类朴素贝叶斯,高斯朴素贝叶斯、多项式朴素贝叶斯、补充朴素贝叶斯。

对于高斯朴素贝叶斯而言,适合用于特征变量是连续变量,符合高斯分布的数据。比如说人的身高,物体的长度。这种模型假设特征符合高斯分布。

多项式朴素贝叶斯,适合用于特征变量是离散变量,符合多项分布的数据。在文档分类中特征变量体现在一个单词出现的次数,或者是单词的 TF-IDF 值等,这个模型假设特征复合多项式分布,是一种非常典型的文本分类模型,模型内部带有平滑参数。

五、SVM支持向量机

SVM即支持向量机模型,它本质上是特征空间中最大化间隔的线性分类器,是一种二分类模型。以二维平面为例,就是找一条直线,把两堆不同的点分开。

但由于这种直线可能有无数条,所以需要选择最好的一条。支持向量机通过对数据进行二元分类,给出最大边距超平面作为决策边界。

SVM 想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。

对于支持向量机的两个参数C和σ: C=1/λ

  1. 当C较大时,相当于λ较小,可能会导致过拟合,高方差;
  2. 当C 较小时,相当于λ较大,可能会导致低拟合,高偏差;
  3. 当σ较大时,可能会导致低方差,高偏差;
  4. 当σ较小时,可能会导致低偏差,高方差。

同时在SVM中有一个极为重要的部分称之为核函数,因为低维空间映射到高维空间后维度可能会很大,如果将全部样本的点乘全部计算好,这样的计算量太大了,而引入核函数一方面减少了我们计算量,另一方面也减少了我们存储数据的内存使用量。在SVM中常见的核函数有线性核函数,多项式核函数与高斯核函数。

优点:

  1. 有严格的数学理论支持,可解释性强,不依靠统计方法,从而简化了通常的分类和回归问题;
  2. 能找出对任务至关重要的关键样本(即:支持向量);
  3. 采用核技巧之后,可以处理非线性分类/回归任务;
  4. 最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

缺点:

当支持向量的数量较大时,预测计算复杂度较高。

六、CNN卷积神经网络:

CNN是一种专门用来处理具有类似网格结构的数据的神经网络,它更擅长处理图像特别是大图像的相关机器学习问题。卷积网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。

CNN由五种结构组成,分别为输入层,卷积层,池化层,全连接层,Softmax层输出:

卷积层是构建卷积神经网络的核心层,它产生了网络中大部分的计算量。一个卷积神经网络的基本流程可以概括为:

卷积神经网络的优点是神经元之间共享卷积核,适合处理高维数据,而且无需手动选取特征,训练好权重,即得特征分类效果好。但缺点是需要调参,需要大样本量,而且并不知道没个卷积层到底提取到的是什么特征,对于相关参数为什么好并不能够人为的做出解释。

七、LSTM 长短期记忆网络

LSTM也即长短期记忆网络,它是一种特殊的循环神经网络,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。标准的RNN重复模块链结构为:

LSTM也具有这种链式结构,但是它的重复单元不同于标准RNN网络里的单元只有一个网络层,它的内部有四个网络层:

LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息,门能够有选择性的决定让哪些信息通过,而其中门的结构就是sigmoid层和一个点乘操作的组合。因为sigmoid层的输出是0-1的值,这代表有多少信息能够流过sigmoid层,0表示都不能通过,1表示都能通过。一个LSTM里面包含三个门来控制细胞状态。

总而言之,通过门控状态来控制传输状态,记住需要长时间记忆的,忘记不重要的信息;而不像普通的RNN那样只能有一种记忆叠加方式。对很多需要“长期记忆”的任务如具有前后关系的文本数据来建模来说是比较好的。但同时由于LSTM引入了很多内容,导致参数变多,也使得训练难度加大了很多。

——这是当时的报告,可能存在很多参考内容,如有侵权请联系我删除

一些常见的机器学习模型相关推荐

  1. 一文掌握常用的机器学习模型(文末福利)

    AI 科技大本营按:本文节选自微软亚洲研究院机器学习研究团队刘铁岩.陈薇.王太峰.高飞合著的<分布式机器学习:算法.理论与实践>一书.为了让大家更好地理解分布式机器学习,AI科技大本营联合 ...

  2. 一文掌握常用的机器学习模型(免费课程+送书福利)

    导读:人工智能和大数据时代,解决最有挑战性问题的主流方案是分布式机器学习. 近几年,机器学习在许多领域取得了前所未有的成功,由此也彻底改变了人工智能的发展方向,引发了大数据时代的到来.其中最富有挑战性 ...

  3. 一文掌握常用的机器学习模型

    AI 科技大本营按:本文节选自微软亚洲研究院机器学习研究团队刘铁岩.陈薇.王太峰.高飞合著的<分布式机器学习:算法.理论与实践>一书.为了让大家更好地理解分布式机器学习,AI科技大本营联合 ...

  4. ML:机器学习模型的稳定性分析简介、常见的解决方法之详细攻略

    ML:机器学习模型的稳定性分析简介.常见的解决方法之详细攻略 目录 ML:机器学习模型的稳定性分析简介.常见的解决方法 1.增强稳健性的通用方法 2.提高模型稳定性-适合泛线性模型(如逻辑回归)-幅度 ...

  5. logit回归模型_常见机器学习模型的假设

    > Photo by Thought Catalog on Unsplash 暂时忘记深度学习和神经网络. 随着越来越多的人开始进入数据科学领域,我认为重要的是不要忘记这一切的基础. 统计. 如 ...

  6. 你的机器学习模型为什么会出错?奉上四大原因解析及五条改进措施

    对开发者来说,目前有一系列的机器学习模型可供选择.雷锋网(公众号:雷锋网)了解,可以用线性回归模型预测具体的数值,用逻辑回归模型对不同的运算结果进行归类,以及用神经网络模型处理非线性的问题等等. 不论 ...

  7. 如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!

    作者 | CloudFactory 译者 | 天道酬勤 责编 | 徐威龙 出品 | AI科技大本营(ID:rgznai100) 高效的机器学习模型需要高质量的数据.训练你的机器学习模型并不是过程中的单 ...

  8. 掌握这些步骤,机器学习模型问题药到病除

    作者 | Cecelia Shao 编译 | ronghuaiyang 来源 | AI公园(ID:AI_Paradise) [导读]这篇文章提供了切实可行的步骤来识别和修复机器学习模型的训练.泛化和优 ...

  9. 反欺诈中所用到的机器学习模型有哪些?

    作者 | 微调(知乎ID微调,普华永道高级数据科学家) 反欺诈方向的实际应用很多,我有做过保险业反欺诈和零售快消业的欺诈检测,抛砖引玉的谈谈反欺诈项目的"道"和"术&qu ...

最新文章

  1. UA MATH565C 随机微分方程V Stationary Measure
  2. Oracle-使用awrrpt.sql生成AWR报告
  3. ITK:应用Cos图像滤镜
  4. flashcom网址收集
  5. laytpl遍历实体列表_Layui数据表格之获取表格中所有的数据方法
  6. sqlserver数据库中清空日志文件
  7. webdriver 的三种等待方式
  8. 前端笔记-vue cli引入sementic-ui(sementic-ui-vue)
  9. 3G 资费 流量套餐
  10. spring+ibatis+注解开发
  11. 最新CPC客户端安装教程,亲试有效
  12. com组件--GUID
  13. 华为煤矿军团首登央视 | 发布会金句爆棚
  14. Java 创建带有套接字的简单代理服务器示例
  15. 微机原理与接口技术课内实验-NUAA-Masm for Windows
  16. 从新手到专家:如何设计一套亿级消息量的分布式IM系统
  17. 过孔----通孔,盲孔,埋孔
  18. 线上tomcat服务器假死排查
  19. java gdal_gdal java环境配置
  20. python的tell和seek_4.2Python文件基本操作2:tell、seek

热门文章

  1. Windchill二次开发-自定义文件编号(2)
  2. 线性系统与非线性系统的稳定性
  3. aix oracle备份命令,Aix/Linux下自动备份oracle数据库
  4. 鸿蒙系统开发实战-开发一个聊天技巧软件堪称聊天神器
  5. 西门子PID程序西门子PLC 1200和多台G120西门子变频器Modbud RTU通讯,带西门子触摸屏
  6. Ubuntu18.04 通过命令修改ip地址(亲测有效)
  7. 淘宝、1688获得店铺的所有商品信息API调用展示
  8. 基于SSM企业员工测评系统
  9. 基于STM32驱动SG90舵机
  10. sql替换或删除数据库中某字段中的特定字符