三类贝叶斯算法的详解

 

1、高斯分布朴素贝叶斯

高斯分布其实就是正态分布,用于解决一般分类问题

from sklearn.naive_bayes import GaussianNB

import sklearn.datasets as datasets

irls = datasets.load_iris()

train = iris.data

target = iris.target

train.std(asis=0) # 从四中特性中找出两种具有代表性的特征,使用方差

gauss = GaussianNB

features = train[:,[0,2]]

features.shape

gauss.fit(features, target)

2.多项式分布

from sklearn.learn.naive_bayes import MultinmialNB # 多项式分布朴素贝多斯

3. 伯努利分布

from sklearn.naive_bayes import BernoulliNB # 伯努利分布

使用三种贝叶斯模型,绘制鸢尾花分类边界

import numpy as np

import pandas as pd

from pandas import Series,DataFrame

import matplotlib.pyplot as plt

%matplotlib inline

from sklearn.naive_bayes import GaussianNB

from sklearn.naive_bayes import BernoulliNB

from sklearn.naive_bayes import multinomialNB

from sklearn.model_selection import train_test_split

iris = datasets.load_iris()

train = iris.data[:,[0,2]]

target = iris.target

x_train,x_test,y_train,y_test=train_test_split(train,target,test_size=0.2,random_state=1)

# 绘图查看分类结果

plt.scatter(x_train[x_train[:,0],x_train[:,1],c+y_train)

# 绘制背景

xmin,xmax=x_train[:,0].min(),x_train[:,0].max()

ymin,ymax=x_train[:,1].min(),x_train[:,1].max()

x = np.linspace(xmin,xmax,300)

y = np.linspace(ymin,ymax,300)

xx,yy = np.meshgrid(x,y)

X_test=np.c_[xx.ravel(),yy.ravel()]

plt.scatter(X_test[:,0],X_test[:,1])

gauss = Gaussian()

multi = MulitinomialNB()

ber = BernoulliNB()

gauss.fit(x_train,y_train)

multi.fit(x_train,y_train)

ber.fit(x_train,y_train)

y1_ = gauss.predict(X_test)

y2_ = multi.predict(X_test)

y3_ = ber.predict(X_test)

from matplotlib.colors import ListedColormap

cmap = ListedColormap(['r','g','b'])

plt.figure(figsize=(8,8))

ax1 = plt.subplot(2,2,1)

ax2 = plt.subplot(2,2,2)

ax3 = plt.subplot(2,2,3)

ax1.scatter(X_test[:,0],X_test[:,1],cmap=cmap,

ax1.scatter(x_train[:,0],x_train[:,1],c=y_train

ax2.scatter(X_test[:,0],X_test[:,1],cmap=cmap,

ax2.scatter(x_train[:,0],x_train[:,1],c=y_train

ax3.scatter(X_test[:,0],X_test[:,1],cmap=cmap,

ax3.scatter(x_train[:,0],x_train[:,1],c=y_train

 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值