作家
登录

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

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

(x) for x in dataset[i]] 
  •  
  • return dataset  
  • 我们可以经由过程加载皮马印第安人数据集,然后打印出数据样本的个数,以此测试这个函数。

    1. filename = 'pima-indians-diabetes.data.csv' 
    2.  
    3. dataset = loadCsv(filename) 
    4.  
    5. print('Loaded data file {0} with {1} rows').format(filename, len(dataset))  

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

    1. Loaded data file iris.data.csv with 150 rows 

    下一步,我们将数据分为用于朴实贝叶斯猜测的练习数据集,以及用来评估模型精度的测试数据集。我们须要将数据集随机分为包含67%的练习集合和包含33%的测试集(这是在此数据集上测试算法的平日比率)。

    下面是splitDataset()函数,它以给定的划分比例将数据集进行划分。

    1. import random 
    2.  
    3. def splitDataset(dataset, splitRatio): 
    4.  
    5.     trainSize = int(len(dataset) * splitRatio) 
    6.  
    7.     trainSet = [] 
    8.  
    9.     copy = list(dataset) 
    10.  
    11.     while len(trainSet) < trainSize: 
    12.  
    13.         index = random.randrange(len(copy)) 
    14.  
    15.         trainSet.append(copy.pop(index)) 
    16.  
    17.     return [trainSet, copy]  

    我们可以定义一个具有5个样例的数据集来进行测试,起首它分为练习数据集和测试数据集,然后打印出来,看看每个数据样本最终落在哪个数据集。

    1. dataset = [[1], [2], [3], [4], [5]] 
    2.  
    3. splitRatio = 0.67 
    4.  
    5. train, test = splitDataset(dataset, splitRatio) 
    6.  
    7. print('Split {0} rows into train with {1} and test with {2}').format(len(dataset), train, test)  
    1. Split 5 rows into train with [[4], [3], [5]] and test with [[1], [2]] 

    提取数据特点

    朴实贝叶斯模型包含练习数据集中数据的特点,然后应用这个数据特点来做猜测。

    所收集的练习数据的特点,包含相对于每个类的每个属性的均值和标准差。举例来说,如不雅如不雅有2个类和7个数值属性,然后我们须要每一个属性(7)和类(2)的组合的均值和标准差,也就是14个属性特点。

    在对特定的属性归属于每个类的概率做计算、猜测时,将用到这些特点。

    我们将数据特点的获取划分为以下的子义务:

    1. 按类别划分数据
    2. 计算均值
    3. 计算标准差
    4. 提取数据集特点
    5. 按类别提取属性特点

    按类别划分数据

    起首将练习数据集中的样本按照类别进行划分,然后计算出每个类的统计数据。我们可以创建一个类别到属于词攀类其余样本列表的的映射,并将全部数据集中的样本分类到响应的列表。

    下面的SeparateByClass()函数可以完成这个义务:

    1. def separateByClass(dataset): 

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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