下面是一个使用K-Means算法和网格搜索交叉验证(GridSearchCV)进行超参数调优的示例代码:
from sklearn.cluster import KMeans
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import make_blobs
# 创建一个模拟数据集
X, y = make_blobs(n_samples=1000, centers=4, random_state=0)
# 定义K-Means模型
kmeans = KMeans()
# 定义超参数的范围
param_grid = {'n_clusters': [2, 3, 4, 5, 6]}
# 使用网格搜索交叉验证进行超参数调优
grid_search = GridSearchCV(kmeans, param_grid, cv=5)
grid_search.fit(X)
# 输出最佳超参数和对应的模型得分
print("Best Parameters: ", grid_search.best_params_)
print("Best Score: ", grid_search.best_score_)
在上述代码中,首先使用make_blobs
函数创建了一个模拟数据集,然后定义了一个KMeans
模型。接下来,定义了超参数的范围,这里只调整了n_clusters
参数的取值范围。然后,使用GridSearchCV
进行网格搜索交叉验证,将KMeans
模型和超参数的范围作为参数传入。最后,输出了最佳超参数和对应的模型得分。
你可以根据自己的需求调整超参数的范围和其他参数,如交叉验证的折数(cv参数)。