相比较上一篇用python写贝叶斯算法,用sklearn库就很简单了。下面直接上代码:
from sklearn.naive_bayes import GaussianNB #高斯朴素贝叶斯
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
datas = load_iris()
# print(datas)
iris_x = datas.data
iris_y = datas.target
# print(iris_x)
# print(iris_y)
iris_x0 = iris_x[ :, 0:2]
# print(iris_x0)
X_train,X_test,y_train,y_test =train_test_split(iris_x0, iris_y, test_size=0.3)
clf = GaussianNB( )
'''
GaussianNB 参数只有一个:先验概率priors
MultinomialNB参数有三个:alpha是常量,一般取值1,fit_prior是否考虑先验概率,class_prior自行输入先验概率
BernoulliNB参数有四个:前三个与MultinomialNB一样,第四个binarize 标签二值化
这里的参数的意义主要参考https://www.cnblogs.com/pinard/p/6074222.html'''
clf.fit(X_train,y_train)
per = clf.predict(X_test)
print(per)
print(y_test)