Code前端首页关于Code前端联系我们

机器学习算法:K-Means(K-means算法)| Python和r代码实现

terry 2年前 (2023-09-27) 阅读数 72 #数据结构与算法

K-Means(K-means算法)

是一种解决聚类问题的无监督算法。该过程遵循一种简单易行的方法,根据特定数量的簇(例如 k 个簇)对给定数据集进行分类。集群内的数据点对于对等组来说是同质的和异构的。

你还记得从墨迹中寻找形状吗? K 代表一些类似的活动。您可以通过观察形状和分布来破译有多少不同的簇/种群!由于

机器学习算法:K-Means(K-均值算法)|python与r语言代码实现

k - 意味着创建簇:

  1. k - 意味着为每个簇选择 K 个点,称为质心。
  2. 每个数据点与最近的质心形成一个簇,即至簇。
  3. 根据现有的簇成员找到每个簇的质心。这里我们有新的重心。
  4. 一旦我们有了新的质心,重复步骤2和3来找到每个数据点到新质心的最近距离,并将其分配给新的K个簇。重复这个过程直到收敛,即重心保持不变。

如何确定K的值:

在k-means中我们有簇,每个簇都有它的重心。簇中质心与数据点之间的差值的平方和构成该簇的平方和。此外,当所有簇的平方和相加时,它变成簇解的平方和内的和。

我们知道,随着簇数量的增加,该值不断减小,但如果绘制结果,您可以看到平方距离之和急剧下降到某个值 k,然后下降得更慢。在这里我们可以找到最佳的簇数。

机器学习算法:K-Means(K-均值算法)|python与r语言代码实现

Python代码

#Import Library
from sklearn.cluster import KMeans
#Assumed you have, X (attributes) for training data set and x_test(attributes) of test_dataset
# Create KNeighbors classifier object model 
k_means = KMeans(n_clusters=3, random_state=0)
# Train the model using the training sets and check score
model.fit(X)
#Predict Output
predicted= model.predict(x_test)

R语言代码

library(cluster)
fit <- kmeans(X, 3) # 5 cluster solution

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门