没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
18页
机器学习之用Python从零实现贝叶斯分类器 机器学习之用Python从零实现贝叶斯分类器全文共18页,当前为第1页。机器学习之用Python从零实现贝叶斯分类器全文共18页,当前为第1页。机器学习之用Python从零实现贝叶斯分类器 机器学习之用Python从零实现贝叶斯分类器全文共18页,当前为第1页。 机器学习之用Python从零实现贝叶斯分类器全文共18页,当前为第1页。 关于朴素贝叶斯 朴素贝叶斯算法是一个直观的方法,使用每个属性归属于某个类的概率来做预测。你可以使用这种监督性学习方法,对一个预测性建模问题进行概率建模。 给定一个类,朴素贝叶斯假设每个属性归属于此类的概率独立于其余所有属性,从而简化了概率的计算。这种强假定产生了一个快速、有效的方法。 给定一个属性值,其属于某个类的概率叫做条件概率。对于一个给定的类值,将每个属性的条件概率相乘,便得到一个数据样本属于某个类的概率。 我们可以通过计算样本归属于每个类的概率,然后选择具有最高概率的类来做预测。 通常,我们使用分类数据来描述朴素贝叶斯,因为这样容易通过比率来描述、计算。一个符合我们目的、比较有用的算法需要支持数值属
资源推荐
资源详情
资源评论
机器学习之用 Python 从零实现贝叶斯分类器
机器学习之用 Python 从零实现贝叶斯分类器
关于朴素贝叶斯
朴素贝叶斯算法是一个直观的方法,使用每个属性归属于某个类的概率来做预测。
你可以使用这种监督性学习方法,对一个预测性建模问题进行概率建模。
给定一个类,朴素贝叶斯假设每个属性归属于此类的概率独立于其余所有属性,从
而简化了概率的计算。这种强假定产生了一个快速、有效的方法。
给定一个属性值,其属于某个类的概率叫做条件概率。对于一个给定的类值,将每
个属性的条件概率相乘,便得到一个数据样本属于某个类的概率。
我们可以通过计算样本归属于每个类的概率,然后选择具有最高概率的类来做预测。
通常,我们使用分类数据来描述朴素贝叶斯,因为这样容易通过比率来描述、计算。
一个符合我们目的、比较有用的算法需要支持数值属性,同时假设每一个数值属性
服从正态分布(分布在一个钟形曲线上),这又是一个强假设,但是依然能够给出
一个健壮的结果。
预测糖尿病的发生
本文使用的测试问题是“皮马印第安人糖尿病问题”。
这个问题包括 768 个对于皮马印第安患者的医疗观测细节,记录所描述的瞬时测量
取自诸如患者的年纪,怀孕和血液检查的次数。所有患者都是 21 岁以上(含 21 岁)
的女性,所有属性都是数值型,而且属性的单位各不相同。
机器学习之用 Python 从零实现贝叶斯分类器
每一个记录归属于一个类,这个类指明以测量时间为止,患者是否是在 5 年之内感
染的糖尿病。如果是,则为 1,否则为 0。
机器学习文献中已经多次研究了这个标准数据集,好的预测精度为 70%-76%。
下面是 pima-indians.data.csv 文件中的一个样本,了解一下我们将要使用的数据。
注意:下载文件,然后以.csv 扩展名保存(如:
pima-indians-diabetes.data.csv)。查看文件中所有属性的描述。
Python
1
2
3
4
5
6,148,72,35,0,33.6,0.627,50,1
1,85,66,29,0,26.6,0.351,31,0
8,183,64,0,0,23.3,0.672,32,1
1,89,66,23,94,28.1,0.167,21,0
0,137,40,35,168,43.1,2.288,33,1
朴素贝叶斯算法教程
教程分为如下几步:
1.处理数据:从 CSV 文件中载入数据,然后划分为训练集和测试集。
2.提取数据特征:提取训练数据集的属性特征,以便我们计算概率并做出预测。
3.单一预测:使用数据集的特征生成单个预测。
4.多重预测:基于给定测试数据集和一个已提取特征的训练数据集生成预测。
5.评估精度:评估对于测试数据集的预测精度作为预测正确率。
6.合并代码:使用所有代码呈现一个完整的、独立的朴素贝叶斯算法的实现。
1.处理数据
首先加载数据文件。CSV 格式的数据没有标题行和任何引号。我们可以使用 csv 模
块中的 open 函数打开文件,使用 reader 函数读取行数据。
机器学习之用 Python 从零实现贝叶斯分类器
我们也需要将以字符串类型加载进来属性转换为我们可以使用的数字。下面是用来
加载匹马印第安人数据集(Pima indians dataset)的 loadCsv()函数。
Python
1
2
3
4
5
6
7
import csv
def loadCsv(filename):
lines = csv.reader(open(filename, "rb"))
dataset = list(lines)
for i in range(len(dataset)):
dataset[i] = [float(x) for x in dataset[i]]
return dataset
我们可以通过加载皮马印第安人数据集,然后打印出数据样本的个数,以此测试这
个函数。
Python
1
2
3
filename = 'pima-indians-diabetes.data.csv'
dataset = loadCsv(filename)
print('Loaded data file {0} with {1} rows').format(filename, len(dataset))
运行测试,你会看到如下结果:
Python
1
Loaded data file iris.data.csv with 150 rows
下一步,我们将数据分为用于朴素贝叶斯预测的训练数据集,以及用来评估模型精
度的测试数据集。我们需要将数据集随机分为包含 67%的训练集合和包含 33%的
测试集(这是在此数据集上测试算法的通常比率)。
下面是 splitDataset()函数,它以给定的划分比例将数据集进行划分。
Python
剩余17页未读,继续阅读
资源评论
小虾仁芜湖
- 粉丝: 84
- 资源: 9357
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功