Допустим, у меня есть очень большой набор данных с «N» строками и «М» функциями. У меня также есть два входа.
- 'm': определяет количество проверяемых объектов (m
- 'support' = идентичные строки / общее количество строк для подмножества объектов m). в основном это минимальный процент идентичных строк с учетом числа m объектов
Мне нужно вернуть группы объектов, для которых значение 'support' больше, чемпредопределенное значение.
Например, давайте возьмем этот набор данных:
d = {
'A': [100, 200, 200, 400,400], 'B': [1,2,2,4,5],
'C':['2018-11-19','2018-11-19','2018-12-19','2018-11-19','2018-11-19']
}
df = pd.DataFrame(data=d)
A B C
0 100 1 2018-11-19
1 200 2 2018-11-19
2 200 2 2018-12-19
3 400 4 2018-11-19
4 400 5 2018-11-19
набор данных
В приведенном выше примере, скажем, что
'm' = 2
'support' = 0.4
Тогда функция должна вернуть оба ['A', 'B] и [' A ',' C '], поскольку обе эти функции при рассмотрении вместе имеют как минимум 2 одинаковые строки из 5 строк (> = 0,4).
Я понимаю, что наивным решением было бы сравнить все комбинации «m»функции из 'M' и проверьте процент идентичных строк. Однако это будет невероятно сложным после величины features пересекает двойные цифры, особенно с тысячами строк. Что было бы оптимизированным кодом для решения этой проблемы?