使用Python实现贝叶斯分类器-------文章中有源码

简介: 使用Python实现贝叶斯分类器-------文章中有源码

一、实验目的

使用Python实现贝叶斯分类器。

二、实验原理

算法原理

假设y 的取值有y1,y2……yn.

x的特征有x1,x2 ……xm.

则朴素贝叶斯及当x={x1i, x2i, ……xmi}时比较y取值概率的大小。

即max(p(y|{x1i, x2i, ……xmi}))

而p(y|{x1i, x2i, ……xmi}) = p(y{x1i, x2i, ……xmi})/p({x1i, x2i, ……xmi})

=p({x1i, x2i, ……xmi}|y)p(y)/p({x1i, x2i, ……xmi})

而各个x相互独立,(类似于有放回)

则原式=p(x1i|y)p(x2i|y)……*p(xmi|y)p(y)/p({x1i, x2i, ……xmi})

各式都将除以p({x1i, x2i, ……xmi})

因此即比较max(p({x1i, x2i, ……xmi}|y)p(y))

三、Python包

(1)numpy

四、实验内容

数据如下,x1, x2 为特征,y为标签

预测当x=[2, S]T时,y的取值。


代码:

import numpy as np
def getData():
    x = [[1, 'S'], [1, 'M'], [1, 'M'], [1, 'S'], [1, 'S'],
         [2, 'S'], [2, 'M'], [2, 'M'], [2, 'L'], [2, 'L'],
         [3, 'L'], [3, 'M'], [3, 'M'], [3, 'L'], [3, 'L']]
    y = [-1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, -1]
    return np.array(x), np.array(y)
def Bayes(x, y, x1, x2):
    Y = list(set(y))
    a, a1, b, b1, c, c1 = 0,0,0,0,0,0
    for i in range(15):
        if y[i] == Y[0]:  # Y[0]=1
            c += 1
            if x[i][0] == x1:  # x1=X[0]=2
                a += 1
            if x[i][1] == x2:  # x2=X[1]=S
                a1 += 1
        if y[i] == Y[1]:  # Y[1]=-1
            c1 += 1
            if x[i][0] == x1:
                b += 1
            if x[i][1] == x2:
                b1 += 1
    P1 = (c / len(y)) * (a / c) * (a1 / c)
    P2 = (c1 / len(y)) * (b / c1) * (b1 / c1)
    if P1 > P2:
        return Y[0]
    if P1 < P2:
        return Y[1]
if __name__ == '__main__':
    x, y = getData()
    X = ['2', 'S']
    print(X)
    result = Bayes(x, y, X[0], X[1])
    print( result)

截图:image.png

目录
相关文章
|
24天前
|
人工智能 机器人 测试技术
【python】python小游戏——开心消消乐(源码)【独一无二】
【python】python小游戏——开心消消乐(源码)【独一无二】
|
24天前
|
存储 人工智能 搜索推荐
【python】python用户管理系统[简易版](源码+报告)【独一无二】
【python】python用户管理系统[简易版](源码+报告)【独一无二】
|
2天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
3天前
|
数据采集 存储 人工智能
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
【Python+微信】【企业微信开发入坑指北】4. 企业微信接入GPT,只需一个URL,自动获取文章总结
13 0
|
8天前
|
算法 数据可视化 Python
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
12 0
|
10天前
|
机器学习/深度学习 Python
Python用PyMC3实现贝叶斯线性回归模型
Python用PyMC3实现贝叶斯线性回归模型
15 0
|
11天前
|
安全 Python
使用python进行贝叶斯统计分析
使用python进行贝叶斯统计分析
29 0
|
19天前
|
存储 定位技术 数据库
【python毕业设计】python基于Pygame的吃金币游戏设计与实现(源码+毕业论文)【独一无二】
【python毕业设计】python基于Pygame的吃金币游戏设计与实现(源码+毕业论文)【独一无二】
|
19天前
|
数据采集 存储 人工智能
【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】
【python】python汽车效能数据集—回归建模(源码+数据集)【独一无二】
|
19天前
|
人工智能 数据可视化 数据挖掘
【python】Python国内GDP经济总量数据分析可视化(源码+报告)【独一无二】
【python】Python国内GDP经济总量数据分析可视化(源码+报告)【独一无二】