前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾短信进行过滤,在最后对分类的错误率进行了计算. 与决策树分类和k近邻分类算法不同,贝叶斯分类主要借助概率论的知识来通过比较提供的数据属于每个类型的条件概率, 将他们分别计算出来然后预测具有最大条件概率的那个类别是最后的类别.当然样本越多我们统计的不同类 型的特征值分布就越准确,使用此分布进行预测则会更加准确.…
2017-12-15 19:08:50 朴素贝叶斯分类器是一种典型的监督学习的算法,其英文是Naive Bayes.所谓Naive,就是天真的意思,当然这里翻译为朴素显得更学术化. 其核心思想就是利用贝叶斯公式来计算各个类别的概率,最后从中选择概率最大的那个作为最终的结果. 贝叶斯公式:…
目录 先验概率与后验概率 条件概率公式.全概率公式.贝叶斯公式 什么是朴素贝叶斯(Naive Bayes) 拉普拉斯平滑(Laplace Smoothing) 应用:遇到连续变量怎么办?(多项式分布,高斯分布) Python代码(sklearn库) 先验概率与后验概率 引例 想象有 A.B.C 三个不透明的碗倒扣在桌面上,已知其中有(且仅有)一个瓷碗下面盖住一个鸡蛋.此时请问,鸡蛋在 A 碗下面的概率是多少?答曰 1/3. 现在发生一件事:有人揭开了 C 碗,发现 C 碗下面没有蛋.此时再问:鸡…
1.K-近邻算法(KNN) 1.1 定义 (KNN,K-NearestNeighbor) 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 1.2 距离公式 两个样本的距离可以通过如下公式计算,又叫欧式距离. 简单理解这个算法: 这个算法是用来给特征值分类的,是属于有监督学习的领域,根据不断计算特征值和有目标值的特征值的距离来判断某个样本是否属于某个目标值. 可以理解为根据你的邻居来判断你属于哪个类别. 1.3 API sklea…
(一)朴素贝叶斯多项式事件模型 在上篇笔记中,那个最基本的NB模型被称为多元伯努利事件模型(Multivariate Bernoulli Event Model,以下简称 NB-MBEM).该模型有多种扩展,一种是在上一篇笔记中已经提到的每个分量的多值化,即将p(xi|y)由伯努利分布扩展到多项式分布:还有一种在上一篇笔记中也已经提到,即将连续变量值离散化.本文将要介绍一种与多元伯努利事件模型有较大区别的NB模型,即多项式事件模型(Multinomial Event Model,一下简称NB-M…
朴素贝叶斯假设各属性间相互独立,直接从已有样本中计算各种概率,以贝叶斯方程推导出预测样本的分类. 为了处理预测时样本的(类别,属性值)对未在训练样本出现,从而导致概率为0的情况,使用拉普拉斯修正(假设属性值与类别均匀分布). 代码及注释如下: 一.离散值 1,朴素贝叶斯算法计算相关参数并返回,预测使用这些参数即可 # 手写拉普拉斯修正的朴素贝叶斯 import numpy as np import pandas as pd def naive_bayes(data): '''data:panda…
目录 朴素贝叶斯原理 朴素贝叶斯代码(Spark Python) 朴素贝叶斯原理 详见博文:http://www.cnblogs.com/itmorn/p/7905975.html 返回目录 朴素贝叶斯代码(Spark Python) 代码里数据:https://pan.baidu.com/s/1jHWKG4I 密码:acq1 # -*-coding=utf-8 -*- from pyspark import SparkConf, SparkContext sc = SparkContext('…
3--朴素贝叶斯 原理 朴素贝叶斯本质上就是通过贝叶斯公式来对得到类别概率,但区别于通常的贝叶斯公式,朴素贝叶斯有一个默认条件,就是特征之间条件独立. 条件概率公式: \[P(B|A) = \frac{P(A|B)P(B)}{P(A)} \] 贝叶斯公式可以写成: \[p(y_i|x) = \frac{p(x|y_i)p(y_i)}{p(x)} \] 如果A和B相对于C是条件独立的,那么满足\(P(A|C) = P(A|B,C)\). 如果样本的两个特征\(x_1\)\(x_2\)相对于y条件独…
朴素贝叶斯分类器(Naïve Bayes classifier)是一种相当简单常见但是又相当有效的分类算法,在监督学习领域有着很重要的应用.朴素贝叶斯是建立在“全概率公式”的基础下的,由已知的尽可能多的事件A.B求得的$P(A|B)$来推断未知$P(B|A)$. 优点: 模型训练使用TF-IDF对训练数据做词频及概率统计: 分类使用朴素贝叶斯计算所有类目的概率; 适用于电商的短文本分类,加入部分人工干预,top3准确率可达到95%左右: 分类预测完全可解释,不存在神经网络黑盒,但比较依赖分词效果…
实现本文的文本数据可以在THUCTC下载也可以自己手动爬虫生成, 本文主要参考:https://blog.csdn.net/hao5335156/article/details/82716923 nb表示朴素贝叶斯 rf表示随机森林 lg表示逻辑回归 初学者(我)通过本程序的学习可以巩固python基础,学会python文本的处理,和分类器的调用.方便接下来的机器学习的学习. 各个参数直观的含义: # -*- coding: utf-8 -*- """ Created on…