У меня есть большой CSV-файл из майнинга некоторых правил ассоциации.Два столбца - это правила и доверительная оценка.
Столбец правил содержит списки элементов различной длины, например
[[Dog],[Dog,Cat],[Dog,Cat,Hamster],[Dog,Cat,Hamster,Goldfish]]
Столбец доверительной оценки содержит список чисел от 0 до 1, например
[0.1, 0.5, 0.1, 0.5]
Я хочу удалить избыточные строки, основываясь на том, является ли значение правила подмножеством других значений правила, но я хочу удалить только строки с аналогичными показателями достоверности (в пределах окна доверия, скажем, 5%).
В вышеприведенном примере останутся строки [Dog] и [Dog, Cat].
[Dog
] останутся, потому что [Dog]
и [Dog,Cat,Hamster]
будутсгруппированные вместе из-за их доверительной вероятности 0,1, тогда [Dog,Cat,Hamster]
будет тогда удален, потому что [Dog]
является подмножеством [Dog,Cat,Hamster]
, и, следовательно, правило [Dog,Cat,Hamster]
является избыточным.
Аналогично, [Dog,Cat]
и [Dog,Cat,Hamster,Goldfish]
оба имеют показатель достоверности 0,5, и [Dog,Cat,Hamster,Goldfish]
будет удалено, потому что [Dog, Cat] является подмножеством [Dog, Cat, Hamster, Goldfish].
Я знаю первоеМне нужно сделать, это посмотреть на доверитьсяЧтобы оценить наименьшее правило, сгруппируйте все правила, попадающие в доверительное окно этого показателя, а затем удалите все правила, являющиеся надмножеством меньшего правила.Затем мне нужно перейти к следующему наименьшему правилу и делать то же самое, пока все правила не будут сокращены / остановлены.
Мне интересно, есть ли простой способ сделать это в Python / Pandas?
Я довольно новичок в кодировании, поэтому не знаю, возможно ли это вообще.
Спасибо