我正在应用关联规则并仅选择具有以下参数的规则,但是无论它们的值是“ 0”还是“ 1”,我都只选择没有这些项目集的规则“ AL”,“ DIAB” ,“ y”或“ n”。我怎么说:当结果包含“ AL”,“ DIAB”时,不要选择规则。这是我的代码,但仅在确切的字符串上精确,而不在子字符串上
Selected_rules = rules[ (rules['antecedent_len'] <= 3) &
(rules['confidence'] > 0.6) &
(rules['lift'] > 1) & ( rules['consequents'] != {'AL = 1'} ) & (rules['consequents'] != {'DIAB = n'}) ]
例如,我不希望选择此规则,因为它同时具有“ AL”和“ DIAB”
frozenset(['SEX = F', 'Age = 70']) frozenset(['AL = 0', 'DIAB = y']) 0.25 0.25 0.25 1 4 0.1875 inf 2
答案 0 :(得分:0)
您为什么不只使用in
运算符,而不是与相等性进行比较?
'AL = 1' in rule['consequents']
当然,只首先生成感兴趣的规则而不是事后进行过滤会更有意义,并且使用比字符串集更有效的数据结构...