朴素贝叶斯算法实验
实验三:朴素贝叶斯算法实验
|博客班级|https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-MachineLearning|
|----|----|----|
|作业要求|https://edu.cnblogs.com/campus/czu/classof2020BigDataClass3-MachineLearning/homework/12858|
|学号|201613324|
【实验目的】
理解朴素贝叶斯算法原理,掌握朴素贝叶斯算法框架。
【实验内容】
针对下表中的数据,编写python程序实现朴素贝叶斯算法(不使用sklearn包),对输入数据进行预测;
熟悉sklearn库中的朴素贝叶斯算法,使用sklearn包编写朴素贝叶斯算法程序,对输入数据进行预测;
【实验报告要求】
对照实验内容,撰写实验过程、算法及测试结果;
代码规范化:命名规则、注释;
查阅文献,讨论朴素贝叶斯算法的应用场景。
一、1.朴素贝叶斯算法(不使用sklearn包),对输入数据进行预测
1.导包
2.读取数据
3.数据处理:
4. 实验预测:
5.输出结果:
二.朴素贝叶斯算法(使用sklearn包),对输入数据进行预测
dataset=[['0','0','0','0','0','0','1'], ['1','0','1','0','0','0','1'], ['1','0','0','0','0','0','1'], ['0','0','1','0','0','0','1'], ['2','0','0','0','0','0','1'], ['0','1','0','0','1','1','1'], ['1','1','0','1','1','1','1'], ['1','1','0','0','1','2','1'], ['1','1','1','1','1','2','0'], ['0','2','2','0','2','1','0'], ['2','2','2','2','2','2','0'], ['2','0','0','2','2','1','0'], ['0','1','0','1','0','2','0'], ['2','1','1','1','0','2','0'], ['1','1','0','0','1','1','0'], ['2','0','0','2','2','2','0'], ['0','0','1','1','1','2','0'] ] #青绿:0 乌黑:1 浅白:2 # 蜷缩 0 稍蜷 1 硬挺 2 # 浊响 0 沉闷 1 清脆 2 # 清晰 0 稍糊 1 模糊 2 # 凹陷 0 稍凹 1 平坦 2 # 碍滑 0 软粘 1 硬滑 2 # 是 1 否 0 labels=['色泽','根蒂','敲声','纹理','脐部','触感','好瓜']
from sklearn.naive_bayes import GaussianNB from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test = train_test_split(data.T,target,random_state=1) #按比例分割数据 nb_clf = GaussianNB() #实例化模型 nb_clf.fit(x_train,y_train) #模型训练 a=nb_clf.predict(x_test) #预测 acc_score = nb_clf.score(x_test,y_test) #查看模型分数
x_train
x_test
三、朴素贝叶斯算法的应用场景
1.文本分类、垃圾文本过滤、情感判别 2.多分类实时预测 3.推荐系统