置信度

1、亲和性分析

我的梦境 提交于 2019-11-30 19:45:17
基本概念: 根据样本个体之间的相似度 支持度support 置信度confident 示例:如果一个人买了商品X,那么他很有可能购买商品Y (本例有两个特征值0和1,表示是否购买) 过程思路: 1、在numpy中加载数据集 numpy是二维数组,看上去像一张表。 数组的每一项为个体的某项特征值。 数据集与文件放在同一目录下 输出前5行数据查看数据集 2、实现简单的排序 找出“如果一个人买了商品X,那么他很有可能购买商品Y”这个规则,就要找出数据集中所有同时购买的两件商品 规则:由前提条件和结论两部分组成 规则常用的衡量方法:支持度和置信度 支持度:在数据集中,规则中条件应验的次数(符合前提条件的数量) P(X) 置信度:规则中条件和结论同时应验的次数/支持度 P(Y|X)=P(XY)/P(X) 统计所有规则的相关数据:规则应验、规则无效、条件相同的规则数量 创建几个字典用于存放计算结果:用defaultdict(如果查找的键不存在,返回一个默认值) 循环结构:依次对样本的每个个体及个体的每个特征值进行检测,看是否满足条件。如果满足,该条件出现的次数加1;不满足,继续检测下一个。 在遍历过程中跳过条件和结论相同的规则(即如果买了X,那么会买X) 如果规则应验,规则应验的次数(即上面创建的字典中的元组)加1 计算每一条规则的支持度和置信度得到字典,支持度就是上面统计的规则应验的次数

《Python数据分析与挖掘实战》第八章学习-关联规则Apriori

元气小坏坏 提交于 2019-11-30 18:23:41
《Python数据分析与挖掘实战》这本书其实已经在暑假结束的时候就已经基本上过了一遍,但是却一直没有坚持着记录。最近几天想着将之前的学习内容整理一遍,因此,再做记录。 全文分为以下三个部分: Apriori算法 Apriori的python实现 总结 Apriori算法 首先先对Apriori算法的理论知识进行梳理。由于《Python数据分析与挖掘实战》主要针对实战,因此,对理论部分阐述并不多,本文理论知识主要来自于《数据挖掘概念与技术》。 频繁模式、项集和关联规则 频繁模式 是频繁地出现在数据集中的模式(如项集、子序列或子结构)。例如,频繁地同时出现在交易数据集中的商品(如牛奶和面包)便是一个频繁项集,而频繁地出现在购物数据库中的序列数据(比如先买PC,再买数码相机,再买内存卡)则是频繁子序列。 项集是项的集合 ,包含k个项的项集称为k项集,如I={ i 1 , i 2 , … … , i m //--> }就是一个m项集。 关联规则 指的是,项集中每个元素频繁关联或同时出现的模式。具体的,设I={ i 1 , i 2 , … … , i m //--> }是项的集合,则关联规则是形如A=>B的蕴涵式,其中A和B都是I的子集,且A、B都不为空,A、B的交集为空。 比如,下例表示的就是购买计算机之后又同时购买财务管理软件的关联规则。 支持度、置信度、频繁项集和强关联规则

目标检测中常提到的IoU和mAP究竟是什么?

雨燕双飞 提交于 2019-11-30 12:51:51
看完这篇就懂了。 IoU intersect over union,中文:交并比。指目标预测框和真实框的交集和并集的比例。 mAP mean average precision。是指每个类别的平均查准率的算术平均值。即先求出每个类别的平均查准率(AP),然后求这些类别的AP的算术平均值。其具体的计算方法有很多种,这里只介绍PASCAL VOC竞赛(voc2010之前)中采用的mAP计算方法,该方法也是yolov3模型采用的评估方法,yolov3项目中如此解释mAP,暂时看不明白可以先跳过,最后再回过头来看就能明白了。 比如我们现在要在一个给定的测试样本集中计算猫这个类别的AP,过程如下: 首先,AP要能概括P-R曲线的形状,其被定义为采用如下公式来计算: 那么,我们先来看看P-R曲线是什么:用蓝色笔迹遮住的部分不需要关注。 图中的曲线C就是一条P-R曲线,P表示纵轴的查准率precision,R表示横轴的召回率或称为查全率recall。P-R曲线下的面积可以用于评估该曲线对应的模型的能力,也就是说比较2个目标检测模型哪个更好,可以用P-R曲线面积来比较,面积越大模型越好。然而可能是因为这个面积并不好计算,所以定义了公式(1)来计算出一个叫AP的东西,反正这个东西也能体现出precision和recall对模型能力的综合影响。 从公式(2)可以知晓,Pinterpo(r

【Spark】频繁项集挖掘

烂漫一生 提交于 2019-11-29 08:21:06
同步于 Buracag的博客 挖掘频繁项目,项目集,子序列或其他子结构通常是分析大规模数据集的第一步,这是数据挖掘多年来一直活跃的研究课题。 可以参考一下维基百科中关于 关联规则学习 的基础知识。 文章目录 1. FP-Growth 1. FP-Growth FP-growth算法在 Han等人的文章 中描述,挖掘频繁模式而没有候选生成,其中“FP”代表频繁模式。 给定数据集,FP-growth的第一步是计算项目频率并识别频繁项目。 与为同一目的而设计的类似Apriori的算法不同,FP-growth的第二步使用后缀树(FP-tree)结构来编码事务而不显式生成候选集,这通常很难生成。 在第二步之后,可以从FP-tree中提取频繁项集。 在spark.mllib中,我们实现了称为PFP的FP-growth的分布式版本,如Li等人,在 PFP:Parallel FP-growth for query recommendation 中所述。 PFP基于事务的后缀分配增长FP-tree的工作,因此比单机实现更具可扩展性。 spark.ml的FP-growth实现采用以下(超)参数: minSupport:对项目集进行频繁识别的最低支持。例如,如果一个项目出现在5个交易中的3个中,则它具有3/5 = 0.6的支持。 minConfidence:生成关联规则的最小置信度

手把手教你用深度学习做物体检测(三):模型训练

删除回忆录丶 提交于 2019-11-29 04:57:49
本篇文章旨在快速试验使用yolov3算法训练出自己的物体检测模型,所以会重过程而轻原理,当然,原理是非常重要的,只是原理会安排在后续文章中专门进行介绍。所以如果本文中有些地方你有原理方面的疑惑,也没关系,可以自行网上搜索相关资料,也可以先留着问题,相信你会在后续文章中找到答案。 上篇文章《 手把手教你用深度学习做物体检测(二): 数据标注 》中已经介绍了如何准备我们训练模型需要用到的数据,上篇文章中有个需要注意的地方就是在生成yolov3所需格式的文件时,务必在unbuntu下生成,我之前在windows下生成然后传到ubuntu上去的,其中的路径需要手动修改成unbuntu下的路径,而且后面在unbuntu下训练的时候会遇到编码问题导致报错。数据以及目录结构如下图: 进入下一步前,请确保你准备好了上面的数据并放到了相应的目录结构下,如果你还不太清楚如何准备这些数据,建议先看看上一篇文章《 手把手教你用深度学习做物体检测(二):数据标注 》。 数据准备好之后,我们需要找一个基于yolov3算法实现的成熟的训练框架,网上有很多文章都提及到了下面这三个项目: https://github.com/qqwweee/keras-yolo3 ,基于keras编写 https://github.com/pjreddie/darknet ,基于c++编写 https://github.com

自己收集运用的一些算法分享1

本秂侑毒 提交于 2019-11-27 18:40:45
目标检测算法中检测框合并策略技术综述 物体检测(Object Detection)的任务是找出图像或视频中的感兴趣目标,同时实现输出检测目标的位置和类别,是机器视觉领域的核心问题之一,学术界已有将近二十年的研究历史。随着深度学习技术的火热发展,目标检测算法也从基于手工特征的传统算法转向了基于深度神经网络的检测技术。从最初 2013 年提出的 R-CNN、OverFeat,到后面的 Fast/Faster R-CNN、SSD、YOLO 系列,以及Mask R-CNN、RefineDet、RFBNet等(图 1,完整论文列表参见[1])。短短不到五年时间,基于深度学习的目标检测技术,在网络结构上,从 two stage 到 one stage,从 bottom-up only 到 Top-Down,从 single scale network 到 feature pyramid network,从面向 PC 端到面向移动端,都涌现出许多好的算法技术,这些算法在开放目标检测数据集上的检测效果和性能都很出色。 图 1 目标检测领域重要论文 物体检测过程中有很多不确定因素,如图像中物体数量不确定,物体有不同的外观、形状、姿态,加之物体成像时会有光照、遮挡等因素的干扰,导致检测算法有一定的难度。进入深度学习时代以来,物体检测发展主要集中在两个方向:two stage算法如R-CNN系列和one

学习Faster R-CNN代码nms(七)

蹲街弑〆低调 提交于 2019-11-27 10:38:46
非极大值抑制(Non-Maximum Suppression NMS) NMS就是去除冗余的检测框,保留最好的一个。 产生proposal后使用分类网络给出每个框的每类置信度,使用回归网络修正位置,最终应用NMS. 对于Bounding Box的列表B及其对应的置信度S,采用下面的计算方式.选择具有最大score的检测框M,将其从B集合中移除并加入到最终的检测结果D中.通常将B中剩余检测框中与M的IoU大于阈值Nt的框从B中移除.重复这个过程,直到B为空. 参考: http://www.cnblogs.com/makefile/p/nms.html © 康行天下 1 def nms_cpu(dets, thresh): 2 dets = dets.numpy() 3 #x1、y1、x2、y2、以及score赋值 4 x1 = dets[:, 0] 5 y1 = dets[:, 1] 6 x2 = dets[:, 2] 7 y2 = dets[:, 3] 8 scores = dets[:, 4] 9 10 ##每一个检测框的面积 11 areas = (x2 - x1 + 1) * (y2 - y1 + 1) 12 #按照score置信度降序排序 13 order = scores.argsort()[::-1]#argsort函数返回的是数组值从小到大的索引值,然后又降序 14