资源简介
西瓜书上第七章朴素贝叶斯采用拉普拉斯修正,简单易懂,关键代码都有注释,适合初学者的理解

代码片段和文件信息
import numpy as np
def load_data(filepath):
‘‘‘
:arg filepath filepath是数据的路径
:fun 加载数据:1青绿蜷缩浊响清晰凹陷硬滑0.6970.46是
:return 加载后的数据
‘‘‘
file_object = open(filepath encoding=‘UTF-8‘)
train_data = []
file_object.readline()
while 1:
data = file_object.readline()
if not data:
break
else:
train_data.append(data)
file_object.close()
test = []
for s in train_data:
test.append(s.replace(‘\n‘ ‘‘).split(‘‘)) # 去掉\n和把数据按照’‘分割再存
return test
def count_labels(data):
‘‘‘
:param data:数据集
:return: 返回好瓜和坏瓜的数目
‘‘‘
yes = 0
no = 0
for s in range(data.__len__()):
if data[s][-1] == ‘是‘:
yes += 1
else:
no += 1
return yes no
def handle_one_data(data attr location yes no attr_dis):
‘‘‘
:param data: 数据集
:param attr: 要传入的属性
:param location: 传入属性的位置
:param yes: 好瓜数量
:param no: 坏瓜数量
:param attr_dis: 各个属性的取值不同的个数
:return: 返回该属性在好瓜或者是坏瓜的前提下的概率
‘‘‘
attr_y attr_n = 0 0
for s in range(data.__len__()):
if data[s][-1] == ‘是‘:
if data[s][location] == attr:
attr_y += 1
else:
if data[s][location] == attr:
attr_n += 1
return (attr_y + 1) / (yes + attr_dis[location-1]) (attr_n + 1) / (no + attr_dis[location-1])
def handle_data(data):
‘‘‘
:param data: 数据集
:return: 对密度和含糖率的均值和标准差
‘‘‘
midu_y = []
tiandu_y = []
midu_n = []
tiandu_n = []
for s in range(data.__len__()):
if data[s][-1] == ‘是‘:
midu_y.append(np.float(data[s][-3]))
tiandu_y.append(np.float(data[s][-2]))
else:
midu_n.append(np.float(data[s][-3]))
tiandu_n.append(np.float(data[s][-2]))
m_midu_y = np.mean(midu_y)
m_midu_n = np.mean(midu_n)
t_tiandu_y = np.mean(tiandu_y)
t_tiandu_n = np.mean(tiandu_n)
std_midu_y = np.std(midu_y)
std_midu_n = np.std(midu_n)
std_tiandu_y = np.std(tiandu_y)
std_tiandu_n = np.std(tiandu_n)
return m_midu_y m_midu_n t_tiandu_y t_tiandu_n std_midu_y std_midu_n std_tiandu_y std_tiandu_n
def show_result(p_yes p_no):
‘‘‘
:param p_yes: 在好瓜的前提下,测试数据各个属性的概率
:param p_no: 在是坏瓜的前提下,测试数据的各个属性的概率
:return: 是好瓜或者是坏瓜
‘‘‘
p1 = 1.0
p2 = 1.0
for s in range(p_yes.__len__()):
p1 *= np.float(p_yes[s])
p2 *= np.float(p_no[s])
if p1 > p2:
print(“好瓜“ p1 p2)
else:
print(“坏瓜“ p1 p2)
def count_attr_dis(data):
‘‘‘
:param data: 数据集
:return: 各个属性取值的个数
‘‘‘
count = [] # 记录各个属性的取值有多少个不同
for i in range(data[0].__len__()):
if i == 0 or i == 7 or i == 8: # 去掉编号,密度,甜度这个属性
continue
d = []
for s in range(data.__len__())
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1114 2018-04-30 20:02 bayes.txt
文件 5245 2018-05-01 17:09 Bayes_laplacian.py
- 上一篇:学习cocos2d-x 3.0自己写的游戏2048
- 下一篇:平面转3d立体图片工具
相关资源
- 朴素贝叶斯分类模型完整代码
- 基于决策树和朴素贝叶斯算法对Adul
- 基于最小错误率的贝叶斯手写数字分
- 贝叶斯应用案例测试集及源码
- 论文研究 - 软件可靠性对数非均匀泊
- 论文研究 - 从众包中提取信息:采用
- 基于朴素贝叶斯分类法的图像分割
- α-P烯热异构化反应速率常数评价
- 论文研究-基于改进贝叶斯优化算法的
- 论文研究-Hammerstein-Wiener系统的递推贝
- Bayesian Networks in R贝叶斯网络的R语言实
- 贝叶斯预测方法
- 贝叶斯网络之父:Judea Pearl论文集1
- 贝叶斯网引论-清晰版
- 机器学习实战项目贝叶斯拼写检查器
- 背景建模运动检测_高斯混合模型_三帧
- 贝叶斯数据分析 Third Edition (C - Gel
- winbugs14:层次贝叶斯建模软件
- 基于Hadoop架构的文本分类算法
- 贝叶斯网络和HMM
- deleivery——基于贝叶斯地震反演源代
- WinBugs 1.4安装包 1.4.3升级包.zip
- 贝叶斯GeNIe2.0
- 贝叶斯动态模型及其预测_张孝令
- 贝叶斯网络软件BayesiaLab教程
- 模式识别实验根据身高体重进行贝叶
- 微软贝叶斯软件,很不错哦
- 贝叶斯模型LDA贝叶斯算法实现的电商
- 贝叶斯建模软件GeNIE
- 贝叶斯网络可视化软件GeNIe使用说明
评论
共有 条评论