python培训之如何获取最优轮廓系数

发布时间:2022-12-16 09:34:01 人气:139 作者:多测师

  python如何获取最优轮廓系数

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

  1、通过设置不同的k值来测试和计算轮廓系数,可以获得最佳k值对应的最佳轮廓系数。

  2、也可以绘图观察和选择最高。但为了防止拟合现象,也可以通过手肘选择最佳k值。

  实例

  from sklearn.cluster import KMeans

  from sklearn.preprocessing import MaxAbsScaler # 小数定标标准化

  from sklearn.preprocessing import MinMaxScaler # 离差标准化

  from sklearn.preprocessing import StandardScaler # 标准差标准化

  # 评估指标-----轮廓系数

  from sklearn.metrics import silhouetee_score

  # 由于是聚类算法,数据可能存在量纲,需要标准化,在使用算法之前

  # 实例化

  sca = MaxAbsScaler()

  sca = MinMaxScaler()

  sca = StandardScaler()

python培训之如何获取最优轮廓系数

  # 拟合

  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学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线