统计学习方法——朴素贝叶斯法原理

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实现相关推荐

  1. 机器学习笔记(六)——朴素贝叶斯法的参数估计

    一.极大似然估计 在上一笔记中,经过推导,得到了朴素贝叶斯分类器的表示形式: y=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)(1) y = arg \max_{c_k} P( ...

  2. 朴素贝叶斯法---朴素贝叶斯法的参数估计

    为什么80%的码农都做不了架构师?>>>    极大似然估计 学习与分类算法 贝叶斯估计 转载于:https://my.oschina.net/liyangke/blog/29452 ...

  3. 统计学习方法第四章朴素贝叶斯法-李航

    第4章 朴素贝叶斯法 朴素贝叶斯 (naive Bayes) 法是基于贝叶斯定理与特征条件独立假设的分类方法.对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布:然后基于此模型 ...

  4. 机器学习理论《统计学习方法》学习笔记:第四章 朴素贝叶斯法

    机器学习理论<统计学习方法>学习笔记:第四章 朴素贝叶斯法 4 朴素贝叶斯法 4.1 朴素贝叶斯法的学习与分类 4.1.1 基本方法 4.1.2 后验概率最大化的含义 4.2 朴素贝叶斯法 ...

  5. 《统计学习方法》读书笔记——朴素贝叶斯法(公式推导+代码实现)

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

  6. 04 朴素贝叶斯法——读书笔记

    一.相关概念: 先验概率: 是指事件发生前的预判概念,也可以说是"因"发生的概率,即表示为 P(X). 条件概率: 是指事件发生后求得反向条件概率,也可以说是在"因&qu ...

  7. bayes什么意思_什么是朴素贝叶斯法?

    1) 朴素贝叶斯法(naive Bayes)基于什么理论? 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 2) 朴素贝叶斯法的过程是怎样的? 对于给定的训练数据集,首先基于特征条件独立假 ...

  8. 朴素贝叶斯法(Naive Bayes,NB)

    文章目录 1. 朴素贝叶斯法的学习与分类 1.1 基本方法 2. 参数估计 2.1 极大似然估计 2.2 学习与分类算法 2.2.1 例题 2.2.2 例题代码 2.3 贝叶斯估计(平滑) 2.3.1 ...

  9. 统计学习方法笔记(李航)———第四章(朴素贝叶斯法)

    推荐阅读:小白之通俗易懂的贝叶斯定理(Bayes' Theorem) 朴素贝叶斯法是一种多分类算法,它的基础是"朴素贝叶斯假设"(假设实例的各个特征具有条件独立性).根据训练集估计 ...

最新文章

  1. 第五章:条件、循环以及其他语句(上)
  2. boost::mp11::mp_transform_second相关用法的测试程序
  3. ABAP where used list
  4. 办公技巧:Excel教程36个逆天功能,全面了解一下!
  5. 【需求工程】需求管理
  6. escape encodeURI 和encodeURIComponent JS编码
  7. 实验5.1 编写并测试3×3矩阵转置函数
  8. [二叉树遍历|BST]leetcode 538 把二叉搜索树转换为累加树
  9. 敏捷开发免费管理工具——火星人预览(四)
  10. Altium Designer(九):DXF+DWG
  11. Nero11序列号 有效序列号
  12. 谷歌自动启动flash
  13. 电容的耐压值选择---陶瓷电容、钽电容、电解电容
  14. 黑苹果安装 hackintosh Lenovo Y50-70 TransMac 破解版安装
  15. android 微信 耗电吗,微信太耗电了怎么办?微信耗电的两种解决方案
  16. 一个可直接使用的轻量级博客开源系统
  17. python os.system()和os.popen()
  18. 分时均线最佳买点,分时均线操作法(转)
  19. 词根:lun = moon, 表示“月亮”
  20. R语言数据框中创建新的变量的三种方法

热门文章

  1. 深入理解通信协议----串口(uart)
  2. 01.三节点集群搭建--VM配置
  3. 在LiCO中实现模型训练
  4. C - 有符号数和无符号数扩展
  5. Mac上的终端Shell命令总结(初级)
  6. CALDERA入门(2)(构建插件入门)
  7. 监听from的submit事件
  8. [HR规划]人力资源规划详解(zt)
  9. STM32 最小系统电路简析
  10. TensorFlow通过Cholesky矩阵分解实现线性回归