Прежде всего, вы не классифицируете, вы кластеризуете данные. Классификация - это другой процесс.
Алгоритм K-Средств включает случайность при выборе начальных центров кластера. Установив random_state, вам удастся воспроизвести ту же кластеризацию, что и исходные кластерные центры. Однако это не устраняет вашу проблему. Вы хотите, чтобы кластер с id 0 был setosa, 1 был versicolor и т. Д. Это невозможно, потому что алгоритм K-Means не знает этих категорий, он только группирует цветы в зависимости от их сходства. Вы можете создать правило, чтобы определить, какой кластер соответствует какой категории. Например, вы можете сказать, что если более 50% цветов, принадлежащих кластеру, также относятся к категории setosa, то документы этого кластера следует сравнивать с набором документов в категории setosa.
Это лучший способ сделать это, о котором я могу думать. Однако это не так, как мы оцениваем качество кастинга, есть показатели, которые вы можете использовать, например, коэффициент силы. Надеюсь, я помог.
Посмотрите на следующий сайт. Это говорит о том, как вы можете изменить свой код, чтобы заставить его создавать прямую линию для ваших данных. Однако это будет не так точно, как использование изогнутой линии для считывания прогнозов.