вы можете следовать этому подходу
преобразует предпочтения пользователя в векторы, каждый индекс которых соответствует какому-либо продукту, и значение равно 1, если пользователю нравится, или нет, например,
user 1 -> [1,1,1,1,0,0]
user 2 -> [0,0,0,1,1,1]
...
теперь вы можете легко использовать модель KNN с евклидовым расстоянием или использовать другой метод сходства, вы можете использовать самый простой и простой sklearn библиотека кластеризации
с более подробной информацией, такой как предоставленный код, вывод, логика и т. Д. Я могу быть более конкретным