朴素贝叶斯分类实验

一.实验目的 
1.了解朴素贝叶斯算法基本原理; 
2.能够使用朴素贝叶斯算法对数据进行分类 
二.实验内容 
利用贝叶斯算法或者决策树算法进行数据分类操作 数据集:汽车评估数据集

关于朴素贝叶斯原理和案例可以看西瓜书详解:https://zhuanlan.zhihu.com/p/79527876

数据集:

import pandas as pddata = pd.read_csv("car.csv")
print(data.shape) #行数列数
print(data.dtypes) #所有列的数据类型
data.head()

# 输出各列的唯一值
m=[]
for i in data:m.append(list(set(data[i].values.tolist())))print(list(set(data[i].values.tolist())))

# 标注字典
Dict01={'low':1,'med':2,'high':3, 'vhigh':4}
Dict2={'2':0,  '3':1,  '4':2,  '5more':3}
Dict3={'2':0, '4':1,'more':2}
Dict4={'small':0,'med':1, 'big':2}
Dict5={'low':0,'med':1,'high':2}
Dict6={'unacc':0,  'acc':1,  'good':2,  'vgood':3}
L=[Dict01,Dict01,Dict2,Dict3,Dict4,Dict5,Dict6]
# 获取列名
columns=data.columns.tolist()
# 数据标注
for i in range(len(columns)):data[columns[i]] = data[columns[i]].map(L[i])
data.head()


加上预测完整代码:

import pandas as pddata = pd.read_csv("car.csv")
# 标注字典
Dict01={'low':1,'med':2,'high':3, 'vhigh':4}
Dict2={'2':0,  '3':1,  '4':2,  '5more':3}
Dict3={'2':0, '4':1,'more':2}
Dict4={'small':0,'med':1, 'big':2}
Dict5={'low':0,'med':1,'high':2}
Dict6={'unacc':0,  'acc':1,  'good':2,  'vgood':3}
L=[Dict01,Dict01,Dict2,Dict3,Dict4,Dict5,Dict6]
# 获取列名
columns=data.columns.tolist()
# 数据标注
for i in range(len(columns)):data[columns[i]] = data[columns[i]].map(L[i])# 预测
predict=[1,0,2,1,1,0]# 返回类别标签
labels=['unacc','acc','good','vgood']
classes = list(set(data.iloc[:,-1].tolist()))
result=[]
for i in range(len(classes)):test_result=[]test_data1=data[data['acceptability']==classes[i]]P1=test_data1.shape[0]/data.shape[0]print("原数据集第"+str(i)+"类的概率:",P1)for j in range(len(predict)):test_data2=test_data1[test_data1[columns[j]]==predict[j]]if test_data2.shape[0]==0:P2=1else:P2 = test_data2.shape[0]/test_data1.shape[0]print("在第"+str(i)+"类的条件下"+"X"+str(j)+"的概率:",P2)test_result.append(P2)print(test_result)multiply = 1.0for k in test_result:multiply *=kpro = multiply/P1print("属于第"+str(i)+"类的概率:",pro)result.append(pro)print("\n")print("属于各类的概率:",result)
max_index = result.index(max(result,key = abs))
print("测试结果:属于"+labels[max_index]+"\t概率为:"+str(result[max_index]))

预测结果:

数据挖掘实验——python实现朴素贝叶斯分类相关推荐

  1. 使用 Python 进行朴素贝叶斯分类

    定义 在机器学习中,贝叶斯分类器是一种简单的概率分类器,它基于应用贝叶斯定理.朴素贝叶斯分类器使用的特征模型做出了很强的独立性假设.这意味着一个类的特定特征的存在与其他所有特征的存在是独立的或无关的. ...

  2. 【数据挖掘实验】利用朴素贝叶斯方法对百万搜狐新闻文本数据进行分类

    一.概述 本实验做的是一个很常见的数据挖掘任务:新闻文本分类. 语料库来自于搜狗实验室2008年和2012年的搜狐新闻数据, 下载地址:https://www.sogou.com/labs/resou ...

  3. 朴素贝叶斯python实现预测_Python实现朴素贝叶斯分类器的方法详解

    本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...

  4. 朴素贝叶斯分类器python_朴素贝叶斯分类器及Python实现

    贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先验概率分布(边缘概率)是指基于主观判断而非样本分布的概率分布,后验概率(条件概率)是根据 ...

  5. [转载] 朴素贝叶斯python实现预测_Python实现朴素贝叶斯分类器的方法详解

    参考链接: Python朴素贝叶斯分类器 本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进 ...

  6. 朴素贝叶斯分类实验(垃圾邮件分类以及垃圾短信过滤数据集)

    文章目录 贝叶斯公式 先验概率 后验概率 贝叶斯定理 朴素贝叶斯分类器 拉普拉斯修正 防溢出策略 实现垃圾邮件分类 实现垃圾短信过滤(SMS数据集) 实验总结 贝叶斯公式 先验概率 P(cj)P(c_ ...

  7. 朴素贝叶斯分类器原理介绍及python代码实现

    目录 频率学派和贝叶斯学派 朴素贝叶斯分类器 python实现朴素贝叶斯分类器 频率学派和贝叶斯学派 说起概率统计,不得不提到频率学派和贝叶斯学派,通过对概率的不同理解而演变的两个不同的概率学派. 频 ...

  8. 基于python的贝叶斯分类器_Python实现朴素贝叶斯分类器的方法详解

    本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...

  9. 河北工业大学数据挖掘实验四 贝叶斯决策分类算法

    贝叶斯决策分类算法 一.实验目的 二.实验原理 1.先验概率和类条件概率 2.贝叶斯决策 三.实验内容和步骤 1.实验内容 2.实验步骤 3.程序框图 4.实验样本 5.实验代码 四.实验结果 五.实 ...

最新文章

  1. 虚拟文件系统(VFS)
  2. python手机版怎么运行项目或脚本-python脚本运行的几种方式
  3. 渣男一般的产品经理长什么样?管过几百产品之后,谈谈如何做好这一行
  4. redis持久化(2)
  5. 够用的 Python 写日志的知识——标准日志模块logging简介
  6. Linux-Ubuntu 启用root账户
  7. 线下实战(这次包含北京)
  8. 设计模式C++实现_2_简单工厂模式
  9. 关于get请求的乱码问题
  10. 大道至简读书笔记(1)
  11. CentOS安装/卸载Anaconda(图文详解)
  12. WiFi管理帧(四)(TWT)
  13. 2022-2027年中国缝制机械行业市场全景评估及发展战略规划报告
  14. 触发onblur事件alert死循环问题
  15. php 获取一年有多少天,【后端开发】php获取一年有多少天
  16. 京东店铺托管引流技巧有哪些?
  17. rk3399平台电量计cw2015驱动分析
  18. win10+NVIDIA GTX 960M+CUDA 8.0+cudnn6.0+tensorflow安装
  19. 进不去系统rpc服务器不可用,WinXP系统RPC服务器不可用怎么办?
  20. 2021年上半年软件设计师下午真题及答案解析(三)

热门文章

  1. 景驰诉景驰?创始人内讧升级 争夺企业名称权
  2. 分享111个HTML个性简实模板,总有一款适合您
  3. (转)nginx应用总结(1)--基础认识和应用参数优化配置
  4. 炼石网络赋能合作伙伴 掘金数据安全市场
  5. 625 这个数字很特别,625 的平方等于 390625,刚好其末 3 位是 625 本身。除了 625,还有其 它的 3 位数有这个特征吗?请编写程序,寻找所有这样的 3 位数:它的平方的末 3
  6. Codeforces Round #704 (Div. 2)-C. Maximum width-题解
  7. 推荐系统实践(一)----基于用户的协同过滤算法(UserCF)
  8. Python档案袋(生成器、迭代器、队列 )
  9. 在进程中执行cmd.exe指令关闭其它进程的方式[c#]
  10. object转list