Я использую классификатор KNN, векторы функций которого взяты из классификатора K-Means (точнее, sklearn.cluster.MiniBatchKMeans
). Поскольку К-среднее начинается со случайных точек каждый раз, я получаю разные результаты каждый раз, когда запускаю свой алгоритм. Я сохранил центры кластеров в отдельном файле .npy
, когда результаты были хорошими, но теперь мне нужно использовать эти центры в моих K-средних, и я не знаю, как.
Следуя этому совету, я попытался использовать центры кластеров в качестве отправных точек, например:
MiniBatchKMeans.__init__(self, n_clusters=self.clusters, n_init=1, init=np.load('cluster_centers.npy'))
Тем не менее, результаты меняются при каждом запуске алгоритма.
Затем я попытался вручную изменить центры кластеров после подгонки данных:
kMeansInstance.cluster_centers_ = np.load('cluster_centers.npy')
Тем не менее, каждый раз разные результаты.
Единственное другое решение, которое я могу придумать, - это вручную реализовать метод прогнозирования с использованием сохраненных мною центров, но я не знаю как и не знаю, есть ли лучший способ решить мою проблему, чем переписать колесо .