Прежде всего, алгоритм кластеризации и алгоритм обнаружения аномалий - это не одно и то же. В кластеризации цель состоит в том, чтобы назначить каждый из вас экземпляров в группу (кластер), в которой в каждой группе у вас есть похожие экземпляры. При обнаружении аномалий цель состоит в том, чтобы найти экземпляры, которые не похожи ни на один из других экземпляров.
Некоторые алгоритмы кластеризации, например DB-SCAN , создают «кластер аномалий». В этом кластере есть все экземпляры, которые не принадлежат ни одному другому кластеру. Я бы предложил попробовать и посмотреть, решит ли это вашу проблему.
Почти все алгоритмы кластеризации ожидают вектор чисел в качестве входных данных. Если вы хотите использовать строковые столбцы, вы можете использовать такие методы, как One Hot Encoding , чтобы преобразовать строку в вектор чисел. Есть много способов сделать это, и вы можете найти некоторые реализации sk-learn здесь .