由于本人初学数据挖掘,许多知识与见解还有所欠缺,因为看书《python数据挖掘入门与实践》有点没能理解,所以查阅了一些资料,有一些自己的理解,若有错误,望各位海涵并指点本人的不足。 由于下面的理解会讨论到相关的参考样本,所以这里先列出书上实例的参考样本节选。(1代表了购买,0代表没有购买) 在具体讨论支持度与置信度时,需要先讨论两个概念,规则和应验。 在《python数据挖掘入门与实践》一书中,对支持度(support)的定义为: 由于作为初学者没有太懂这句话的含义,所以查询了相关资料,在资料中写到,支持度即:表示同时包含A和B的事务所占所有事务的比例。用公式表示则是: 从概率上讲,支持度反映了一组事务(商品)被选择的概率,就假设一个商场从支持度推测出苹果和香蕉的支持度很高,那么就证明了苹果与香蕉这个组合更受人们的欢迎,所以商家可以将香蕉和苹果放在接近入口的地方,方便人们的购买。 在《python数据挖掘入门与实践》一书中,对置信度(confidence)的定义是: 我不确定多少人和我一样看了这句话后云里雾里的,反正我是查阅了资料,资料里写的是:表示使用包含A的事务(商品)中同时包含B事务(商品)的比例,即同时包含A和B的事务(商品)占包含A事务的比例。相应的公式为: 置信度的实际作用是能够做到关联规则挖掘,判断用户最有可能选择哪些组合的商品,即计算用户选择了A商品(前提条件)后又选择了B商品(结论)的概率。 由于书上的代码中支持度只是具体的数值而非概率,所以我进行了一定的优化,代码在书上都有,我这里截取最核心的部分: 部分结果截图如下: hooly.数据挖掘关联分析中的支持度、置信度和提升度.简书,2017浅谈数据挖掘支持度(support)与置信度(confidence)
前言
参考样本
定义与理解
规则:即给出一个前提条件,得到一个对应的结论。就好比:我如果买了苹果,那么我有可能会继续选择香蕉。
应验:即事件的发生。就好比:我买了苹果,也确实买了香蕉,那么就应验了上一条规则。支持度(support)
数据集中规则应验的次数,统计起来很简单。有时候,还需要对支持度进行规范化,再除以规则有效前提下的总数量。支持度衡量的是给定规则应验的比例
support(A → B) = P(A ∪ B)支持度实际作用
置信度(confidence)
置信度衡量的是规则准确率如何,即符合给定条件(即规则的“如果”语句所表示的前提条件)的所有规则里,跟当前规则结论一致的比例有多大。计算方法为首先统计当前规则的出现次数,再用它来除以条件(“如果”语句)相同的规则数量。
Confidence(A->B)=P(A | B)置信度的实际作用
就比如曾经有个案例,发现婴儿的爸爸在购买尿布时很有可能购买啤酒,于是商家就将尿布和啤酒放一起卖,增加了销售额,这就是置信度在实际生活中的一个场景。代码与结果
# 遍历所有样本 for sample in X: for premise in range(n_features): # 如果客户没有购买,则跳过 if sample[premise] == 0: continue num_occurances[premise] += 1 for conclusion in range(n_features): # 不需要判断用户购买了A,又购买了A if premise == conclusion: continue # 当前提条件与结论都应验后,有效数据 + 1,否则无效数据 + 1 if sample[conclusion] == 1: valid_rules[(premise, conclusion)] += 1 else: invalid_rules[(premise, conclusion)] += 1 support = defaultdict(float) confidence = defaultdict(float) # 支持度 for premise, conclusion in valid_rules.keys(): rule = (premise, conclusion) support[rule] = valid_rules[rule] / n_samples # 置信度 for premise, conclusion in valid_rules.keys(): rule = (premise, conclusion) confidence[rule] = valid_rules[rule] / num_occurances[premise] for premise, conclusion in confidence: premise_name = features[premise] conclusion_name = features[conclusion] print("Rule: if a person buys {0} they will also buy {1}".format(premise_name, conclusion_name)) print(" - Confidence: {0:.3f}".format(confidence[(premise, conclusion)])) print(" - Support: {0}".format(support[(premise, conclusion)])) print("")
说明:
X:存放了所有的样本集合的ndarray对象
n_features:X.shape[1],即该数组(样本)有多少列
n_samples:X.shape[0],即该数组(样本)有多少行
valid_rules:defaultdict(int),规则应验次数
invalid_rules:defaultdict(int),规则无效次数参考
Robert Layton.python数据挖掘入门与实践〔M〕.人民邮电出版社,2016:6-10
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算