自动秒收录

AI人工智能数据聚类算法


文章编号:2690 / 分类:技术教程 / 更新时间:2024-05-17 14:44:30 / 浏览:

恭喜您成为首批注册用户

以下是数据聚类的几种常用算法-

K-Means算法K均值聚类算法是众所周知的数据聚类算法之一。我们需要假设簇的数量已经是已知的。这也被称为平面聚类。它是一种迭代聚类算法。该算法需要遵循以下步骤-

第1步-需要指定所需的K个子组的数量。第2步-修复群集数量并将每个数据点随机分配到群集。换句话说,我们需要根据群集数量对数据进行分类。

在这一步中,计算聚类质心。

由于这是一种迭代算法,因此需要在每次迭代中更新K个质心的位置,直到找到全局最优值或换句话说质心到达其最佳位置。

以下代码将有助于在Python中实现K-means聚类算法。我们将使用Scikit-learn模块。

导入必需的软件包-

importmatplotlib.pyplotaspltimportseabornassns;sns.set()importnumpyasnpfromsklearn.clusterimportKMeans AI人工智能数据聚类算法

以下代码行将通过使用sklearn.dataset包中的make_blob来生成包含四个blob的二维数据集。

fromsklearn.datasets.samples_generatorimportmake_blobsX,y_true=make_blobs(n_samples=500,centers=4,cluster_std=0.40,random_state=0)

可以使用下面的代码可视化数据集-

在这里,将kmeans初始化为KMeans算法,以及多少个群集(n_clusters)所需的参数。

kmeans=KMeans(n_clusters=4)

需要用输入数据训练K-means模型。

kmeans.fit(X)y_kmeans=kmeans.predict(X)plt.scatter(X[:,0],X[:,1],c=y_kmeans,s=50,cmap='viridis')centers=kmeans.cluster_centers_

下面给出的代码将根据数据绘制和可视化机器的发现,并根据要找到的聚类数量进行拟合。

plt.scatter(centers[:,0],centers[:,1],c='black',s=200,alpha=0.5);plt.show()

得到以下结果-

它是另一种在无监督学习中使用的流行和强大的聚类算法。它不做任何假设,因此它是非参数算法。它也被称为分层聚类或均值聚类分析。以下将是该算法的基本步骤-

在下面的代码的帮助下,在Python中实现了MeanShift聚类算法。使用Scikit-learn模块。

导入必要的软件包-

importnumpyasnpfromsklearn.clusterimportMeanShiftimportmatplotlib.pyplotaspltfrommatplotlibimportstylestyle.use("ggplot")

以下代码将通过使用sklearn.dataset包中的make_blob来生成包含四个blob的二维数据集。

fromsklearn.datasets.samples_generatorimportmake_blobs

可以用下面的代码可视化数据集-

centers=[[2,2],[4,5],[3,10]]X,_=make_blobs(n_samples=500,centers=centers,cluster_std=1)plt.scatter(X[:,0],X[:,1])plt.show()

执行上面示例代码,得到以下结果-

现在,我们需要用输入数据来训练MeanShift聚类模型。

ms=MeanShift()ms.fit(X)labels=ms.labels_cluster_centers=ms.cluster_centers_

以下代码将按照输入数据打印聚类中心和预期的聚类数量-

print(cluster_centers)n_clusters_=len(np.unique(labels))print("Estimatedclusters:",n_clusters_)[[3.230050363.84771893][3.020574519.88928991]]Estimatedclusters:2

下面给出的代码将有助于根据数据绘制和可视化机器的发现,并根据要找到的聚类数量进行装配。

colors=10*['r.','g.','b.','c.','k.','y.','m.']foriinrange(len(X)):plt.plot(X[i][0],X[i][1],colors[labels[i]],markersize=10)plt.scatter(cluster_centers[:,0],cluster_centers[:,1],marker="x",color='k',s=150,linewidths=5,zorder=10)plt.show()

执行上面示例代码,得到以下结果-

现实世界的数据不是自然地组织成许多独特的群集。由于这个原因,要想象和推断推理并不容易。这就是为什么需要测量聚类性能及其质量。它可以在轮廓分析的帮助下完成。

该方法可用于通过测量群集之间的距离来检查聚类的质量。基本上,它提供了一种通过给出轮廓分数来评估像集群数量这样的参数的方法。此分数是衡量一个群集中每个点与相邻群集中的点的距离的度量。

分析轮廓分数得分范围为[-1,1]。以下是对这个分数的分析-

在本节中,我们将学习如何计算轮廓分数。

轮廓分数可以通过使用以下公式来计算-

违法和不良信息举报电话:173-0602-2364|


相关标签: AI人工智能数据聚类算法

本文地址:https://www.badfl.com/article/fa9b3d030b360ae2b65e.html

上一篇:AI人工智能自然语言处理...
下一篇:AI人工智能逻辑编程的例子...

发表评论

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.badfl.com/" target="_blank">自动秒收录</a>