机器学习之朴素贝叶斯算法
朴素贝叶斯为根据贝叶斯定理,假设每个特征之间相互独立,然后根据每个特征值所属的概率最大的分类相加,最后得出哪个分类的概率可能性最大,就把预测的数据划分到那个类别下,对实现原理感兴趣的小伙伴,可以翻翻其他的博主的文章看看。
附上本人测试的代码,如下,
# -*- coding:utf-8 -*- # 导入科学计算工具 import numpy as np # 导入鸢尾花数据集 from sklearn.datasets import load_iris # 导入朴素贝叶斯 from sklearn import naive_bayes from sklearn.model_selection import train_test_split # 加载鸢尾花数据集 iris = load_iris() # 提取数据 trainX = iris.data # 提取标签 trainY = iris.target # 建立高斯分布的朴素贝叶斯模型 X_train,X_test,y_train,y_test = train_test_split(trainX,trainY,test_size = 0.3) clf=naive_bayes.GaussianNB() #高斯分布,没有参数 # 建立多项式分布的朴素贝叶斯模型 # clf=naive_bayes.MultinomialNB() #多项式分布 # 训练模型 clf.fit(X_train,y_train) clf.fit(X_test,y_test) # 输出准确率 print("训练准确率:" + str(clf.score(X_train,y_train))) print("测试准确率:" + str(clf.score(X_test,y_test))) ''' # 效果 训练准确率:0.96 测试准确率:0.96 '''