关联规则--Apriori算法案例--Python

数据挖掘


边学边写,持续更新中
配合目录用


输入

这是一个excel表格,有1k条数据
数据集链接放在下面了
1000条患者病症
在这里插入图片描述

输出

直接输出了强关联规则
在这里插入图片描述
更多的内容,在代码里面设置
比如看频繁项集,可以自己取消注释代码再运行

代码

# -*- codeing = utf-8 -*-
# @Time : 2021/11/26 22:41
# @Author : Tancy
# @File : 病例分析-- Apriori算法.py
# @Software : PyCharm

# 1.数据读取
import pandas as pd
df = pd.read_excel('D:\A_学习\数据仓库与数据挖掘\实验\患者病症.xlsx')
# print(df.head())

# 2. 数据预处理

symptoms = []  # 创建一个空列表  病症
# 切分 转化为一个二维数组
for i in df['病人症状'].tolist():
    symptoms.append(i.split(','))
# print(symptoms)

# 将数据转化为布尔类型
from mlxtend.preprocessing import TransactionEncoder
TE = TransactionEncoder() # 构造转换类型
data = TE.fit_transform(symptoms)  # 转换为一个布尔类型的表格
# print(data)

# 将布尔类型的数据存储为DataFrame 格式
import pandas as pd
df = pd.DataFrame(data, columns=TE.columns_)
# print(df.head())

# 3.挖掘频繁项集
from mlxtend.frequent_patterns import apriori
items = apriori(df, min_support=0.15, use_colnames=True)
# print(items)
# print(items[items['itemsets'].apply(lambda x:len(x))==1])
# print(items[items['itemsets'].apply(lambda x:len(x))==2])
# print(items[items['itemsets'].apply(lambda x:len(x))==3])
# print(items[items['itemsets'].apply(lambda x:len(x))==4])

# 4.根据最小置信度,在频繁项集中找强关联规则
from mlxtend.frequent_patterns import association_rules
rules = association_rules(items, min_threshold=0.6)
# print(rules)

# 5.提取关联规则,美化
for i, j in rules.iterrows():
    X = j['antecedents']
    Y = j['consequents']
    x = ', '.join([item for item in X])
    y = ', '.join([item for item in Y])
    print(x + ' → ' + y)
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tancy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值