python如何获取最优轮廓系数

如果想要最好的点,应该选择最高的点。

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=1,随机种子,默认是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基础教程

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。