AI-机器学习-自学笔记(六)朴素贝叶斯算法

朴素贝叶斯算法(Naive Bayesian algorithm) 是应用最为广泛的分类算法之一。

贝叶斯定理是关于随机事件AB的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性。

贝叶斯公式(发表于1763年):

 

贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其在所有类别上的后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

打个通俗点的比方,我们知道非洲有很多黑人,即已知非洲人为黑人的先验概率比较高,如果我们在街上碰到个黑人,我们判断他可能来自哪里,比如我们认为他来自非洲的可能性比较大,即选取最大后验概率的类(来自非洲)作为我们的判断。

贝叶斯分类原理要求各个特征属性之间是独立的,不能互相影响,但在实际生活中,事物的各个特征属性往往是有联系的。朴素贝叶斯假定各个特征属性是独立的来进行分类研究,这就是“朴素”两字的含义。

朴素贝叶斯在scikit-learn中的实现类是GaussianNB

下面我们用鸢尾花数据集做一下朴素贝叶斯分类训练吧

#导入所需库
import numpy as np
from sklearn.naive_bayes import BernoulliNB, GaussianNB
from pandas import read_csv

#导入鸢尾花集数据
filename = 'data/iris/iris.data.csv' 
names = ['separ-length','separ-width','petal-length','petal-width','class'] 
dataset = read_csv(filename, names=names)
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score 
#分离数据集
array = dataset.values 
X = array[:,0:4]
Y = array[:,4] 
validation_size = 0.2 
X_train,X_validation,Y_train,Y_validation = \
train_test_split(X, Y, test_size=validation_size)

#定义模型
model = GaussianNB()
model.fit(X_train, Y_train)

#训练模型
model.fit(X, Y)
#输出预测结果
print(X[55:56])
print(model.predict(X[55:56]))#必须以区间取值的方式,[4:5] 其实就是取 4 这个值

打印结果如下:

PS C:\coding\machinelearning>朴素贝叶斯-鸢尾花分类.py
[[5.7 2.8 4.5 1.3]]
['Iris-versicolor']
PS C:\coding\machinelearning> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值