1、提取训练数据集的属性特征,以便我们计算概率并做出预测。3.单一预测:使用数据集的特征生成单个预测。4.多重预测:基于给定测试数据集和一个已提取特征的训练数据集生成预测。5.评估精度:评估对于测试数据集的预测精度作为预测正确率。6.合并代码:使用所有代码呈现一个完整的、独立的朴素贝叶斯算法的实现。1.处理数据首先加载数据文件。CSV格式的数据没有标题行和任何引号。我们可以使用csv模块中的open函数打开文件,使用reader函数读取行数据。我们也需要将以字符串类型加载进来属性转换为我们可以使用的数字。下面是用来加载匹马印第安人数据集(Pima indians dataset)的loadCsv(
2、)函数。67import csvdef loadCsv(filename): lines = csv.reader(open(filename, rb) dataset = list(lines) for i in range(len(dataset): dataseti = float(x) for x in dataseti return dataset我们可以通过加载皮马印第安人数据集,然后打印出数据样本的个数,以此测试这个函数。filename = pima-indians-diabetes.data.csvdataset = loadCsv(filename)print(Loaded
3、 data file 0 with 1 rows).format(filename, len(dataset)运行测试,你会看到如下结果:Loaded data file iris.data.csv with 150 rows下一步,我们将数据分为用于朴素贝叶斯预测的训练数据集,以及用来评估模型精度的测试数据集。我们需要将数据集随机分为包含67%的训练集合和包含33%的测试集(这是在此数据集上测试算法的通常比率)。下面是splitDataset()函数,它以给定的划分比例将数据集进行划分。89import randomdef splitDataset(dataset, splitRatio):
4、 trainSize = int(len(dataset) * splitRatio) trainSet = copy = list(dataset) while len(trainSet) bestProb: bestProb = probability bestLabel = classValue return bestLabel测试predict()函数如下:summaries = A:(1, 0.5), Bresult = predict(summaries, inputVector)Prediction:).format(result)运行测试,你会得到如下结果: A多重预测最后,通
5、过对测试数据集中每个数据样本的预测,我们可以评估模型精度。getPredictions()函数可以实现这个功能,并返回每个测试样本的预测列表。def getPredictions(summaries, testSet): predictions = for i in range(len(testSet): result = predict(summaries, testSeti) predictions.append(result) return predictions测试getPredictions()函数如下。testSet = 1.1, , 19.1, predictions = get
6、Predictions(summaries, testSet)Predictions:).format(predictions) , 计算精度预测值和测试数据集中的类别值进行比较,可以计算得到一个介于0%100%精确率作为分类的精确度。getAccuracy()函数可以计算出这个精确率。def getAccuracy(testSet, predictions): correct = 0 for x in range(len(testSet): if testSetx-1 = predictionsx: correct += 1 return (correct/float(len(testSet
7、) * 100.0我们可以使用如下简单的代码来测试getAccuracy()函数。testSet = 1,1,1,a, 2,2,2, 3,3,3,bpredictions = accuracy = getAccuracy(testSet, predictions)Accuracy:).format(accuracy) 66.6666666667合并代码最后,我们需要将代码连贯起来。下面是朴素贝叶斯Python版的逐步实现的全部代码。101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101# Example of Naive Bayes implemented from Scratch in Python f
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1