文档章节

2017年2月17日 Gaussian Naive Bayes

airxiechao
 airxiechao
发布于 2017/03/20 08:30
字数 217
阅读 15
收藏 0

Naive Bayes method is based on applying Bayes’s theorm with the “naive” assumption of independence between features

Gaussian Naive Bayes assumes the likelihood is gaussian

from __future__ import division
import numpy as np
from sklearn.naive_bayes import GaussianNB
from scipy.stats import norm
from sklearn.datasets import load_iris
from pylab import scatter, show, legend, xlabel, ylabel

data = load_iris()
X = data.data
y = data.target

def visualize(X, y):
    ys = np.unique(y)
    for v in ys:   
        pos = np.where(y == v)
        scatter(X[pos, 0], X[pos, 1])
    show()

visualize(X, y)

 

class myGaussianNB:
    def fit(self, X, y):
        self.pys = {}
        for v in np.unique(y):
            self.pys[v] = y[y==v].shape[0] / y.shape[0]

        self.pxys = {}
        for v in np.unique(y):
            for i in range(X.shape[1]):
                xs = X[y==v]
                x_mean = np.mean(xs[:,i])
                x_std = np.std(xs[:,i])
                self.pxys[(v,i)] = (x_mean, x_std)
                
    def predict_single(self, x):
        ps = [ self.pys[v] * np.sum([ norm.pdf(x[i], self.pxys[(v,i)][0], self.pxys[(v,i)][1]) for i in range(X.shape[1])]) for v in np.unique(y)]
        return np.unique(y)[np.argmax(ps)]
    
    def predict(self, X):
        return np.array(map(self.predict_single, X))
    
    def score(self, X, y):
        res = self.predict(X)
        return np.count_nonzero((res == y) == True) / y.shape[0]
    
nb = myGaussianNB()
nb.fit(X, y)
print 'score:',nb.score(X, y)
#score: 0.953333333333

 

© 著作权归作者所有

airxiechao
粉丝 4
博文 42
码字总数 9717
作品 1
成都
程序员
私信 提问
斯坦福ML公开课笔记13A——混合高斯模型、混合贝叶斯模型

本文对应公开课的第13个视频,这个视频仍然和EM算法非常相关,第12个视频讲解了EM算法的基础,本视频则是在讲EM算法的应用。本视频的主要内容包括混合高斯模型(Mixture of Gaussian, MoG)的...

xinzhangyanxiang
2014/05/28
0
0
朴素贝叶斯的那点事儿

在机器学习领域中,朴素贝叶斯是一种基于贝叶斯定理的简单概率分类器(分类又被称为监督式学习,所谓监督式学习即从已知样本数据中的特征信息去推测可能出现的输出以完成分类,反之聚类问题被...

SylvanasSun
2017/12/24
0
0
机器学习算法 --- Naive Bayes classifier

一、引言   在开始算法介绍之前,让我们先来思考一个问题,假设今天你准备出去登山,但起床后发现今天早晨的天气是多云,那么你今天是否应该选择出去呢? 你有最近这一个月的天气情况数据如...

码农47
2018/07/03
0
0
实例 | 利用犯罪记录聚类和分类暴力行为(附步骤解析)

介绍 很高兴知道Data Science的应用超越了商业场景和企业盈利的目的。最近我有幸承担了全国安全社区网络的一项非盈利项目,使我能够亲身体验应用机器学习的方法来服务我们的社区。纽约州约翰...

技术小能手
2018/06/07
0
0
贝叶斯分类器之朴素贝叶斯算法

朴素贝叶斯分类器(Naive Bayes Classifier) 贝叶斯理论 推广到多个特征 朴素贝叶斯分类器(Naive Bayes Classifier) 难点在于:类条件概率是所有属性的联合概率,难以从有限的训练样本直接...

superPershing
2017/03/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
6
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0
面试套路题目

作者:抱紧超越小姐姐 链接:https://www.nowcoder.com/discuss/309292?type=3 来源:牛客网 面试时候的潜台词 抱紧超越小姐姐 编辑于 2019-10-15 16:14:56APP内打开赞 3 | 收藏 4 | 回复24 ...

MtrS
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部