之前我们介绍了几种聚类模型,接下来我们就分别看看他们如何用代码实现吧。
K-Means
首先是k-means的scikit-learn实现:
如图所示,我们介绍几个重要的参数:
1.init
该参数指初始化聚类中心的方式,默认为k-means++,你也可以选择random。
2.n_clusters
指k-means中的k值,即簇的个数,默认为8个。
3.n_init
指初始化聚类中心时,算法迭代的次数,默认为10。
层次聚类(AgglomerativeClustering)
该算法的scikit-learn实现如下:
还是来看一些重要的参数:
1.affinity
指计算距离的方式,默认为euclidean
2.compute_full_tree
指是否训练一棵完整的树,默认为auto。
3.linkage
指距离度量的方式,默认为ward,即最小距离。也可以选择complete(最大距离)和average(平均距离)。
密度聚类(DBSCAN)
DBSCAN的scikit-learn实现如下所示:
第1个参数:eps
指邻域的半径,默认为0.5.
第2个参数:leaf_size
指叶节点的个数,用来限制树的生长。
第3个参数:metric
指距离度量的方式,默认为euclidean,即欧式距离。你还可以选择manhattan(曼哈顿距离)、chebyshev(切比雪夫距离)、minkowski(闵可夫斯基距离)和wminkowski(带权重的闵可夫斯基距离)。
第4个参数:min_samples
指一个点为核心时,其邻域所包含的样本数,默认为5.
高斯混合聚类(GMM)
该算法的代码实现如下:
我们来看几个重要的参数:
1.max_iter
指模型最大迭代次数,默认为100.
2.n_components
指该模型的成分数目,默认为1.
3.tol
指收敛的阈值,当小于该阈值时,EM算法停止迭代。
领取专属 10元无门槛券
私享最新 技术干货