Как проверить, содержит ли строка слово при применении association_rules? - PullRequest
0 голосов
/ 02 марта 2019

Я применяю правила ассоциации и выбираю только правила со следующими параметрами, однако я хочу выбирать только те правила, которые не имеют этих наборов элементов "AL", "DIAB", независимо от того, что их значения равны "0" "1", "у" или "п".Как я могу сказать: если результат содержит «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

1 Ответ

0 голосов
/ 03 марта 2019

Вместо того, чтобы сравнивать с равенством, почему бы вам просто не использовать оператор in?

'AL = 1' in rule['consequents']

Конечно, было бы более разумно генерировать интересующие вас правила, в первую очередь, а нечем фильтровать их потом, и работать с более эффективной структурой данных, чем с наборами строк ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...