理论
理论强推阮一峰大神的个人网站
1.贝叶斯推断及其互联网应用(一):定理简介
2.贝叶斯推断及其互联网应用(二):过滤垃圾邮件
非常简明易懂,然后我下面的代码就是实现上面过滤垃圾邮件算法的。
前期准备
数据来源
数据来源于《机器学习实战》中的第四章朴素贝叶斯分类器的实验数据。数据书上只提供了50条数据(25条正常邮件,25条垃圾邮件),感觉数据量偏小,以后打算使用scikit-learn提供的iris数据。
这里需要说明下,贝叶斯推断和朴素贝叶斯不是同一个概念
数据准备
和很多机器学习一样,数据需要拆分成训练集和测试集。
拆分训练集和测试集的思路如下:
1.遍历包含50条数据的email文件夹,获取文件列表
2.使用random.shuffle()函数打乱列表
3.截取乱序后的文件列表前10个文件路径,并转移到test文件夹下,作为测试集。
代码实现:
# -*- coding: utf-8 -*-
# @Date : 2017-05-09 13:06:56
# @Author : Alan Lau (rlalan@outlook.com)
# @Language : Python3.5
# from fwalker import fun
import random
# from reader import writetxt, readtxt
import shutil
import os
def fileWalker(path):
fileArray = []
for root, dirs, files in os.walk(path):
for fn in files:
eachpath = str(root+'\\'+fn)
fileArray.append(eachpath)
return fileArray
def main():
filepath = r'..\email'
testpath = r'..\test'