作家
登录

机器学习之用Python从零实现贝叶斯分类器

作者: 来源: 2017-06-22 14:01:02 阅读 我要评论

zip函数将数据样本按照属性分组为一个个列表,然后可以对每个属性计算均值和标准差。

我们可以应用一些测试数据来测试这个summarize()函数,测试数据对于第一个和第二个数据属性的均值和标准差显示出明显的不合。

  1. dataset = [[1,20,0], [2,21,1], [3,22,0]] 
  2.  
  3. summary = summarize(dataset) 
  4.  
  5. print('Attribute summaries: {0}').format(summary)  

运行测试,你会看到如下结不雅:

按类别提取属性特点

归并代码,我们起首将练习数据集按照类别进行划分,然后计算每个属性的┞藩要。

  1. def summarizeByClass(dataset): 
  2.  
  3.     separated = separateByClass(dataset) 
  4.  
  5.     summaries = {} 
  6.  
  7.     for classValue, instances in separated.iteritems(): 
  8.  
  9.         summaries[classValue] = summarize(instances) 
  10.  
  11.     return summaries  

运行测试,你会看到如下结不雅:

  1. Summary by class value: 
  2.  
  3. {0: [(3.0, 1.4142135623730951), (21.5, 0.7071067811865476)], 
  4.  
  5. 1: [(2.0, 1.4142135623730951), (21.0, 1.4142135623730951)]}  

猜测

朴实贝叶斯分类器,Matt Buck保存部分版权

我们如今可以应用大年夜练习数据中获得的┞藩要来做猜测。做猜测涉及到对于给定的数据样本,寂?驿归属于每个类的概率,然后选择具有最大年夜概率的类作为猜测结不雅。

应用小的测试数据集来测试summarizeByClass()函数。

  1. Attribute summaries: [(2.0, 1.0), (21.0, 1.0)] 

进修资本及深刻浏览

我们可以将这部分划分成以下义务:

  1. 计算高斯概率密度函数
  2. 计算对应类的概率
  3. 单一猜测
  4. 评估精度

计算高斯概率密度函数

给定来自练习数据中已知属性的均值和标准差,我们可以应用高斯函数来评估一个给定的属性值的概率。

最后,我们须要将代码连贯起来。

已知每个属性和类值的属性特点,在给定类值的前提下,可以获得给定属性值的前提概率。

关于高斯概率密度函数,可以查看参考文献。总之,我们要把已知的细节融入到高斯函数(属性值,均值,标准差),并获得属性值归属于某个类的似然(译者注:即可能性)。

在calculateProbability()函数中,我们起首计算指数部分,然后计算等式的骨干。如许可以将其很好地组织成2行。

  1. import math 
  2.  
  3. def calculateProbability(x, mean, stdev): 
  4.  
  5.     exponent = math.exp(-(math.pow(x-mean,2)/(2*math.pow(stdev,2)))) 
  6.  
  7.     return (1 / (math.sqrt(2*math.pi) * stdev)) * exponent  
  1. x = 71.5 
  2.  
  3. mean = 73 
  4.  
  5. stdev = 6.2 
  6.  
  7. probability = calculateProbability(x, mean, stdev) 
  8.  
  9. print('Probability of belonging to this class: {0}').format(probability)  

运行测试,你会看到如下结不雅:

  1. Probability of belonging 

      推荐阅读

      宁波电信:大数据推动基层社会服务转型

    日前,在第十四届中国信息港论坛举办的“2017年中国信息通信与‘互联网+’应用优良结不雅奖”颁奖典礼上,中国电信浙江宁波分公司的“宁波市基层社会办事治理综>>>详细阅读


    本文标题:机器学习之用Python从零实现贝叶斯分类器

    地址:http://www.17bianji.com/lsqh/35863.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)