You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.2 KiB

8.4 发现毒蘑菇的特性

最后我们来尝试使用 Apriori 算法来寻找毒蘑菇中的一些公共特征,利用这些特征就能避免吃到那些有毒的蘑菇。现在有这样一个数据集,数据集合中有一个关于蘑菇的 23 种特征的数据集,每一个特征都包含一 个标称数据值。部分数据截图如下:

其中每行的第一列为标签1 表示蘑菇无毒, 2 表示蘑菇有毒。接下来,为了找到毒蘑菇的共性特征,我们可以使用刚刚动手实现的 Apriori 算法来含有标签值为 2 的频繁项集。如寻找含有 3 个元素的频繁项集。


import pandas as pd

# 读取蘑菇数据
data = pd.read_csv('./data.csv').values()

# 调用上一节中实现的apriori算法
L, _ = apriori(data, minsupport=0.4)

# 遍历含有3个元素的频繁项集
for item in L[3]:
    if item.intersection(2):
        # 打印出含有标签值为2的频繁项集
        print(item)

结果如下:

frozenset([63, 59, 2, 93])
frozenset([39, 2, 53, 34])
frozenset([2, 59, 23, 85])
frozenset([2, 59, 90, 85])
frozenset([39, 2, 36, 34])
frozenset([39, 63, 2, 85])

可以看出,当这些特征一起出现时,表示该蘑菇很有可能是有毒的。