37-拓展-反垃圾邮件系统-贝叶斯算法
作者:大禹老师 · 时长 14:16 · 发布于 2023-01-05

视频文字稿
大家好我是喜欢数学的大禹老师咱们这一点呢给大家去讲反垃圾邮件系统贝耶诗算法那么咱们一听到这个外国的人呢咱们就头疼对吧贝叶斯定理是咱们高中数学学到的定理好是英国的数学家贝叶斯发展出来的那么咱们看一下咱们的贝叶斯过滤算法利用到了咱们学的贝叶斯定理
那么有些同学呢投掷撞墙在上课期间一听到这个为什么呢哎这个完全听不懂那个没关系的咱们这个课是拓展课如果你能听懂的话说明你的数学基础还算可以如果你听不懂你大概能听懂多少哎
了解一下这些名词就可以了就是听一个乐儿好那么咱们想一下你在高中的时候高考之前是不是有一个大题是讲条件概率的是条概率题或者统计题那么呢咱们给大家出一个题就是求在事件a 的发生下事件b 的概率这个什么条件概率对吧
好不是组合概率是条件概率好那么p b 是a b 在a 的发生下等于p a b 除以p b 什么你不知道好那么如果你不知道的话你可以翻一下你高二的书数学书应该是高二有的教程可能写到高一了
好那么这个是事件组合对吧好那么如果这个这个概率呢咱们如果你听不清楚没关系咱们只需要把这个流程给了解一下哎这个你就把它当成一个公式好那么咱们这一节呢给大家去讲
的就是贝叶斯算法这个邮件呢怎么用什么样的业务流程去解决这个贝叶斯算法的公式贝叶斯公式呢给大家进行写到这里面了全概率公式假定有这个p b i 存在a 然后等于pa 乘以bi 除以b 除以p a 等于p b 乘以p 口误:口误:P(A|B)应念作:A在B发生的情况下的概率口误:P(A|B)应念作:A在B发生的情况下的概率 口误:P(A|B)应念作:A在B发生的情况下的概率
口误:P(A|B)应念作:A在B发生的情况下的概率那么这个公式呢你可以研究一下因为讲的话你们讲的有一些同学可能是不清楚好你清楚的话同学呢你去了解一下你要看不清楚的话直接把它pass 掉因为呢咱们只有这个地方用到了这个贝叶斯公式好
那么咱们看一下咱们的这个仿模墙的贝叶斯算法的整个流程大宇老师呢花了半个小时把这个图呢给大家做出来了第一个咱们开始获取邮件的主体的独立字段什么是独立自传好那么大家知道不知道在你语文里面学的虚词和实词虚词对吧好这个实词就是咱们的独立自传
就是有意义的词汇那也虚词比如说的这个介词的这个介词的吗是介词什么好这个的呀这个呀这个好和呀这个铁呀还有雨呀飞呀这这这这这些连词连词介词这这些词大家可以看一下
语文因为我没有背这个自然没有背这个语法课就是这个语文课所以说可能讲不好但是咱们知道这个实词就是有意义的词也称为咱们这里呢独立自传这个虚词呢哎咱们就直接忽略掉了获取邮件主体就是标题和邮件内容呢独立字数也就是实词将获取的独立字段的指纹特征转化为哈希数
好咱们有可有可以转化的可以转化的他比如说比如说你发邮件的时候呢这个这个放鞭炮鞭炮这个词还是个实词吧或者放鞭炮它是一个职位放鞭炮这个词是不是一个实时那么这实时呢它有一个字段的代码可以转化为十六进制的哈希树咱们后面会给大家讲哈希树你先知道这个哈希树就可以
这个哈希树呢咱们专业术语称为指纹特征就类似你的指纹我转化成一串儿树好哈希树那么转化为哈希树上之后呢这个放鞭炮哎咱们把我们总共就是把这里面见到这个放放鞭炮咱们就把它转为一个哈希鼠那么哈希鼠是唯一的
那么指纹特征出现的频率t i 好比如说这个放鞭炮出了这个武士那么就是放鞭炮这个放鞭炮假设我是t 一等于放鞭炮出现了五次那么等于这个t 放鞭炮出现了五次好大家这回明白了吧哎这个t 你可以比如说我把这个邮件里边的独立字段做
一个排名就是不是转化为哈希树了嘛然后哈希树出现的次数做一个排列那么呢假设放鞭炮出现了五次我把它排成第一个放鞭炮出现了五次这个哈希数呢t 一等于放鞭炮然后呢出现了五次等于t 一等于五那么t 二呢可能是这个放过程解过程解呢出现了三次t 二等于三
那么t 三呢哎等于个几呢比如说t 三呢等于到这个小明对吧好小明小明呢哎出现了这个两次哈咱们都等于零那么t 四呢咱们出现这个次数可能我设置的太低了好那么这个呢咱们就是统计指纹特征出现的频率
好那么是不是一下子明白了他们就是把这些实时转化为这个数字的形式哈希树的形式因为电脑处理这个哈希树比较快十六进制的哈希树对不对好那么十六进制的哈医术呢十六进制哈医术一般情况下是十六进制吧应该是应该是十六进制那么十六进制的
好那么统计指纹特征出现的频率然后呢咱们去对比咱们有两个一个呢是哈希比较急哈希标记对哈希标记然后呢咱们哈希标记有两个分两类一个呢是垃圾邮件咱们提前训练好的哈希表级m 这个垃圾邮件哈希表几n 好
它的这个哈希表里面有多少尺多少个这个频率就比如说比如说这个四件t 在这个哈希表里面有多少多少次或者说这个哈希表有多少个表哎这个表呢就成为垃圾邮件的哈希表m 好这个垃圾邮件成为n 咱们做的一个假设要提前训练好的就是人判断一下这认为是垃圾邮件
那么垃圾邮件的这个哈希表呢建建立好归归总为那个垃圾邮件的这个哈希表然后呢这个非垃圾机构邮件是非垃圾邮件的含义表是提前做好的这个样本训练的这个样本好那么咱们知道了之后呢咱们用这个去计算计算两个概率第一个概率呢非垃圾邮件的概率通过什么呢通过咱们咱们刚才算的这个指纹特征出现
的频率与非垃圾邮件的表级这个频率值呢除以m 出现的次数等于呢等于它是非垃圾邮件的概率同时呢咱们用这个频率级呢除以垃圾邮件的哈希表级的这个n 值然后得出垃圾邮件的概率求两个对求两个就是这封邮件的这页统计指纹特征的这一页集合然后除以这个垃圾邮件的这个m 等于这个非垃圾邮件等于非垃圾邮件概率然后在与这个哈希表进行交集的时候
得到垃圾邮件的概率最后呢咱们是不是有很多词这也很多词呢就可以建立新表了每一个词哎去比对了之后呢咱们建立一个新表那么呢非垃圾邮件呢这个p e 呢得到一个p e t i 的这个哈希新表那么这个垃圾邮件概率呢咱们得到了p t 二的哈希表的四加二那么这两个表这两个表加在一起
是个哈希表对吧加在一起两个单独的这个子分类表加在一起是一个新的哈希表好那么这两个新的哈希表呢就是你的这个只这个邮件主体的哈希表哎就是通过咱们样本的含义表进行比对分析出来的两个新的排序表儿然后呢咱们用咱们的用上面的两个事件的
概率组合公式求出它们的复合概率公式i 的可能性好这个垃圾邮件的可能p p 垃圾对吧好这个p bat p b 吧好这个b 是败的是败的就是垃圾邮件的意思好那么垃圾邮件p d p p 的值呢
咱们就用到这个b s 这个公式好这个公式呢刚才呢给大家列举出来了好如果这个p d 呢超过一定的法值阈值这个念阈值吧这个这个不念法念阈值好超过一定的阈值就判定为垃圾邮件如果低于某个一邮件的位置呢咱们就认为正常邮件那么这个呢就是咱们利用贝叶斯算法反垃圾邮件系统的一个算法
那么具体如何测试呢咱们先来简单的给大家讲一下这里有配件式公式用到了这里求这个组合公式首先呢咱们测试的时候这是不是有个流程比如说呢哎咱们是不是可以伪造这个指纹的这个概率特征就是咱们去测试这个反垃圾邮件系统的时候咱们可以根据这个就是不写邮件咱们直接输出这个指纹特征就是哈希树呢
我随机抽两个哈希表对不对好这个或者说呢我随机找一些词的关键词频率直接呢输出这个频率来验证这个哈希表咱们直接得出一个结果看这个结果的概率值呢算的是否正确然后不同的概率值呢会建立两个不同的卡里奇苗然后咱们通过这个程序的输出
输出了两个哈希新表那么最后呢通过这个两个哈希表去计算它的这个垃圾邮件的可能性的这个阈值这个阈值那么根据这个阈值呢怎么去判定这个垃圾油价所以说呢咱们有几点第一点呢就是升级的这个频率咱们可以控制那么咱们就可以依不同的这个涉及不同的正常流和异常流同时呢咱们去统计非垃圾邮件的概率和
垃圾邮件的概率的话咱们就得到两个值也可以通过这个频率进行操控怎么得到两个表两个表呢咱们可以得到这个比如说是哎咱们可以可以去得出的不同的值根据这个结果最后呢咱们去设计的结果是是超过这个这个算的这个概率超过这个阈值和低于这个阈值和刚好等于这个阈值
那么咱们可以如果是默认测试的话咱们只需要找出三个测试用例就可以就是这个大于这个阈值然后这个低于这个阈值还有刚好等于这个阈值还有呢是百分之百就是这个p b 的概率咱们可以设置为百分之百就是全部是垃圾储备垃圾池概率是一你可以想一下能不能得出来这样的一个含义
表就是说没有这个这个非垃圾这个概率呢为零这个垃圾概率为一可以在极端的条件下设置设置了之后咱们得出一个概率那么还有零的情况下就是哎咱们就可以通过这个边界值的分析方法得出咱们的外源测试的一个流程也就是场景分析法
对场景分析法没问题好就是这儿好那么咱们知道了这个被因式算法在实际工作中呢你会不会用到呢你很大的可能呢接触不到除非呢你转行到这个算法工程师你是开发也可能你遇不到遇不到你遇不到好你是测试开发也可能遇不到
除非你是算法工程师或者说兼兼职了这个算法工程师的职位所以说呢你不用担心只需要哎简单的去知道哎他有这样的一个流程就可以了好那么这个呢就是咱们的拓展课反垃圾邮箱如何测试之前呢咱们给大家讲了一个冒烟咱们呢加上这个贝叶斯过滤算法呢也跟大家去讲了如何进行这个
贝叶斯算法的这个过滤的测试咱们如何设计测试用例就用场景法或者是路径分析法去分析好那么咱们下一节呢给大家去讲质量估算还有风险评估