之前我們介紹了幾種聚類模型,接下來我們就分別看看他們如何用代碼實現吧。
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算法停止迭代。