K-Means

作者: 疯狂的小强_94ee | 来源:发表于2019-05-04 21:59 被阅读0次

    1 k-means介绍

    K-Means 是一种非监督学习,解决的是聚类问题。K 代表的是 K 类,Means 代表的是中心,你可以理解这个算法的本质是确定 K 类的中心点,当你找到了这些中心点,也就完成了聚类。

    那么请和我一起思考以下三个问题:

    (1) 如何确定 K 类的中心点?

    (2) 如何将其他点划分到 K 类中?

    (3) 如何区分 K-Means 与 KNN?

    2 K-Means 的工作原理

    (1) 选取 K 个点作为初始的类中心点,这些点一般都是从数据集中随机抽取的;

    (2) 将每个点分配到最近的类中心点,这样就形成了 K 个类,然后重新计算每个类的中心点;

    (3) 重复第二步,直到类不发生变化,或者你也可以设置最大迭代次数,这样即使类中心点发生变化,但是只要达到最大迭代次数就会结束。

    3 如何使用 sklearn 中的 K-Means 算法

    KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto')

    主要的参数:

    (1) n_clusters: 即 K 值,一般需要多试一些 K 值来保证更好的聚类效果。你可以随机设置一些 K值,然后选择聚类效果最好的作为最终的 K 值;

    (2) max_iter: 最大迭代次数,如果聚类很难收敛的话,设置最大迭代次数可以让我们及时得到反馈结果,否则程序运行时间会非常长;

    (3) n_init:初始化中心点的运算次数,默认是 10。

    (4) init: 即初始值选择的方式,默认是采用优化过的k-means++ 方式。

    (5) algorithm:k-means 的实现算法,有“auto” “full”“elkan”三种。一般来说建议直接用默认的"auto"。

    demo 后续补充。

    相关文章

      网友评论

          本文标题:K-Means

          本文链接:https://www.haomeiwen.com/subject/ztafoqtx.html