有用请点赞,没用请差评。
欢迎分享本文,转载请保留出处。
朴素贝叶斯算法步骤:
贝叶斯估计
代码:
# -*- coding:utf-8 -*-
# naive Bayes 朴素贝叶斯法
#author:Tomator
"""
算法参考与李航博士《统计学习方法》
采用贝叶斯估计(拉普拉斯平滑)计算先验概率和条件概率
"""
from collections import Counter, defaultdict
import numpy as np
import operator
class NBayes(object):
def __init__(self,smooth=1):
self.smooth = smooth # 贝叶斯估计方法的平滑参数smooth=1,当smooth=0时即为最大似然估计
self.p_prior = {} # 先验概率
self.p_condition = {} # 条件概率
def train(self, vector_data , label_data):
n_samples = label_data.shape[0] #计算样本数
# 统计不同类别的样本数,并存入字典,key为类别,value为样本数
# Counter类的目的是用来跟踪值出现的次数。以字典的键值对形式存储,其中元素作为key,其计数作为value。
dict_label = Counter(la