《机器学习 (周志华)》习题7.3答案

本文介绍了如何编程实现拉普拉斯修正的朴素贝叶斯分类器,并在西瓜数据集3.0的‘测1’样本上进行测试。注意到书本中标准差计算的差异,以及未使用拉普拉斯修正时与书中部分结果不符的情况,发现可能是书籍错误。同时,指出在处理count为0的数据时存在bug,需要进一步修正。
摘要由CSDN通过智能技术生成

编程实现拉普拉斯修正的朴素贝叶斯,西瓜3.0训练集,“测1”样本测试。

书上求得的标准差是除以(N-1)即np.std(x, ddof=1)得到的,用与numpy直接用std计算结果存在偏差。

不加拉普拉斯修正跑的数据,部分和书上不一致(P(蜷缩,是)和P(凹陷,是)),经检查是书中错误。

只能通过测试样例,对count为0的数据存在bug,待修改。。。

代码如下:

# coding: utf-8
import math
import numpy as np

file = open('西瓜数据集3.csv'.decode('utf-8'))
filedata = [line.strip('\n').split(',')[1:] for line in file]
idx1 = filedata[0].index('密度')
idx2 = filedata[0].index('含糖率')
for i in range(1, len(filedata)):
	filedata[i][idx1] = float(filedata[i][idx1])
	filedata[i][idx2] = float(filedata[i][idx2])
filedata = filedat
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值