返回介绍

数学基础

统计学习

深度学习

工具

Scala

七、SpectralClustering

发布于 2023-07-17 23:38:23 字数 2808 浏览 0 评论 0 收藏 0

  1. SpectralClusteringscikit-learn给出的谱聚类模型。其原型为

    
    
    xxxxxxxxxx
    class sklearn.cluster.SpectralClustering(n_clusters=8, eigen_solver=None, random_state=None, n_init=10, gamma=1.0, affinity='rbf', n_neighbors=10, eigen_tol=0.0, assign_labels='kmeans', degree=3, coef0=1, kernel_params=None, n_jobs=None)
    • n_clusters:一个整数,指定降维的维数,即 $ MathJax-Element-38 $ 。

    • eigen_solver:一个字符串或者None,指定求解特征值的求解器。可以为:

      • 'arpack':使用arpack 求解器。
      • 'lobpcg':使用lobpcg 求解器。
      • 'amg':使用amg 求解器。它要求安装pyamg。优点是计算速度快,支持大规模、稀疏数据,但是可能导致不稳定。
    • random_state:指定随机数种子。

    • n_init:一个整数,指定二次聚类时的k-means 算法的n_init 参数,它会重复执行k-means 算法n_init 轮,选择效果最好的那轮作为最终聚类的输出。

    • affinity:一个字符串、数组或者可调用对象,指定相似度矩阵的计算方式。

      • 如果是字符串,则必须是'nearest_neighbors''precomputed''rbf'、或者由sklearn.metrics.pairwise_kernels 支持的其它核函数。
      • 如果是一个数组,则直接给出相似度矩阵。
      • 如果是可调用对象,则输入两个样本,输出其相似度。
    • gamma:一个浮点数,它给出了rbf,poly,sigmoid,laplacian,chi2 核的系数。

      如果affinity='nearest_neighbors',则忽略该参数。

    • degree:一个整数,当使用多项式核时,指定多项式的度。

    • coef0:一个整数,当使用多项式核和sigmoid 核时,指定偏置。

    • kernel_params:一个字典,当affinity 是可调用对象时,传给该可调用对象的关键词参数。

    • n_neighbors:一个整数,指定当计算相似度矩阵时,考虑样本周围近邻的多少个样本。

      如果affinity='rbf',则忽略该参数。

    • eigen_tol:一个浮点数,当使用arpack 求解器求解特征值时,指定收敛阈值。

    • assign_labels:一个字符串,指定二次聚类的算法。

      • 'kmeans':使用k-means 算法执行二次聚类。
      • 'discretize':使用discretize 执行二次聚类。
    • n_jobs:指定并行度。

  2. 属性:

    • affinity_matrix:一个形状为(n_samples,n_samples) 的数组,给出了相似度矩阵。
    • labels_:一个形状为(n_samples,) 的数组,给出了每个样本的簇标记。
  3. 方法:

    • fit(X[,y]):训练模型。
    • fit_predict(X[, y]):训练模型并执行聚类,返回每个样本所属的簇标记。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文