朴素贝叶斯法的参数估计——贝叶斯估计及其Python实现
统计学习方法——朴素贝叶斯法原理
1. 贝叶斯估计
1.1 为什么要用贝叶斯估计(极大似然的缺点)
1.2 贝叶斯估计原理
贝叶斯估计的算法过程合极大似然估计的算法过程一模一样,代码也几乎一模一样,只是加了一个λ。
2. Python代码
def priorProbability(labelList,Lambda): # 加入一个lambdalabelSet = set(labelList)labelCountDict = {}for label in labelList:if label not in labelCountDict:labelCountDict[label] = 0labelCountDict[label] += 1priorProbabilityDict = {}for label in labelSet:priorProbabilityDict[label] = (labelCountDict[label]+Lambda)/(len(labelList)+len(labelSet)*Lambda)return priorProbabilityDict
def conditionProbability(dataSet,labelList,Lambda):dimNum = len(dataSet[0])characterVal = []for i in range(dimNum):temp = []for j in range(len(dataSet)):if dataSet[j][i] not in temp:temp.append(dataSet[j][i])characterVal.append(temp)probability = []labelSet = list(set(labelList))for dim in range(dimNum):tempMemories = {}for val in characterVal[dim]:for label in labelSet:labelCount = 0mixCount = 0for i in range(len(labelList)):if labelList[i] == label:labelCount += 1if dataSet[i][dim] == val:mixCount += 1tempMemories[str(val) + "|" + str(label)] = (mixCount+Lambda)/(labelCount+len(characterVal[dim])*Lambda)probability.append(tempMemories)return probability
def naiveBayes(x,dataSet,labelList,Lambda):priorProbabilityDict = priorProbability(labelList,Lambda)probability = conditionProbability(dataSet,labelList,Lambda)bayesProbability = {}labelSet = list(set(labelList))for label in labelSet:tempProb = priorProbabilityDict[label]for dim in range(len(x)):tempProb *= probability[dim][str(x[dim])+"|"+str(label)]bayesProbability[label] = tempProbresult = sorted(bayesProbability.items(),key= lambda x:x[1],reverse=True)return result[0][0]
朴素贝叶斯法的参数估计——贝叶斯估计及其Python实现相关推荐
- 机器学习笔记(六)——朴素贝叶斯法的参数估计
一.极大似然估计 在上一笔记中,经过推导,得到了朴素贝叶斯分类器的表示形式: y=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)(1) y = arg \max_{c_k} P( ...
- 朴素贝叶斯法---朴素贝叶斯法的参数估计
为什么80%的码农都做不了架构师?>>> 极大似然估计 学习与分类算法 贝叶斯估计 转载于:https://my.oschina.net/liyangke/blog/29452 ...
- 统计学习方法第四章朴素贝叶斯法-李航
第4章 朴素贝叶斯法 朴素贝叶斯 (naive Bayes) 法是基于贝叶斯定理与特征条件独立假设的分类方法.对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布:然后基于此模型 ...
- 机器学习理论《统计学习方法》学习笔记:第四章 朴素贝叶斯法
机器学习理论<统计学习方法>学习笔记:第四章 朴素贝叶斯法 4 朴素贝叶斯法 4.1 朴素贝叶斯法的学习与分类 4.1.1 基本方法 4.1.2 后验概率最大化的含义 4.2 朴素贝叶斯法 ...
- 《统计学习方法》读书笔记——朴素贝叶斯法(公式推导+代码实现)
传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...
- 04 朴素贝叶斯法——读书笔记
一.相关概念: 先验概率: 是指事件发生前的预判概念,也可以说是"因"发生的概率,即表示为 P(X). 条件概率: 是指事件发生后求得反向条件概率,也可以说是在"因&qu ...
- bayes什么意思_什么是朴素贝叶斯法?
1) 朴素贝叶斯法(naive Bayes)基于什么理论? 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 2) 朴素贝叶斯法的过程是怎样的? 对于给定的训练数据集,首先基于特征条件独立假 ...
- 朴素贝叶斯法(Naive Bayes,NB)
文章目录 1. 朴素贝叶斯法的学习与分类 1.1 基本方法 2. 参数估计 2.1 极大似然估计 2.2 学习与分类算法 2.2.1 例题 2.2.2 例题代码 2.3 贝叶斯估计(平滑) 2.3.1 ...
- 统计学习方法笔记(李航)———第四章(朴素贝叶斯法)
推荐阅读:小白之通俗易懂的贝叶斯定理(Bayes' Theorem) 朴素贝叶斯法是一种多分类算法,它的基础是"朴素贝叶斯假设"(假设实例的各个特征具有条件独立性).根据训练集估计 ...
最新文章
- 第五章:条件、循环以及其他语句(上)
- boost::mp11::mp_transform_second相关用法的测试程序
- ABAP where used list
- 办公技巧:Excel教程36个逆天功能,全面了解一下!
- 【需求工程】需求管理
- escape encodeURI 和encodeURIComponent JS编码
- 实验5.1 编写并测试3×3矩阵转置函数
- [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树
- 敏捷开发免费管理工具——火星人预览(四)
- Altium Designer(九):DXF+DWG
- Nero11序列号 有效序列号
- 谷歌自动启动flash
- 电容的耐压值选择---陶瓷电容、钽电容、电解电容
- 黑苹果安装 hackintosh Lenovo Y50-70 TransMac 破解版安装
- android 微信 耗电吗,微信太耗电了怎么办?微信耗电的两种解决方案
- 一个可直接使用的轻量级博客开源系统
- python os.system()和os.popen()
- 分时均线最佳买点,分时均线操作法(转)
- 词根:lun = moon, 表示“月亮”
- R语言数据框中创建新的变量的三种方法