# -*- coding: utf-8 -*-
# @Date : 2019/11/25
# @File : NaiveBayes.py
# @Author : zhaochen
import numpy as np
'''
离散型变量的朴素贝叶斯
连续型变量的朴素贝叶斯
如果既有离散又有连续变量 朴素贝叶斯能实现吗? 好像不能
'''
class NaiveBayesBase(object):
def __init__(self, lamb=1):
self.lamb = lamb
def fit(self, X, y):
pass
def predict(self, X):
pass
class NaiveBayesDiscrete(NaiveBayesBase):
def fit(self, X, y):
return self.__discrete_features_estimate(X, y)
def predict(self, X):
n, m = X.shape
prob = np.zeros((n, self.k))
for i in range(n):
for c in range(self.k):
sample_condition_prob = 1
for f in range(m):
X_f = X[i, f]
# 可以考虑取log防止数据下溢
condition_prob = self.condition_prob[c][f].get(X_f)
sample_condition_prob
【机器学习】朴素贝叶斯python实现(连续特征和离散特征)
最新推荐文章于 2024-07-18 07:05:52 发布