fastText、决策树、EM算法

一、 fastText

1、 fastText是faceBook开源的一个词向量与文本分类工具。
2、 fastText的介绍及其与Word2Vect的比较参见:https://blog.csdn.net/qq_16633405/article/details/80578431
3、 安装fastText时遇到的坑:Microsoft visual c++ 14.0 is required 问题。用离线安装没有用。只能乖乖装Microsoft visual c++ 14.0了,点击链接下载安装即可:https://pan.baidu.com/s/1WaBxFghTll6Zofz1DGOZBg

1、fastText被用于两个不同任务:

(1)有效文本分类 :有监督学习
(2)0学习词向量表征:无监督学习
参见博文:https://blog.csdn.net/zhouguangfei0717/article/details/81003455

二、决策树的生成及剪枝操作

在这里插入图片描述
决策树的评价:
在这里插入图片描述

1、决策树的生成算法

1、 信息增益( ID3)
数据本身是有个熵值的,当一个特征确定之后系统的熵值减小,对于整颗决策树而言,熵值从根节点到叶子结点时逐渐降低的。
(1)对于纯的叶子结点来说,熵值为0;
2、 增益率(C4.5)
3、 Gini指数(CART)
具体计算公式参见周志华《机器学习》第四章

2、剪枝

剪枝操作防止过拟合的一种方法。包括预剪枝和后剪枝。

2.1、预剪枝

(1)、 边生成决策树边考虑。设定叶子结点中包含的最少样本,小于该值就不再进行分枝操作。

下面是指定叶子节点中最小的样本数目,如果叶子节点样本数目小于3个就不分了
 clf = DecisionTreeClassifier(criterion='entropy', min_samples_leaf=3)

(2)、 给定数的高度或深度

 如下设置树的最大深度为3
 clf = DecisionTreeClassifier(criterion='entropy', max_depth=3)

(3)、 给定熵值,如果熵小于某个数就不再进行结点分裂。

2.1、 后剪枝

1、 总体思路:
(1)先计算出所有非叶子结点的剪枝系数,根据剪枝系数由小到大开始剪枝,得到T_0,T_1…T_root等一系列剪枝后的决策树.
(2)在验证集上对上面生成的决策树做评价,选择损失函数最小的树。

2、 剪枝系数的确定
(1)H(t): 某叶子结点的熵
(2)Nt:叶子节点中的样本个数
(3)|T_leaf|:叶子结点的数目
(4) α:属于[0,+无穷)

3、对决策树的所有非叶子结点计算α,(以非叶子结点 r 为例,以 r 为根的子树)
(1)剪枝后,只剩 r 一个结点,C(r)= 该节点中的样本个数 * 该结点的熵 + α
(2)剪枝前,R是一颗以 r 为根的树,C(R) = “看下图”
(3)令两者相等,即可求得该结点的 α。
(4)由此可求的所有非叶子结点的 α。
在这里插入图片描述

三、EM算法

搬运:参见:https://www.cnblogs.com/pinard/p/6912636.html

1、原理

我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。怎么办呢?这就是EM算法可以派上用场的地方了。

EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。由于我们之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。不过没关系,我们基于当前得到的模型参数,继续猜测隐含数据(EM算法的E步),然后继续极大化对数似然,求解我们的模型参数(EM算法的M步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。

从上面的描述可以看出,EM算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E步和M步。一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。

一个最直观了解EM算法思路的是K-Means算法,见之前写的K-Means聚类算法原理。在K-Means聚类时,每个聚类簇的质心是隐含数据。我们会假设KK个初始化质心,即EM算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。重复这个E步和M步,直到质心不再变化为止,这样就完成了K-Means聚类。

当然,K-Means算法是比较简单的,实际中的问题往往没有这么简单。上面对EM算法的描述还很粗糙,我们需要用数学的语言精准描述。

2、EM算法流程

由于概率分步中不仅有分步参数,还有隐含参数 Z,因此用最大化似然的方法无法求出分步参数,因此假设隐含参数服从一个分步Q(Z),然后将似然函数转化为Jensen不等式。将最大化似然转换成最大化不等式右边式子的值,求Z(E步),再已知隐含变量 Z 的条件下,求分布参数(M步)。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值