朴素贝叶斯------算一算是否要买延误险
概率公式
P(A|B)= P(B|A)P(A)
P(B)
有一个前提假设:所有条件对结果都是独立发生作用的
优点:
1.逻辑清晰简单、易于实现,适合大规模数据
2.运算开销小
3.对于噪声和无关属性比较健壮
4.预测过程很快
缺点:
在具体应用的时候要考虑特征之间的相互独立性,再决定是否要使用该算法
#朴素贝叶斯 from sklearn import datasets #sklearn的数据集 from sklearn.naive_bayes import GaussianNB #高斯分布型的朴素贝叶斯 import numpy as np #矩形运算库numpy np.random.seed(0) #设置随机种子,不设置的话默认是按系统时间作为参数,设置后可以保证我们每次产生的随机数是一样的 iris = datasets.load_iris() #获取鸢尾花数据集 iris_x = iris.data #数据部分 iris_y = iris.target #类别部分 #从150条数据中选取140条作为训练集,10条作为测试集。permutation接收一个数作为参数(这里为数据集长度150), #产生一个0-149乱序一维数组 indices = np.random.permutation(len(iris_x)) iris_x_train = iris_x[indices[:-10]] #训练集数据 iris_y_train = iris_y[indices[:-10]] #训练集标签 iris_x_test = iris_x[indices[-10:]] #测试集数据 iris_y_test = iris_y[indices[-10:]] #测试集数据 #构造朴素贝叶斯分类器 clf = GaussianNB() #调用该对象的训练方法,主要接收两个参数:训练数据集及其类别标签 clf.fit(iris_x_train,iris_y_train) #拟合 #对测试结果进行预测 iris_y_predict = clf.predict(iris_x_test) #调用该对象的打分方法,计算出准确率 score = clf.score(iris_x_test,iris_y_test,sample_weight=None) #输出测试结果 print('iris_y_predict=') print(iris_y_predict) #输出原始测试数据集的正确标签,以方便对比 print('iris_y_test=') print(iris_y_test) #输出准确率计算结果 print('Accuracy:',score)