10种Python聚类算法完整操作示例(建议收藏)
聚类或聚类分析是无监督学习问题。它通常被用作数据分析技术,用于发现数据中的有趣模式,例如基于其行为的客户群。有许多聚类算法可供选择,对于所有情况,没有? | q j p单一的最佳聚类算法。相反,最好探索一系列聚类算法! r F以及每种算法的不同配置。W F X v在本教程中,你将发现如何在 python 中安装和使用顶级聚类算法。
完成本教程后,你将知道:
- 聚类是在输入数据的特征空间中查找自然组的无监督问题。
- 对于所有数据集,有许多不同的聚类算法和单一的最佳方法。
- 在 scikit-learn 机器学习库的 Python 中如何实现、适配和使用s p T i顶级聚类算法。
让我p 9 Y # ; V #们开始吧。
教程概述
本教程分为三部分:
- 聚v p { $ 9 ^ v类
- 聚类算法
- 聚类算法示例
- 库安装
- 聚类数据集
- 亲和力传播
- 聚合聚类
- BIRCH
- DBSCAN
- KD V k u K {-均值
- Mini-Batch Kk U K N 2 ; R M :-均Y A v值
- Mean Shift
- OPTICS
- 光谱聚类
- 高斯混合模型
一.聚类
聚类分析,即聚类,是一项无监督的机器学习任务。它包括自动发现数据中的自然分组。与监督学习(类似预测建模)不同,聚类算法 / M ^ y h H S只解释输入数据,并在特征空间中找到自然组或群集。
聚类技a ? Y s y g术适用于没有要预测的类,而是将实例划V r - 5 $ Z X (分为自然组的情况。
—源自:《数据挖掘页:实用! E A G a D d x机器学习工具和技术》2016年w & q N M % 3。
群集通常是特征空间中的密度区域,其中来自域的示例(观测或数据行)比其他群集更接近群集。群集可以具有作为样本或点特征空间的中心(质心),并且可以具有边界或范围。
这些群集可能反映出在从中绘制实例的域中工作的某种机制,这种机制使某g E 0 2 5 4 u .些实例彼此具有比它们与其余实例更强的相似性。
—源自:《数据挖掘页k 0 ! o I:实用机器学习工具和技术》2016年。
聚类可以作为数据分析活动提供帮助,以便了解更多关于问题域的信息,即F . I z v H所谓的模式发现或知识发现。例如:
- 该进化树可以被认j ~ % ) P i ^ % -为是人工聚类分析的结果;
- 将正常数据与异常值或异常分开可能会被认为是聚类问题;
- 根据自然行为将集群分g I C i开是一个集群问题,称为市场细分。
聚p d X类还可用作特征工程的类型,其中现有的和新的示例可被映射并标记为属于数据中所标识的群集之一。虽然确实存在许多特定于群集的定量措施,但是对所识别的群集的评估是主观的,并且可能需要领域专家。通常,聚类算法在人工合成数据集上} t 7 J | X 与预先定义的群集进行学术R _ = B @ P ^ P a比较,预计算法会发现这些群集。
聚类是一种无监督学习技术,因此很难评估任何给定方法的输出质量。
—源自:《机器学习页:概率观点》2012。
二.聚类算法
有许多类? k P 2
—源自:《统计学习的要素:数据挖掘0 O @ y +、推理和预测》,2016年
一些聚类算法要求您S M 6 9 ] s 3 H %指定或猜测数据中要发现的群集的数量,而另一些算法要求指定观测之间~ g G @ O . ) z的最小距离,其中示例可以被视为“关闭”或“连接”。因此,聚类分析是一个迭代过程,在该过程中,对所识别的群集的主观/ 5 [评估0 O e w被反馈回算法配置的改变中,直到达到期望的或适当的结果。scikitq { i-lej 0 t P H : marn 库提供了一套不同的聚R F [ * q 1类算法供选择。下面列出了10种比较流行的算法:
- 亲和力传播
- 聚合聚类
- BIRCH
- DBSCAN
- K-均值
- Mini-Batch K-均值
- Mean S$ $ O i = Fhift
- OPTICS
- 光} & q 5 Q S 7 j h谱聚类
- 高斯混合
每个算法都提供了一种不同的方法来应对数据中发f s l ! (现自然组的挑战。没有最好的聚类算法,也没有简单的方法来找到最好的算法为您的数据没有使用控制实验。在本教程中,我们将回顾如何使用来自 scikit-learn 库的这10个流行的聚类算法中的每一个。这些示例将为您复制粘贴示例并在自己的数据上测o 8 l试方法提供基础。我们不会深入研究算法如何工作的理论,也不会直接比较它们。让我们深入研究B 7 V o一下。
三.3 y .聚类算法示例
在本节中,我y | 7 p D H们将回顾如何在 scikit-learn 中使用10个流行的聚类算法。这包括一个拟合模型的例子和可视化结果的例子。这些示例用于将粘贴复制到您自己的项目中,并将方4 1 $ u 6 K法应用于您自己的数据。
1.库安装
首先,让我们安装库。不要跳过此步骤,因为你需要确保安装了最新版本。你可以使用 pip PythoQ b O Vn 安装程序安装 scikit-learn 存储库,如下所示:
sudo pip install scikit-learn接下来,让我) 1 O们确认已经安装了库,并且您正在使用一个现代版本。运行以下脚本以输出库版本号。
# 检查 scikit-learn 版本
import sklearn
print(sklearn.__version__)运行该示例时,您应该看到以下版本号或更高版本。
0.22.12.聚类数据集
我们将使用 make _ classification ()函数创建一个测试二分类数据集。数据集将有1000个示例,每个类有两个输入要素和一个群集。这些群集在两个维度上是可见的,因此我们可以用散点图绘4 J d t ; f |制数据,并通过指定的群集对图中的点进行颜色绘制。
这将有助于了解,至少在测试问题上,群集的识别能力如何。该测试问题中的群集基于多变量高斯,并非所有聚类算法都能有效地x d z G ) m z识别这些类型的群集。因此,本教程中的结果不应用作比较一般方法的基k y F , N $ 7 P l础。下面列出了创建和汇总合成聚类数据集的示例。
# 综合分类数据集
from numpy import where
from sklearn.dal ; B [ V bt/ ` a D Pasets import make_classt 4 g P c z Rification
from matplotlib import pyplot
# 定义数据集
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundan` M m }t=0, n_clusters_per_class=b i f ! _ n1, random_state=4)
# 为每个类的样本创建散点图
for class_vU 5 M I w { o !alue in range(2):
# 获取此类的示例的行索引
row_ix = where(y == class_value)
# 创建这些样本的8 W o : Q c散布
pyplot.scatter(X, X)
# 绘制散点图
pypl C = : .,我们可以开始查看应用于此数据集的聚类算法的示例。我已经做了一些最小的尝试来调整每个方法到数据集。3.亲和力传播
亲和力传播包括找到一组最能概括数据的范例。
我们设计了一种名为“亲和传播”的方法,它作为两对数据点之间相似度的输入度量。在数据点之间n y N 6交换实值消 0 ( m M _ } 3 H息,直到一组高质量的范例和相应的群集逐渐出现
—源自:《通过在数据点之间传递消息》2007。
它是通过 AffinityPropagation 类实现的,要调整的主要配置是将“ 阻尼 ”设置为0.5到1,甚至可能是“首选项”。
下面列出了完整的示k J G R A 8例。
# 亲和力0 1 q e t A /传播聚类
from numpy import unique
from numpy import where
from sklearn.datasets import make_classifd Y J :ication
from skle f farn.cluster import AffinityPropagation
from matplotlib import pyplot
# 定义数据集
X,7 y W - & E o 3 % _ = make_classi, h & ^ Qfication(n_samples=1000, n_features=2, n_informative=2, n_redundant=* d @0, n_clusters_per_class=1, random_state=4)
# 定义模型
model = AffinityPropagation(damping=0.9)
# 匹配模型
model.fit(X)
# 为每个示例分配一个集群
yhat = model.predict(X)
# 检索唯一群集
clusters = unK = f s y B q U Kique(yhat)
# 为每8 2 { B W W个群集的样本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_X b F 4 # o Eix = where(yhat == cluster)
# 创建这些样本的散布
pyplot.scatter(X, X)
# 绘制散点图
pyplot.1 m 8show()
运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集F . K h | h , q 6。然后p Z 7 z *创建一个s 9 L Q散点图,并由其指定的群集着色。在这种情况下,我无法取得良好的结果。

数据集的散点图,具有使用亲和力传播识别的聚类
4.聚合聚类
聚合聚类涉及合并示例,直到达到所需的群集数量为止。它是层次聚类方法的更广泛类的一部分,通过 AgglomerationClustering 类实现的,主要配置是“ n _ clusters ”集,这是对数据中的群集数量的估计,例如2。下面列出了完整的示例。
# 聚合聚类
from} A x numpy import unique
from numpy import where
from sklearn.data_ % D r & | Qsets import make_classification
from sklearn.cluster import AgglomeC m p n , l KrativeClustering
frU ; } eom matplotlib import pyplot
# 定义数据集
X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)
# 定义模型
model = AgglomerativeClustering(n_clusters=2)
# 模型拟合与聚类预测
yhat = model.fit_predictA S @ 2 :(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = wherP j @ me(yhat == clu{ L Q - wster)
# 创建这些样本的散布
pyplot.scatter(X, X)
#Y ` w ] C s , 绘制散点图
pyplot.show()
运行该示例符合训练数据集上的模型,并预测数| & d | f ! I O a据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,可以找到一个} N n / M合理的分组。

使用聚集聚类识别出具有聚类的数据集的散点图
5.n M u d v A O { 5BIRCH
BIRJ ` u - f a 0CH 聚类( BIRCH 是平衡迭代减少的缩写,聚类使用层次结构)包括构造一个树状结构t ` K B ^ p N !,从中提取聚类质心。
BIRCH 递增地和动态地群集传入的多维度量数据点,以尝试利用可用资源(即可用内存和时间约束)产生最佳质量的聚类。
—源k F f自:《 BIRCH :1996年大型数据库的高效数据聚类方法》
它是通过 Birch 类实现的,主要配置是“ threshold ”和“ n _ clusters ”超参数,后者提供了群集数量的估计。下面列出了C 5 5完整的示例。
# birch聚类
from numpy import unique
from numpy import whereH , | p w
from sklearn.datasets import make_classification
from sklearn.clF r { quster import BirchE . j ` ;
from matplotlib import pypl3 F i $ 3ot
# 定义数据集
X, _ = make_clao / (ssiT v = 2 , ? i r gfication(n_samples=1000, n_features=2, n_ih | $ v u Znformative=2, n_redundant=0,- 8 4 h f ~ { M n_clusters_peJ Z ! q 3 Br_class=1, random_state=4)
# 定义模型
model = Birch(threshold=0.01, n_clusters=2)
# 适配[ a ^ * ,模型
model.fit(X)
# 为每个示例分配一个集群
yhat = model.predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点U I Z $ d f 4 @ N图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = where(yhat == cluster)
# 创建c : 5 1 A q = 9这些样本的散布
pyploH B * V 6 K | %t.scatter(X, X)
# 绘制散点图
pyplot.show()
运行该示例符合训练数据集上的模型,N U u c #并预测数据集! 0 8 x i中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,可以找到一个很好的分组。

使用 Q 4 O e & aBIRCH聚类确定具有聚类的数据集的Y i o u c散点图
6.DBSCAN
DBSCAN 聚类(其中 DBSCAN 是基于密度的空间聚类的噪声应用程序l M k X B p 7 | {)涉及在域中寻找高密度区域,并将其) / I W t周围的特征空间区域扩展为群集。
…我们提出了新的聚类算法 DBSCAN 依t T C } F + r赖于基于密度的概念的集群设计,以发现任意形状的集群。DBSCAN 只需要一个输入参数,并支持用户为其确定适当的值
-源自:《基于密r B Q q b度的噪声大空间数据库聚类发现算法》,1996
它是通过 DBSCAN 类实现的,主要配置是“ eps ”和G i k“ min _ samples ”超参数。
下面列出了完整的示例。
# dbscan 聚类
from numpy import unique
from numpy import where
from sklearn.datasets import make_classification
from sklearn.cluster impD * u - % $ N ) Iort DBSCAN
from matplotli^ 3 - o O Vb i? Y *mport pyplot
# 定义数据集
X, _ = make_classification(n_samplesC x x=1000, n_features=2, n_im ~ 3 I znforr M , V { vmative=2, n_redundant=0, n_clusters_per_class=1, random_f 0 M O Vstate=4)
# 定义模型
model = DBSCAN(eps=0.30, min_samples=9)
#2 h Y } . ( # 模型拟g E 8 9 ` A合与聚类预测
yhat) 7 I 2 0 a _ p = model.fit_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建Y ? M [散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = where(yhat == cluster)
# 创建这些样本的散布
pyplot.scatter(X, X)
# 绘制散点图
pyplot.show()
运行该= X q A - p !示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,尽管需要更多的调整,但是找到了合理的分组。

使用DBSCAN集群识别出具有集群的数据集的散点图
7G X c h * . # E .K均值
K-均值聚类可以是最常见的聚类算法,并涉及向群集分配示例,以尽量减少每个群集内的方差。
本文的主要目的是描述一种基于样本将 N 维种群划分为 k 个集合的过程。这个叫做“ K-均值”的过程似乎给出了在类内方差意义上相当有效的分区。
-源自:《关于多元观测的分类和分析的一些方法》1967年。
它是通过 K-均值类实现的,要优化f } p 7 l 3的主要配置是“ n _ clusters ”超参数设置为数据中估计的群集数量。下面列出了完整的示例。
#P [ Y 5 O s { v k-means 聚T y a # B f类
from nuh # c ; K h nmpy import uni3 # g M H K 2 s Zque
from numpy import where
from sklearn.dx | j $ } y :atasets impA 7 bort make_classification
fr? K E ? z som sklearn.cluster import KMeans
from matplotlib import pyplot
# 定义数据集X : o 5 e u
X, _ = make_classificatit s . S 6 p mon(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_stat0 p Re=4)
# 定义模型
model = KMeans(n8 c % x ( j U ._clusters=2)
# 模型拟合
model.fit(X)
# 为每个示# [ @ )例} 1 X [ t + 8分配一个集群
yhat = model.predict(X)
# 检索唯一群集
clusters = uniqO * A j #ue(yhat)
# 为每个群集的样本创建散点图
fok N I | y Mr cluster in clusters:
# 获取此群集的示例的行S p 8 , b Y 索引
row_ix = where(yhat == cluster)
# 创建这些样本的散布
pyplot.scatter(X, X)
# 绘制散点图
pyplot.shz c U t cow()
运行] ^ 7 6 ^ t ! ~该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,可以找到一个合理的分组,尽管每个维度中的不等等方差使得该方法不太适合该数据集。

使用K均值聚类识别出具有聚类的数据集的散点图
8.Mini-Batch K-均值
Mini-Batc ` = a D j ! fh K-均值是 K-均值的修改版本,它使用小批量的样本而不是整个数据集对群集质心进行更新,这可以使大数据集e E o的更A ? N & : ? R新速度更快,并且可能对统计噪声更健壮。
...我们[ ; : p D =建议使用 k-均值聚类的迷你批量优化。与 5 t G ; j Y s经典批处理算法相比,这降低了计算成本的数量级,同时提供了比在线随机梯度下降更好的解决方案。
—源自:《Web-Scale K-均值n j - S e聚P t @ [ {类》2010
它是通过 Mi{ i [ 0 kniBatchKMeans 类实现的,要优化的主配置是“ n _ clusters ”超参数,设置为数据中估计的群集数量。下面列出了` # h * Y o ^ v完整的示例。
# mini-batch k均值聚类
frZ [ 6 x ! Q U 3om numpy imJ 3 y , port unique
from numpy import where
from skleaN * k r 2 , rn.datasets import make_classification
from sklearn.cluster import MiniBatchKMeans
fro( G 7 r J f V 8m matplotlib import pyplot
# 定义数据集
X, _ = make_classification(n_sampleG c l ( R P 9s=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_cla[ _ ? S _ _ F Jss=1, randomL + X I Y c E S X_state=4)
# 定义模型
model = MiniBatchKMeans(K l e ? Zn_clusters=2)
# 模型拟合
model.fit(X)
# 为每个示例分配一个集群
yhat = model.predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = whereA b z l i(yhat == cluster)
# 创建这些样本的散布
pyplot.scatter(X, X)
# 绘制散点图
pyplot.show()
运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色~ e m h R。在这种情况下,会找到与标准 K-均值算法相当的结果。

带有最小批次K均值聚类0 _ E的聚类数据集的散点图
9.均值漂移聚类
均值漂移聚类涉及3 Z y h d ] V到根据特征空间中的实例密度来寻找和调整质心。
对离散数据证明了递推平均移位程序收敛到最j x Z b m 5 e_class=1, random_state=4)
# 定义模型
model = Mea; H u o o ~nShift()
# 模型7 p $ L拟合与聚类预测
yhat = model.fit_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = where(yhat == cluster)
# 创建这些样本的散布
pyplot.scatter(X, X)
# 绘制散点图
pyplot.show()
运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建I ]一个散点图,并由其指定的群集着色。在这种情况下,可以在数据中找到一组合理的群集。
具有均值漂移聚类的聚类数据集G V o B [散点图
10.OPTICS
OPTICS 聚类( OPTk j W /Ir * + N C K V pCS 短于订购点数以标识聚类结构)是上述 DBS% $ u ) @ E D rCAN 的修改版本。
我们为聚类分析引入了一种新的算法,它不会显式g V Q m ( 5 8 p地生成一个数据集的聚类N C N n . E d 4 l;而是创建表示其基于密度的聚类结构的数据库的增强排序。此群集排序包含相当于密度- ` I = 7 2 + N聚类的信息,该信息对应于范围广泛的参数设置。
—源自:《OPTICS :排序点以标识聚类结构》,1999
它是通过 OPTICS 类实现的,主要配置是“ eps ”和“ min _ samples ”超参数。下面列出了完整的示例。
# optics聚类
from numpy import unique
f( . l _ ? k ;rom numpy import where
from sklearn.datasets import make_classification
from sklearnD 0 Q * ,.cluster import OPTICS
fro* W , 1 3 } H 7mk d B a C , 4 s V matplotlib import pyplot
# 定义数据集
X, _ = make_clD @ I y s Iassification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)
# 定义模型
model = OPTICS(eps=0.8, min_C _ M ! $ Fsamp+ p K Fles=10)
# 模型拟合与聚类预测
yhat = model.fit_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = where(yhat == clusterk m I)
# 创建这些样本的散布
pyploF r L [ :t.scatter(X, X)
# 绘制散点图
pyplot.show()运行该示例符合训练数据集上的模型,并预测数据集中每个示Z 7 n 2 k 7 i ]例? b O的群集。然后创建一个散点图O j L,并由其指定的群集着色。在这种$ ` T X ^ a Y情况下,我无法在此数据集上获得合理的结果。
使用OPTICS聚类确定具有聚类的数据集的散点图
11.光谱聚类
光谱聚类是一类通用的聚类方法,取自线性线性代数。
最近在许多领域出现的一个有希望的替代方案是使用聚类的光谱方~ 5 + f v a S法。这里,使用从点之间的距离导出的矩阵的顶部特征向量。
—源自:《关于光谱聚类:分析和算法》,2002年
它是通过 Spectral 聚类类实现的,而主要的 Spectra_ 5 P 2 0 al 聚类是一个由聚类方法M E ) @ r a j组成的通用类,取自线性线性代数。要优化的是“ n _ clusters ”超参数g C # j J,用于指定数据中的估计群集数量。下面列出了完整的示例。
# spectral clustering
from numpy import unique
from numpy import where
from sklearn.h - p D ` hdatasets import make_classification
from sklearn.cluster import SpectralClustering
from matplp g 5 fotlib import pyplot
# 定义数据集
X, _ = make_G ? Vclassification(n_samples=1000,: 8 0 I ( * 8 7 n_featureM o ` r cs=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)
# 定义模型
model = SpectralClustering(n_clusters=2)
# 模型拟合与聚类预测
yhat = model.fi, W { C H mt_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
# 获取! B P / C $ , j此群集的示例的t ^ | x ! E D p行索引q 7 ~ - l Z B P X
row_ix = where(yhat == cluster)
# 创建这些样本的散布
pj V l Wyplot.scatter(X, X)k % K 7 K V S j
# 绘制散点图
pyplot.show()运行该示+ I Q m $ B例符合训练数据Y n y集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。
在这种情况下,找到了合理的集群k K x。
使用光谱聚类聚类识别出3 X - N z * 9 R f具有聚类的数据集的散点图
12.高斯混合模型
高斯混合模型总结了一个多变量概率密度函数,顾名思义就是混合了高斯概率分布。它是通过 Gaussian MixtureN 3 0 N 类实现的,要优化的主要配置是“ n _ clu + ; art GaussianMixture
from matplotlib import pyplot
# 定义数据F } b q n K集
X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)
# 定义模型
modew 0 ! `l = GaussianMixt9 3 5ure(S L w ) Q /n_components=2)
# 模型拟合
model.fit(X)
# 为每个示例分配一个集群
yhat = model.predict(X)
# 检索唯一群集
cluster& $ hs = unique(yhat)
# 为每个群集的样7 n !本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = where(yhat == cluster)
#8 T B 创建这些样本的散布
pyplot.scatter(X, X)
# 绘制散点图
pyplot.show()
运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其n - B指定的群集着色。在这种情况下,我们可以看到群集被完美地识别。这并不奇怪,因为数据集是作为 Gaussian 的混合H @ - q G :生成的。
使用高斯混合: i / = - { t聚类识别出具有聚类的数据集的散点图
四.总结
在本教程b + ! 5 0 ] | - E中,您发现了如何在 python 中安装和使用顶级聚类算法。具体来说,你学到了:
- 聚类是在特r l | v征空间输入数据中发现自然组的无监督问题。
- 有许多不同的聚类算法,对于所有数据集没有单一的最佳方法。
- 在 scikit-learn 机器学习库的 Python 中如何实现、适合和使用顶级聚类算法。
翻_ Q ) B q w 译:未艾信息(hP ^ Uttp://www.weainfo.net/)
关注公众号:为AI呐喊(weainahan)
我们在头条上创建了一个专栏《如何通过一个项目,7小时内掌握Pthon核心编程》,欢迎大家点击链接或者阅读原文进行试看~