미용실의 초초음절 태도


import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from itertools import product

# Hyperparameter candidate values list
n_clusters_list = (4, 6, 8, 10)
init_list = ('k-means++', 'random')
n_init_list = (10, 20, 30)
max_iter_list = (300, 500, 1000)
tol_list = (1e-4, 1e-5, 1e-6)
algorithm_list = ('auto', 'full')
random_state_list = (0, 42, 123)

hyperparameters = list(product(n_clusters_list,
                                init_list,
                                n_init_list,
                                max_iter_list,
                                tol_list,
                                algorithm_list,
                                random_state_list))

best_score = None
best_params = None

for params in hyperparameters:
    model = KMeans(n_clusters=params(0),
                   init=params(1),
                   n_init=params(2),
                   max_iter=params(3),
                   tol=params(4),
                   algorithm=params(5),
                   random_state=params(6))
    model.fit(X)
    score = model.score(X)
    if best_score is None or score > best_score:
        best_score = score
        best_params = params

print('Best score:', best_score)
print('Best parameters:', best_params)
#Best parameters: (10, 'k-means++', 20, 300, 0.0001, 'auto', 123)