Scikit-learn---5.聚类模型

(一)通用方法、参数

1.通用方法

  1. get_params([deep]):返回模型的参数。

    1. deep: 如果为True,则可以返回模型参数的子对象。
  2. set_params(**params):设置模型的参数。

    1. params:待设置的关键字参数。
  3. fit(X[, y, sample_weight]) :训练模型。

    1. X :样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
    2. y :样本的标签集合。它与X 的每一行相对应。
    3. sample_weight:样本的权重。其形状为 [n_samples,],每个元素代表一个样本的权重。
  4. predict(X, sample_weight):返回每个样本所属的簇标记。

    1. X :样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
    2. sample_weight:样本的权重。其形状为 [n_samples,],每个元素代表一个样本的权重。
  5. fit_predict(X[, y, sample_weight]) :训练模型并执行聚类,返回每个样本所属的簇标记。

    1. X :样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
    2. y :样本的标签集合。它与X 的每一行相对应。
    3. sample_weight:样本的权重。其形状为 [n_samples,],每个元素代表一个样本的权重。
  6. transform(X):将数据集 X 转换到cluster center space 。

    cluster center space 中,样本的维度就是它距离各个聚类中心的距离。

    1. X :样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
  7. fit_transform(X[, y, sample_weight]):训练模型并执行聚类,将数据集 X 转换到cluster center space 。

    1. X :样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
    2. y :样本的标签集合。它与X 的每一行相对应。
    3. sample_weight:样本的权重。其形状为 [n_samples,],每个元素代表一个样本的权重。

2.通用参数

  1. n_jobs:一个正数,指定任务并形时指定的 CPU数量。

    如果为 -1 则使用所有可用的 CPU

  2. verbose:一个正数。用于开启/关闭迭代中间输出日志功能。

    1. 数值越大,则日志越详细。
    2. 数值为0或者None,表示关闭日志输出。
  3. max_iter :一个整数,指定最大迭代次数。

    如果为None则为默认值(不同solver的默认值不同)。

  4. tol:一个浮点数,指定了算法收敛的阈值。

  5. random_state:一个整数或者一个RandomState实例,或者None

    1. 如果为整数,则它指定了随机数生成器的种子。
    2. 如果为RandomState实例,则指定了随机数生成器。
    3. 如果为None,则使用默认的随机数生成器。

一、KMeans

二、DBSCAN

1
2
class sklearn.cluster.DBSCAN(eps=0.5, min_samples=5, metric='euclidean',
metric_params=None, algorithm='auto', leaf_size=30, p=None, n_jobs=None)

1.参数

  1. epsϵ参数,用于确定邻域大小。
    MinPts

  2. min_samplesMinPts参数,用于判断核心对象。

  3. metric:一个字符串或者可调用对象,用于计算距离。

    如果是字符串,则必须是metrics.pairwise.calculate_distance中指定的。

  4. metric_params:一个字典,当metric 为可调用对象时,为metric 提供关键字参数。

  5. algorithm:一个字符串,用于计算两点间距离并找出最近邻的点。可以为:

    1. 'auto':由算法自动选取合适的算法。
    2. 'ball_tree':用ball树来搜索。
    3. 'kd_tree':用kd树来搜索。
    4. 'brute':暴力搜索。
  6. leaf_size:一个整数,用于指定当algorithm=ball_tree或者kd_tree时,树的叶结点大小。

    该参数会影响构建树、搜索最近邻的速度,同时影响存储树的内存。

  7. p:一个浮点数,指定闵可夫斯基距离的p值。ϵϵ

  8. n_jobs:指定并行度。

2.属性

  1. core_sample_indices_:一个形状为[n_core_samples,] 的数组,给出了核心样本在原始训练集中的位置。

  2. components_:一个形状为[n_core_samples,n_features] 的数组,给出了核心样本的一份拷贝

  3. labels_:一个形状为[n_samples,] 的数组,给出了每个样本所属的簇标记。

    对于噪音样本,其簇标记为 -1。

3.方法

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

4.考察ϵ参数的影响

  1. ARI指数随着 的增长,先上升后保持平稳最后断崖下降。 断崖下降是因为产生的训练样本的间距比较小,最远的两个样本点之间的距离不超过 30。当ϵ过大时,所有的点都在一个邻域中。

  2. 核心样本数量随着ϵ的增长而上升。这是因为随着ϵ的增长,样本点的邻域在扩展,则样本点邻域内的样本会更多,这就产生了更多满足条件的核心样本点。但是样本集中的样本数量有限,因此核心样本点数量的增长到一定数目后稳定。

5.考察MinPts参数的影响

  1. ARI指数随着的增长,平稳的下降。

  2. 核心样本数量随着MinPts的增长基本上线性下降。这是因为随着MinPts的增长,样本点的邻域中必须包含更多的样本才能使它成为一个核心样本点。因此产生的核心样本点越来越少。

三、MeanShift

四、AgglomerativeClustering

五、BIRCH

六、GaussianMixture

七、SpectralClustering

posted @   nxf_rabbit75  阅读(363)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2018-12-27 去掉python的警告
(一)通用方法、参数1.通用方法2.通用参数一、KMeans二、DBSCAN1.参数2.属性3.方法4.考察ϵ参数的影响5.考察MinPts参数的影响三、MeanShift四、AgglomerativeClustering五、BIRCH六、GaussianMixture七、SpectralClustering
点击右上角即可分享
微信分享提示