贝叶斯分类

本文介绍了如何运用朴素贝叶斯算法进行糖尿病预测。通过使用皮马印第安人糖尿病数据集,详细阐述了数据处理、特征提取、预测实施以及精度评估的过程,展示了朴素贝叶斯算法在医疗健康领域的应用。
摘要由CSDN通过智能技术生成

朴素贝叶斯算法是采用每个属性归属于哪个类的概率来进行预测。我们采用监督性学习方法,对某个预测性建模的问题采用概率建模。

下面利用“皮马印第安人糖尿病数据集”。该数据集由美国国立糖尿病、消化和肾脏疾病研究所(United States National Institute of Diabetes and Digestive and Kidney Diseases,简称NIDDK)提供。

数据集
可从 https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv 下载,具体方法是打开此链接后,会看到数据展现在网页中,右击save as,保存类型选为“Microsoft Excel Comman Separated Values File“,即CSV格式,文件名按默认为pima-indians-diabetes.data.csv。

数据里包行了768行 X 9列数据。每一行表示一个超过21岁的皮马女性糖尿病患者的信息。
前8列表示属性特征
1.怀孕次数。
2.2小时口服葡萄糖耐量测试中得到的血糖浓度。
3.舒张期血压(mm Hg)。
4.三头肌皮脂厚度(mm)。
5.2小时血清胰岛素(mu U/ml)。
6.身体质量指数(体重kg/(身高in m)^2)。
7.糖尿病家族遗传作用值。
8.年龄。

第9列表示分类结果,这个类指明以测量时间为止,患者是否是在5年之内感染的糖尿病。如果是,则为1,否则为0。

算法的实现过程分为如下几步:
(一)处理数据:从CSV文件中载入数据,然后划分为训练集和测试集。
(二)提取数据特征:提取训练数据集的属性特征,以便我们计算概率并做出预测。
(三)单一预测:使用数据集的特征生成单个预测。
(四)多重预测:基于给定测试数据集和一个已提取特征的训练数据集生成预测。
(五)评估精度:评估对于测试数据集的预测精度作为预测正确率。
(六)合并代码:使用所有代码呈现一个完整的、独立的朴素贝叶斯算法的实现。

import csv
def loadCsv(filename):
    lines = csv.reader(open(filename, "r"))
    dataset = list(lines)
    for i in range(len(dataset)):
        dataset[i] = [float(x) for x in dataset[i]] #为何要把每个数都转为浮点数
    return dataset

#测试
filename = './data/pima-indians-diabetes.data.csv'
dataset = loadCsv(filename)
print('Loaded data file {0} with {1} rows'.format(filename, len(dataset)))


import random
def splitDataset(dataset, splitRatio):
    trainSize = int(len(dataset) * splitRatio)
    trainSet = []
    copy = list(dataset)
    while len(trainSet) < trainSize:
        index = random.randrange(len(copy))
        trainSet.append(copy.pop(index))
    return [trainSet, copy]

#测试
dataset = [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值