回到深度学习(基础知识回收)
想回到深度学习怀中~
先从之前学过的简单的基础理论入手开始学习
Lecture 1 数据集处理
-
数据集处理
-
对于得到的数据集如何变成可处理的数字
例如文本
-
独热矩阵 one-hot矩阵
只有0和1的存在
对于每一条训练数据,每个特征值存在即1,不存在即0
-
TF矩阵 Term Frequency
在每一条训练数据中,每一个特征值出现的次数归一化后的频率
该特征即出现次数m/总出现特征数
-
TF-IDF矩阵
IDF:逆向文件频率假设总共有 |D| 篇文章, 表示出现了该单词的文章总数,IDF值的计算公式如下:
+1即防止出现次数为0
TF-IDF即二者相乘
-
稀疏矩阵三元顺序表
即用三元顺序表表示稀疏矩阵节省空间
Lecture 2 K近邻与朴素贝叶斯 ——分类和回归
分类:预测离散问题,答案为yes or no 如中午吃饭吗 吃或者不吃
回归:预测连续问题,如中午吃饭吃多少钱
KNN算法
- 核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
对于文本集来说:输入=原始文本 输出=类标签(如吃饭 吃、不吃)原则=多数投票
根据输出结果分为二元或者多元分类
-
下面分析情感文本为例进行KNN实现分类和回归
-
对于文本,首先读入后每一句作为一个训练文本,并将每个单词拆解为单独的特征
-
KNN分类!
-
Step 1
将文本单词构成one-hot矩阵进行训练
-
Step 2
计算相似度
计算测试集得到的test文本矩阵距离其他train数据的距离
本文使用欧式距离(该距离可为欧式、曼哈顿等)
欧式距离计算
若K=1则最近的是train1是happy
若K=3则最多出现的是还是happy -
KNN回归!
输入=原始文本
输出=概率 即连续数据输出
- Step1
将训练集和测试集构成one-hot矩阵
计算test1与每个train的距离,选取TopK个训练数据 把该距离的倒数作为权重,计算test1属于该标签的概率
-
对于KNN算法还有许多能够优化和改进的方法
- 采用不同的距离度量方式
- 通过验证集对参数(K值)进行调优 ,一般取K=√N N为训练集总训练个数
- 对权值进行归一化 一般归一化的两种方法
NB朴素贝叶斯算法
- 首先介绍贝叶斯定理
-
条件概率:就是事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A∣B) ,读作“在B发生的条件下A发生的概率”
-
联合概率:表示两个事件共同发生(数学概念上的交集)的概率。A与B的联合概率表示为联合概率。p(AB)= P(A∣B)P (B) = P(B∣A)P(A) , 若 A B 相 互 独 立 , P(AB) = P(A)P(B)
-
全概率公式:
-
贝叶斯定理:
-
- 朴素贝叶斯方法是基于贝叶斯定理和特征条件独立假设的分类方法。通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类
朴素贝叶斯方法是一种生成模型,对于给定的输入x
通过学习到的模型计算后验概率分布 P ( Y = c k ∣ X = x ),将后验概率最大的类作为x的类输出
所以拆解P(X=x|Y=ck)则
注意一点,朴素贝叶斯需要样本是独立的
-
朴素贝叶斯的分类
-
对于情感类文本
-
计算P(thanks|joy)的模型分为三种(高斯,伯努利,多项式),本文使用多项式模型
-
当训练集文本较短时,我们更倾向于使用伯努利模型。而文本较长时,我们更倾向于多项式模型,因为,在一篇文档中的高频词,会使该词的似然概率值相对较大,因为去除停用词对多项式模型影响很大,而对伯努利模型影响很小
-
而高斯模型则是拟定该分布为正态分布
-
如上图,计算出joy的概率为0,相同的计算出sad的概率应该是1/9,所以认定label为sad
朴素贝叶斯的回归
-
Step 1 对于情感类文本,先处理为TF 矩阵
此时test1 包含了x3 和x4 即 we succeed 两个单词
则Step 2 此时计算X3是joy和X3是sad的概率
最后Step 3 再做一个归一化(原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价)
最后,额外再补充,拉普拉斯平滑 -
在计算test的joy的时候,如果出现其中一项譬如p(x3|joy,d1)和(px4|joy,d2)都为0的情况
-
也即是由于训练量不足,导致p(joy|X3)=0,仅仅因为单词不皆存在于2个训练样本导致概率=0会严重影响训练质量
-
引入拉普拉斯平滑
复习路线
-
本篇就到这,首先复习了两节课程,剩余的课程慢慢复习~
- 这就是我的复习路线 JOJO