肘法–度量标准,可帮助确定K均值聚类算法中的k值
在本文的本文中,我将解释有关该方法的信息,这将有助于确定k的值,该k值可用于使用K-Means聚类算法进行数据聚类。
过去,我们没有任何通过某种方式对数据进行聚类的技术。我们必须在该领域拥有丰富的知识,才能分别对它进行标记。如果您不了解要处理的域,则无法区分它们。假设您对公司有很多了解,而对公司却不了解。就像哪个公司属于哪个域。然后,将它们聚集在一起几乎是不可能完成的任务。由于公司数量太多,因此将其聚类需要很多时间。
但是如今,由于机器学习技术的发展,使用一点描述内容分析来区分公司并组成一组类似的公司是一项非常容易的任务。
无监督学习
聚类是一种用于分类的无监督机器学习技术。
无监督学习意味着没有可用于指导学习过程的特定输出。通过算法自己对数据进行探索,以找到模式并相应地提供一些输出。
K均值聚类算法
K均值聚类方法/算法在数据挖矿和分析领域中广泛用于聚类分析。用于划分n个观测值的k均值,以k为单位聚类数,其中每个观测值均属于具有最均值的聚类。
使用K-Means聚类算法,我们可以建立一些聚类。我们不必像单独地告诉算法那样制作簇。结果是,属于同一组/集群的每个数据点或观测值比其他集群/组中的观测值更相似。
K-Means使用迭代细化方法根据要查找的用户给定的簇数制作最终的簇。无论用户定义什么k值,它都会将数据分配到k个簇中。
肘法评估K均值聚类
众所周知,我们必须确定k的值。但是,确定k的值时,肘法可以帮助我们找到k的最佳值。
它使用数据点与它们各自分配的群集质心或均值之间的平方距离之和(SSE)。然后,在SSE开始变平并形成弯头的位置选择k值。
这就是该方法有助于找到k的良好值(数据集的聚类数)并有助于为给定数据集制作良好的聚类的方法。
在下面的代码中,我包括用于执行Elbow方法的代码文件,以在K-Means聚类算法中找到k的最佳值。
链接到Gist文件(肘部方法代码)-> https://gist.github.com/0d4f6e1110a1af34da888eb196e83508.git
#代码用于Elbow方法,以找出K均值聚类算法的k的最佳值。
导入pyplot作为plt
从sklearn.cluster导入KMeans
#运行Kmeans算法并获取数据点簇的索引
#sse是距离列表的平方和
sse = []
X =“清单文档集”
#k_list是我们要查找的集群之间的范围的列表
k_list = list(范围(1,10))
对于list_k中的k:
#km_model是KMeans,我们在其中定义用于拟合数据的模型
km_model = KMeans(n_clusters = k)
#使数据(X是数据集)适合km_model
km_model.fit(X)
sse.append(km_model.inertia_)
#相对于k绘制sse并找到k的值,在该值处它开始展平并像弯头一样形成角度。
plt.figure(figsize =(6,6))
plt.plot(k_list,sse,’-o’)
plt.xlabel(r’簇数* k *’)
plt.ylabel(“平方距离之和”)
这将为k提供最佳值,并且您可以获得数据的最佳聚类,它将在其中生成良好的聚类,在该聚类中,每个观察值或数据点都将为其分配最佳聚类。而且,我们不必担心随机分配k的值。
尝试使用此方法找到k的值,并检查k如何改善聚类的准确性。