朴素贝叶斯算法(python 实现)

利用朴素贝叶斯贝叶斯算法实现分类
本文主要通过python构建朴素贝叶斯分类算法:
原理:
贝叶斯公式,
在这里插入图片描述
朴素的理解:假设个特征之间相互独立,则上面公式中:
在这里插入图片描述
通过此公式,可将未知的条件概率转换为已知条件概率的计算
实现步骤:
1,创建Beyes类
2,类中包括四个方法,初始化方法用来创建保存中间计算结果的容器
3,fit 方法用来计算数据长度、计算条件概率所需数据集、
P(X)=∑kP(X|Y=Yk)P(Yk)
计算P(Yk):p_train_target
4,p_test_data用来计算一个样本的分类结果
5,classifier用来计算测试集所有分类结果
6,score用来计算准确率

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from collections import Counter
import time


class Beyes(object):
    def __init__(self):
        self.length = -1  # 保存测试集数据量
        self.train_target_list = []  # 目标值类别集合
        self.p_train_target = {
   }  # 保存个目标值概率
        self.split_data_lis = []  # 保存各条件概率对应的数据集
        self.feature_p_lis = []   # 保存特征概率
        self.predict = []         # 保存分类结果

    def fit(self, train_data, train_target):
        """
        P(X)=∑kP(X|Y=Yk)P(Yk)
        计算P(Yk):p_train_target
        准备计算条件概率所需数据集:self.split_data_lis
        :param train_data:<arr_like>
        :param train_target:<arr_like>
        :return:
        """
        train_length = train_data.shape[0]
        self
  • 17
    点赞
  • 143
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值