• 技术文章 >Python技术 >Python基础教程

    python如何获取最优轮廓系数

    小妮浅浅小妮浅浅2021-09-02 11:17:45原创106

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

    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()
    # 拟合
    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基础教程

    专题推荐:python轮廓系数
    品易云
    上一篇:python中findall()和finditer()的区别 下一篇:python数据类型的使用注意

    相关文章推荐

    • python re.match函数的使用• python中re.findall函数的介绍• python正则表达式中的分组是什么• Python爬虫架构的组成• Python正则表达式字符串的组成• Python正则表达式中元字符的理解• python字符类的使用• python正则表达式中区间的介绍• python正则表达式中量词的分类• python正则表达式中分组的使用• python正则表达式中分组的命名• python和nodejs有什么区别• Python正则表达式如何反向引用分组• Python正则表达式实现非捕获分组• python中findall()和finditer()的区别

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网