机器学习算法:K-Means(K-means算法)| Python和r代码实现
K-Means(K-means算法)
是一种解决聚类问题的无监督算法。该过程遵循一种简单易行的方法,根据特定数量的簇(例如 k 个簇)对给定数据集进行分类。集群内的数据点对于对等组来说是同质的和异构的。
你还记得从墨迹中寻找形状吗? K 代表一些类似的活动。您可以通过观察形状和分布来破译有多少不同的簇/种群!由于
k - 意味着创建簇:
- k - 意味着为每个簇选择 K 个点,称为质心。
- 每个数据点与最近的质心形成一个簇,即至簇。
- 根据现有的簇成员找到每个簇的质心。这里我们有新的重心。
- 一旦我们有了新的质心,重复步骤2和3来找到每个数据点到新质心的最近距离,并将其分配给新的K个簇。重复这个过程直到收敛,即重心保持不变。
如何确定K的值:
在k-means中我们有簇,每个簇都有它的重心。簇中质心与数据点之间的差值的平方和构成该簇的平方和。此外,当所有簇的平方和相加时,它变成簇解的平方和内的和。
我们知道,随着簇数量的增加,该值不断减小,但如果绘制结果,您可以看到平方距离之和急剧下降到某个值 k,然后下降得更慢。在这里我们可以找到最佳的簇数。
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前端网发表,如需转载,请注明页面地址。
code前端网