Потому что люди-склеры рано решили, что все должно иметь fit(X, y)
и predict(X)
функции. И это, вероятно, не изменится из-за обратной совместимости ...
Это не имеет особого смысла для кластеризации, в которой не используется y
(по умолчанию None
, поскольку оно игнорируется). И нет реального варианта использования, в котором вы бы хотели замените классификатор на кластеризацию, либо.
Тем не менее, в какой-то момент вам потребуется запустить алгоритм. Это анти-паттерн делать это в конструкторе (поэтому KMeans(n_clusters=5, data=X)
- это нет-нет), поэтому вам придется вызывать какой-то метод. Вы можете также назвать это fit
тогда, что подходит по крайней мере для методов, основанных на оптимизации, таких как k-means.
Однако вы можете просто использовать метод k_means(X, n_clusters=5)
вместо использования класса. Тогда это будет одна строка (см. Исходный код fit
для примера).