当前位置: 首页 > 图灵资讯 > 行业资讯> python如何获取最优轮廓系数

python如何获取最优轮廓系数

来源:图灵python
时间: 2024-06-24 13:43:47

假如想要最好的一点,就应该选择最高的一点。

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电脑。