假如想要最好的一点,就应该选择最高的一点。
1、最佳k值对应的最佳轮廓系数可以通过设置不同的k值来测试和计算。
2、也可以画出最高的观察和选择。但为了防止拟合,最佳k值也可以通过肘部选择。
实例
fromsklearn.clusterimportKMeans fromsklearn.preprocessingimportMaxAbsScaler#小数定标准化 fromsklearn.preprocessingimportMinMaxScaler#离差标准化 fromsklearn.preprocessingimportStandardScaler#标准差标准化 #评价指标-轮廓系数 fromsklearn.metricsimportsilhouetee_score #因为是聚类算法,数据可能存在量纲,需要标准化,在使用算法之前 #实例化 sca=MaxAbsScaler() sca=MinMaxScaler() sca=StandardScaler() #拟合 sca.fit(训练集特征) #处理数据 X_train=sca.transform(训练集特征) #实例化 km=KMeans() #参数: #n_clusters=3,表示K=3,即三个随机聚类中心,最小值为2 #init,聚类中心的初始化方法,默认k-means++ #max_iter,默认情况下,迭代次数为300。如果后期不能收敛,可以尝试增加迭代次数。 #random_state=一、随机种子,默认是None #拟合 km.fit(训练集特征) #检查聚类中心 print('聚类中心:',km.cluster_centers_) #检查预测结果 #可直接传入训练集,自定义二维数组也可以传入自定义二维数组 y_pred=km.predict(训练集的特点) print('整个数据类别:',y_pred) #查看SSE-误差平方和 #默认情况下是反向操作,大多数情况下是负值【-inf,0】 #绝对值越小越好 score=km.score(X_train,y_pred) print('SSE',score) #评价指标-轮廓系数(-1,1)越大越好 print('轮廓系数:',silhouetee_score(X_train,y_pred))
以上是python获得最佳轮廓系数的方法,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。