7.1 贝叶斯定理
任务:
给定如下的队伍信息
队0获胜的概率prob_win_0 = 0.65
队1获胜时队1是主场的概率prob_win_1_home_1 = 0.75
队0获胜时队1是主场的概率prob_win_0_home_1 = 0.3
请计算队1在客场取胜的概率p(Y=1|X=0),即prob_home_0_win_1,小数点保留三位。
预期结果
待完善代码
1 | ## 变量默认值代码 |
0.161
7.2 朴素贝叶斯
任务
给定经过分词处理后的正常邮件和垃圾邮件各25封,对邮件内容分词后形成了词库列表vocab,存储到vocab_list.txt中。
- 请自定义函数createVec(vocab, mail_vec),输入词库列表vocab,和单个分词后的邮件内容列表mail_text,输出参数为向量化文本列表mail_vec。该自定义函数的作用是,将mail_text向量化,维度为vocab中的各个单词。比如,mail_text中含有vocab中的单词b,mail_vec的维度b的取值即为1。
- 给定测试邮件内容列表test_mail,使用自定义函数返回向量化文本列表test_mail_vec。
给定数据的格式如下:vocab = [‘am’, ‘hacker’, ‘machine’,…]
预期结果
待补全代码
1 | import pandas as pd |
该邮件编码为1的位置的索引向量为
[309, 465, 353, 606, 635, 401, 359, 590, 286, 342, 569, 370, 363, 226]
7.3 朴素贝叶斯的参数估计
任务
从50封邮件中选取各20封正常邮件和垃圾邮件,经过分词处理后,组成邮件训练集列表train_data。已知训练集的标签列表为train_label,约垃圾邮件标记为1,正常邮件标记为0;已知词库列表为vocab:
- 使用createVector函数将train_data中的记录向量化,生成train_matrix;
- 自定义函数createNBClassifier(train_matrix, train_label)函数,计算判定所需要的p(xi|c),以及p(c);
给定数据的格式如下:
train_data = [[‘I’, ‘am’, ‘data’, ‘hacker’…], [‘data’, ‘mining’,’machine’],…]
train_label = [1,0,1,1,…]
vocab = [‘am’, ‘hacker’, ‘machine’,…]
预期结果
前序代码
1 | #7.2 createVector 函数列表推导式的调用 |
待补全代码
1 | import pandas as pd |
pc1= 0.5
pc0= 0.5
p1_vec
[-4.70411013 -5.21493576 -4.70411013 -4.70411013 -4.11632347 -6.31354805
-5.62040087 -5.62040087 -6.31354805 -5.62040087 -4.52178858 -5.21493576
-5.21493576 -5.62040087 -6.31354805 -5.62040087 -5.62040087 -5.21493576
-6.31354805 -4.92725369 -6.31354805 -5.62040087 -5.21493576 -5.62040087
-5.62040087 -5.62040087 -5.62040087 -5.62040087 -6.31354805 -5.21493576
-5.21493576 -5.62040087 -5.21493576 -5.62040087 -5.62040087 -5.21493576
-4.3676379 -3.67449072 -6.31354805 -4.92725369 -5.62040087 -5.62040087
-5.21493576 -5.21493576 -5.62040087 -5.21493576 -5.62040087 -5.62040087
-4.3676379 -5.62040087 -5.62040087 -4.70411013 -4.70411013 -6.31354805
-5.62040087 -5.21493576 -5.21493576 -5.62040087 -5.62040087 -5.62040087
-4.3676379 -5.62040087 -6.31354805 -5.21493576 -5.21493576 -4.70411013
-5.62040087 -6.31354805 -4.92725369 -6.31354805 -6.31354805 -5.62040087
-4.2341065 -6.31354805 -4.92725369 -5.21493576 -6.31354805 -5.62040087
-6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805 -6.31354805
-4.52178858 -5.62040087 -5.62040087 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -5.21493576 -6.31354805 -5.21493576 -5.21493576 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.21493576 -5.21493576
-5.62040087 -6.31354805 -6.31354805 -6.31354805 -4.52178858 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -5.62040087 -5.21493576 -5.62040087 -5.62040087 -6.31354805
-4.2341065 -5.62040087 -6.31354805 -6.31354805 -6.31354805 -4.92725369
-6.31354805 -6.31354805 -6.31354805 -4.92725369 -6.31354805 -6.31354805
-5.21493576 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -5.62040087
-6.31354805 -6.31354805 -6.31354805 -5.62040087 -5.21493576 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.21493576 -6.31354805
-6.31354805 -4.92725369 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -4.52178858 -6.31354805 -6.31354805 -5.21493576
-6.31354805 -6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805
-4.92725369 -5.62040087 -6.31354805 -6.31354805 -6.31354805 -5.62040087
-6.31354805 -6.31354805 -5.21493576 -6.31354805 -6.31354805 -4.52178858
-6.31354805 -5.21493576 -6.31354805 -6.31354805 -5.21493576 -5.21493576
-5.62040087 -6.31354805 -6.31354805 -4.52178858 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -5.62040087 -6.31354805 -5.21493576 -6.31354805
-6.31354805 -5.21493576 -5.62040087 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805
-4.52178858 -5.21493576 -6.31354805 -5.62040087 -6.31354805 -4.52178858
-6.31354805 -6.31354805 -4.52178858 -6.31354805 -5.62040087 -4.52178858
-6.31354805 -5.21493576 -5.62040087 -5.21493576 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.21493576
-6.31354805 -6.31354805 -6.31354805 -4.92725369 -5.62040087 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -5.62040087
-5.62040087 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -5.62040087
-5.21493576 -6.31354805 -6.31354805 -4.52178858 -4.52178858 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -5.21493576 -6.31354805 -5.21493576
-6.31354805 -6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -5.21493576 -5.21493576 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -4.52178858 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -4.52178858 -5.21493576 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087
-6.31354805 -6.31354805 -6.31354805 -4.52178858 -6.31354805 -5.62040087
-6.31354805 -6.31354805 -4.52178858 -4.52178858 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -4.52178858
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.21493576 -6.31354805
-6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -6.31354805 -4.52178858 -5.62040087 -6.31354805
-5.62040087 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.21493576 -5.21493576 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -4.92725369 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -5.21493576 -4.52178858 -5.62040087
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -5.62040087
-6.31354805 -6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -4.92725369 -4.52178858 -5.21493576 -6.31354805
-6.31354805 -5.62040087 -5.62040087 -6.31354805 -6.31354805 -6.31354805
-4.92725369 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -4.52178858 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -4.52178858 -5.21493576 -5.62040087 -4.52178858
-5.21493576 -5.21493576 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.21493576 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087
-5.62040087 -6.31354805 -4.52178858 -6.31354805 -4.92725369 -5.21493576
-6.31354805 -5.62040087 -6.31354805 -6.31354805 -5.21493576 -4.70411013
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -5.21493576
-6.31354805 -5.62040087 -5.62040087 -6.31354805 -5.62040087 -6.31354805
-6.31354805 -6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805
-4.70411013 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.21493576 -6.31354805 -6.31354805 -5.21493576 -6.31354805 -6.31354805
-5.21493576 -6.31354805 -4.92725369 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -4.52178858 -6.31354805 -5.62040087 -6.31354805
-6.31354805 -6.31354805 -4.3676379 -6.31354805 -6.31354805 -4.92725369
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -6.31354805
-6.31354805 -6.31354805 -5.21493576 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.62040087
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-6.31354805 -5.62040087 -6.31354805 -5.21493576 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-4.52178858 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -6.31354805 -5.21493576 -6.31354805 -5.62040087
-5.62040087 -6.31354805 -6.31354805 -6.31354805 -5.62040087 -6.31354805
-6.31354805 -6.31354805 -5.62040087 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805
-5.62040087 -6.31354805 -6.31354805 -5.21493576 -6.31354805 -5.62040087
-6.31354805 -6.31354805 -5.21493576 -5.62040087 -5.62040087 -6.31354805
-4.52178858 -6.31354805 -4.52178858 -5.21493576 -5.21493576 -6.31354805
-5.21493576 -5.21493576 -5.21493576 -5.62040087 -6.31354805 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -6.31354805 -6.31354805 -5.21493576
-6.31354805 -6.31354805 -5.62040087 -6.31354805 -5.62040087 -6.31354805
-5.62040087 -5.62040087 -6.31354805 -5.21493576 -5.62040087 -6.31354805
-6.31354805 -6.31354805 -6.31354805 -5.21493576 -5.62040087 -6.31354805
-6.31354805 -5.21493576 -6.31354805 -6.31354805 -6.31354805 -4.52178858
-6.31354805 -5.62040087]
p0_vec
[-6.09130988 -6.09130988 -4.48187197 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -6.09130988
-6.09130988 -5.3981627 -4.99269759 -6.09130988 -4.99269759 -6.09130988
-4.99269759 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -4.99269759
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988
-6.09130988 -5.3981627 -5.3981627 -5.3981627 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988
-6.09130988 -5.3981627 -5.3981627 -5.3981627 -4.70501552 -5.3981627
-5.3981627 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -6.09130988
-5.3981627 -6.09130988 -5.3981627 -6.09130988 -5.3981627 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -5.3981627 -6.09130988 -5.3981627 -5.3981627
-6.09130988 -5.3981627 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -5.3981627 -6.09130988 -4.99269759 -4.70501552
-4.99269759 -4.48187197 -6.09130988 -5.3981627 -6.09130988 -6.09130988
-4.99269759 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -6.09130988
-4.99269759 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627 -6.09130988
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-6.09130988 -6.09130988 -5.3981627 -5.3981627 -6.09130988 -6.09130988
-6.09130988 -5.3981627 -5.3981627 -6.09130988 -5.3981627 -4.99269759
-6.09130988 -6.09130988 -5.3981627 -5.3981627 -6.09130988 -5.3981627
-6.09130988 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -6.09130988
-5.3981627 -4.48187197 -6.09130988 -5.3981627 -6.09130988 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -6.09130988 -5.3981627 -6.09130988
-5.3981627 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-6.09130988 -6.09130988 -5.3981627 -5.3981627 -5.3981627 -6.09130988
-5.3981627 -5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -5.3981627 -6.09130988 -6.09130988
-6.09130988 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988
-6.09130988 -5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-5.3981627 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -4.48187197
-5.3981627 -5.3981627 -6.09130988 -4.99269759 -4.70501552 -4.48187197
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-4.99269759 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -6.09130988 -6.09130988 -5.3981627 -5.3981627 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -4.29955041 -6.09130988 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -4.99269759 -6.09130988 -6.09130988
-4.99269759 -5.3981627 -5.3981627 -6.09130988 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -6.09130988 -5.3981627 -5.3981627 -5.3981627 -6.09130988
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627
-5.3981627 -6.09130988 -5.3981627 -5.3981627 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -4.70501552 -6.09130988 -5.3981627
-6.09130988 -5.3981627 -6.09130988 -6.09130988 -4.99269759 -6.09130988
-6.09130988 -4.70501552 -5.3981627 -5.3981627 -4.99269759 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -4.99269759
-6.09130988 -6.09130988 -5.3981627 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -5.3981627 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -4.99269759 -5.3981627 -5.3981627
-5.3981627 -4.99269759 -6.09130988 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -6.09130988 -5.3981627
-5.3981627 -6.09130988 -6.09130988 -5.3981627 -4.99269759 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -5.3981627 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -6.09130988
-4.70501552 -4.99269759 -5.3981627 -6.09130988 -6.09130988 -6.09130988
-6.09130988 -6.09130988 -5.3981627 -5.3981627 -5.3981627 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -6.09130988 -6.09130988
-6.09130988 -5.3981627 -6.09130988 -4.01186834 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -5.3981627 -5.3981627 -6.09130988 -6.09130988
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627 -5.3981627
-6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627
-6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -4.70501552
-6.09130988 -4.70501552 -6.09130988 -5.3981627 -6.09130988 -5.3981627
-4.99269759 -6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -6.09130988
-6.09130988 -4.99269759 -5.3981627 -6.09130988 -4.99269759 -5.3981627
-5.3981627 -6.09130988 -6.09130988 -5.3981627 -6.09130988 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -6.09130988
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988 -6.09130988
-5.3981627 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -5.3981627 -5.3981627 -4.48187197 -5.3981627
-5.3981627 -4.99269759 -5.3981627 -5.3981627 -5.3981627 -4.99269759
-5.3981627 -6.09130988 -5.3981627 -6.09130988 -6.09130988 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -4.99269759 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -5.3981627 -4.99269759 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -4.99269759 -5.3981627 -5.3981627
-6.09130988 -5.3981627 -5.3981627 -6.09130988 -4.70501552 -6.09130988
-5.3981627 -5.3981627 -5.3981627 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-6.09130988 -4.99269759 -5.3981627 -6.09130988 -5.3981627 -6.09130988
-6.09130988 -5.3981627 -5.3981627 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -6.09130988 -4.99269759
-6.09130988 -5.3981627 -6.09130988 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -6.09130988 -6.09130988 -6.09130988 -5.3981627 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988
-5.3981627 -5.3981627 -6.09130988 -6.09130988 -6.09130988 -5.3981627
-6.09130988 -4.99269759 -4.99269759 -6.09130988 -6.09130988 -4.99269759
-5.3981627 -4.48187197 -4.99269759 -6.09130988 -6.09130988 -5.3981627
-5.3981627 -5.3981627 -5.3981627 -5.3981627 -5.3981627 -6.09130988
-5.3981627 -6.09130988]
7.4 贝叶斯估计
任务
将剩余的10封邮件内容向量化,组成测试集邮件内容列表test_matrix。给定训练集拟合生成的朴素贝叶斯模型返回预测测试集需要的概率p1_vec,p0_vec,pc1和pc0,以及测试集的真实标签列表test_label。
- 自定义函数predict(test_data, p1_vec, p0_vec, pc1, pc0)函数,判断输入的邮件是否为垃圾邮件;
- 使用自定义的预测函数,对test_data进行预测,输出预测标签列表pred_label;
- 根据pred_label和test_label计算朴素贝叶斯模型的错误率error_rate。
给定的数据格式如下:
test_data = [[0,0,0,1,0,0,…], [1,0,0,0,1,0,…]]
test_label = [0,0,1,1,…]
p1_vec = np.array([-0.02, -0.003, …])
p0_vec = np.array([-0.02, -0.003, …])
pc1 = 0.5
pc0 = 0.5
预期结果![](
前序依赖代码及数据
- 用于向量化邮件的词典数据
- 前序学习出的类条件分布概率 p1_vec,p0_vec,及类别分布先验 pc1,pc0
- 用于向量化邮件的函数
前序代码操作步骤:
- 运行7.2节中的 createVector()
- 运行7.3节中的 p1_vec, p0_vec, pc1, pc0 = createNBClassifier(train_matrix, train_label) 获得类条件分布概率 p1_vec,p0_vec,及类别分布先验 pc1,pc0
1 |
|
预测错误率为
0.4
真实标签为
[0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
预测标签为
[1. 1. 1. 1. 0. 1. 1. 1. 1. 1.]
预测标签是否不一致向量
[1. 1. 1. 1. 0. 0. 0. 0. 0. 0.]