当前位置: 首页 > news >正文

两个男性做网站工装装修公司排名

两个男性做网站,工装装修公司排名,眼科医院网站优化服务商,WordPress分享到微博代码关联规则算法学习—Apriori Apriori算法是关联规则挖掘中的经典算法,用于发现数据集中的频繁项集和强关联规则。其核心思想基于先验性质:若一个项集是频繁的,则其所有子集也一定是频繁的。该算法通过逐层搜索的迭代方法高效挖掘关联规则。 要…

关联规则算法学习—Apriori

        Apriori算法是关联规则挖掘中的经典算法,用于发现数据集中的频繁项集和强关联规则。其核心思想基于先验性质:若一个项集是频繁的,则其所有子集也一定是频繁的。该算法通过逐层搜索的迭代方法高效挖掘关联规则。

要求:

        理解并掌握关联规则经典算法Apriori算法,理解算法的原理,能够实现算法,并对给定的数据集进行关联规则挖掘

代码实现:

import pandas as pd
from itertools import combinations
from collections import defaultdict# 读取数据
data = pd.read_csv('实验2-Groceries(1).csv')# 预处理数据,将字符串格式的项集转换为集合
transactions = []
for items in data['items']:# 去除大括号和引号,然后分割items_cleaned = items.strip('{}"').replace('"', '').split(',')transactions.append(set(items_cleaned))print(f"总交易数: {len(transactions)}")
print(f"前5条交易示例: {transactions[:5]}")def get_frequent_itemsets(transactions, min_support):"""实现Apriori算法找出频繁项集"""# 第一次扫描:计算单个项目的支持度item_counts = defaultdict(int)for transaction in transactions:for item in transaction:item_counts[item] += 1# 筛选满足最小支持度的单项num_transactions = len(transactions)frequent_items = {}for item, count in item_counts.items():support = count / num_transactionsif support >= min_support:frequent_items[frozenset([item])] = supportcurrent_frequent = frequent_itemsfrequent_itemsets = {}k = 1while current_frequent:frequent_itemsets.update(current_frequent)# 生成候选项集next_candidates = set()items = [item for itemset in current_frequent.keys() for item in itemset]unique_items = list(set(items))# 生成k+1大小的候选项集if k == 1:# 对于k=1,直接两两组合for i in range(len(unique_items)):for j in range(i+1, len(unique_items)):next_candidates.add(frozenset([unique_items[i], unique_items[j]]))else:# 对于k>1,使用先验性质for itemset1 in current_frequent:for itemset2 in current_frequent:union_set = itemset1.union(itemset2)if len(union_set) == k + 1:next_candidates.add(union_set)# 第二次扫描:计算候选项集的支持度candidate_counts = defaultdict(int)for transaction in transactions:for candidate in next_candidates:if candidate.issubset(transaction):candidate_counts[candidate] += 1# 筛选满足最小支持度的项集current_frequent = {}for itemset, count in candidate_counts.items():support = count / num_transactionsif support >= min_support:current_frequent[itemset] = supportk += 1return frequent_itemsetsdef generate_association_rules(frequent_itemsets, min_confidence):"""生成关联规则"""rules = []for itemset in frequent_itemsets.keys():if len(itemset) < 2:continuesupport_itemset = frequent_itemsets[itemset]# 生成所有可能的非空子集all_subsets = []for i in range(1, len(itemset)):all_subsets.extend(combinations(itemset, i))for subset in all_subsets:subset = frozenset(subset)remaining = itemset - subsetif remaining:support_subset = frequent_itemsets.get(subset, 0)if support_subset > 0:confidence = support_itemset / support_subsetif confidence >= min_confidence:rules.append((subset, remaining, support_itemset, confidence))return rules# 设置支持度和置信度阈值
min_support = 0.05  # 5%的支持度
min_confidence = 0.3  # 30%的置信度# 找出频繁项集
frequent_itemsets = get_frequent_itemsets(transactions, min_support)# 生成关联规则
rules = generate_association_rules(frequent_itemsets, min_confidence)# 按支持度排序
sorted_rules = sorted(rules, key=lambda x: x[2], reverse=True)# 打印频繁项集
print("\n频繁项集 (支持度 ≥ {}):".format(min_support))
for itemset, support in frequent_itemsets.items():if len(itemset) >= 2:  # 只显示多项集print(f"{set(itemset)}: {support:.3f}")# 打印关联规则
print("\n关联规则 (置信度 ≥ {}):".format(min_confidence))
for rule in sorted_rules[:20]:  # 显示前20条规则antecedent, consequent, support, confidence = ruleprint(f"{set(antecedent)} => {set(consequent)} (支持度: {support:.3f}, 置信度: {confidence:.3f})")# 尝试不同的支持度和置信度
parameters = [(0.05, 0.3),  # 原始参数(0.03, 0.4),  # 更低支持度,更高置信度(0.08, 0.25)  # 更高支持度,更低置信度
]for sup, conf in parameters:print(f"\n参数: 最小支持度={sup}, 最小置信度={conf}")freq_itemsets = get_frequent_itemsets(transactions, sup)rules = generate_association_rules(freq_itemsets, conf)print(f"频繁项集数量: {len(freq_itemsets)}")print(f"关联规则数量: {len(rules)}")if rules:# 显示支持度最高的规则top_rule = max(rules, key=lambda x: x[2])print("支持度最高的规则:")print(f"{set(top_rule[0])} => {set(top_rule[1])} (支持度: {top_rule[2]:.3f}, 置信度: {top_rule[3]:.3f})")

执行结果:

http://www.dtcms.com/a/547665.html

相关文章:

  • 松江信息科技有限公司网站中国交通建设集团有限公司招标网
  • 深圳营销型网站联系方式wordpress author.php
  • 下载免费网站模板手机网站的页面大小
  • 制作精美网站建设服务周到网上商城平台
  • 网站建设与营销服务wordpress评论加图片
  • 麻辣烫配方教授网站怎么做临沂做网站选盛誉
  • 企业seo平台搜索引擎优化总结感悟
  • 云南网站建设及优化网页制作与网站建设宝典
  • 使用什么工具什么步骤完成网站的设计与建设咸阳网站建设电话
  • 乐站_网站建设_自助建站制作网站的钱
  • 国外设计类网站英文二手汽车网站建设
  • 知行网站建设网站建设摊销时间是多久
  • 下列关于网站开发中网页额中国国建设监理协会网站
  • 哪个网站用div做的好大公司的网站都找谁设计
  • 哪些外国购物网站可以做涉密项目单位网站建设流程
  • 温州网站改版公司哪家好建设局电话965559
  • 什么是网站框架结构做动图素材网站
  • 做最好的色书网站温州做外贸网站设计
  • 百度收录效果好的网站北京seo网站诊断
  • 在哪个网站做推广好网站建设费用应按几年摊销
  • 黄陂区建设局网站谷歌搜索引擎大全
  • 全网推广平台推荐快速排名优化怎么样
  • vs2008做网站长春做网站费用
  • 外贸出口工艺品怎么做外贸网站贵阳市城乡建设学校网站
  • 免费拓客软件seol英文啥意思
  • 长沙可以做网站的公司南宫企业做网站
  • 做网站平台需要什么条件遂宁市网站建设
  • 学院网站群建设方案上海网站络公司
  • 关于服装的网站规划与设计定制网站开发报价单
  • 怎样创建网站详细步骤咖啡网页制作素材