700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 朴素贝叶斯算法Sklearn实现的学习笔记

朴素贝叶斯算法Sklearn实现的学习笔记

时间:2019-06-01 07:34:40

相关推荐

朴素贝叶斯算法Sklearn实现的学习笔记

import numpy as np#导入数据集生成器from sklearn.datasets import make_blobs#随机生成500个类别数是5的分类数据X,y = make_blobs(n_samples = 500,centers = 5,random_state=8)#数据可视化import matplotlib.pyplot as plt%matplotlib inlineplt.scatter(X[:,0],X[:,1],c = y,cmap=plt.cm.spring,edgecolors = 'k')拆分训练集与测试集from sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test = train_test_split(X,y,random_state=8)#导入朴素贝叶斯分类器from sklearn.naive_bayes import BernoulliNB,MultinomialNB,GaussianNBnb = BernoulliNB()#构建伯努利分布(二项分布)朴素贝叶斯分类器nb.fit(X_train,y_train)#拟合结果可视化plt.figure(dpi=300)x_min,x_max = X[:,0].min()-0.5,X[:,0].max()+0.5y_min,y_max = X[:,1].min()-0.5,X[:,1].max()+0.5xx,yy = np.meshgrid(np.arange(x_min,x_max,.02),np.arange(y_min,y_max,.02))z = nb.predict(np.c_[(xx.ravel(),yy.ravel())]).reshape(xx.shape)plt.pcolormesh(xx,yy,z,cmap=plt.cm.Pastel1)plt.scatter(X_train[:,0],X_train[:,1],c=y_train,cmap=plt.cm.cool,edgecolor='k')plt.scatter(X_test[:,0],X_test[:,1],c = y_test,cmap=plt.cm.cool,marker='*',edgecolor='k')plt.xlim(xx.min(),xx.max())plt.ylim(yy.min(),yy.max())plt.title('Classifier: BernoulliNB')plt.show()

伯努利分布(二项分布)朴素贝叶斯(BernoulliNB)

#构建高斯分布(正态分布)朴素贝叶斯分类器gnb = GaussianNB()gnb.fit(X_train,y_train)print('模型得分:{:.3f}'.format(gnb.score(X_test,y_test)))#拟合结果可视化plt.figure(dpi=300)x_min,x_max = X[:,0].min()-0.5,X[:,0].max()+0.5y_min,y_max = X[:,1].min()-0.5,X[:,1].max()+0.5xx,yy = np.meshgrid(np.arange(x_min,x_max,.02),np.arange(y_min,y_max,.02))z = gnb.predict(np.c_[(xx.ravel(),yy.ravel())]).reshape(xx.shape)plt.pcolormesh(xx,yy,z,cmap=plt.cm.Pastel1)plt.scatter(X_train[:,0],X_train[:,1],c=y_train,cmap=plt.cm.cool,edgecolor='k')plt.scatter(X_test[:,0],X_test[:,1],c=y_test,cmap=plt.cm.cool,marker='*',edgecolor='k')plt.xlim(xx.min(),xx.max())plt.ylim(yy.min(),yy.max())plt.title('Classifier:GaussianNB')plt.show()

高斯朴素贝叶斯(GaussianNB)

#导入数据预处理工具from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()scaler.fit(X_train)X_train_scaled = scaler.transform(X_train)X_test_scaled = scaler.transform(X_test)#构建多项分布朴素贝叶斯分类器mnb = MultinomialNB()mnb.fit(X_train_scaled,y_train)print('模型得分:{:.3f}'.format(mnb.score(X_test_scaled,y_test)))#拟合结果可视化plt.figure(dpi=300)z = mnb.predict(scaler.transform(np.c_[xx.ravel(),yy.ravel()])).reshape(xx.shape)plt.pcolormesh(xx,yy,z,cmap = plt.cm.Pastel1)plt.scatter(X_train[:,0],X_train[:,1],c=y_train,cmap=plt.cm.cool,edgecolor='k')plt.scatter(X_test[:,0],X_test[:,1],c=y_test,cmap=plt.cm.cool,marker='*',edgecolor='k')plt.xlim(xx.min(),xx.max())plt.ylim(yy.min(),yy.max())plt.title('Classifier:MultinomialNB')plt.show()

多项分布朴素贝叶斯(MultinomialNB)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。