数据挖掘从入门到放弃(六):K-means 聚类

简介: 数据挖掘从入门到放弃(六):K-means 聚类

网络异常,图片无法展示
|

之前章节讲到的算法都是有监督学习方法, 在建模之前需要训练(样本)数据集,模型根据样本数据集的结果,训练得到某些参数,形成分类器。无监督学习没有训练数据集,在数据集上根据某种规则完成模型建立;

算法描述

所谓物以类聚-人以群分,“类”指的是具有相似性的集合,聚类是指将数据集划分为若干类,使得各个类之内的数据最为相似,而各个类之间的数据相似度差别尽可能的大。聚类分析就是以相似性为基础,在一个聚类中的模式之间比不在同一个聚类中的模式之间具有更多的相似性。对数据集进行聚类划分,属于无监督学习。


K-Means 是最常用且简单的聚类算法,最大特点是好理解,运算速度快,时间复杂度近于线性,适合挖掘大规模数据集。但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类;


K-Means 采用距离作为相似性指标,从而发现给定数据集中的 K 个类,且每个类的中心是根据类中所有数值的均值得到的,每个类的中心用聚类中心来描述。对于给定的一个(包含 n 个一维以及一维以上的数据点的)数据集 X 以及要得到的类别数量 K,选取欧式距离作为相似度指标,聚类目标是使得类的聚类平方和最小,即最小化:


网络异常,图片无法展示
|


K-Means 算法流程:


1、随机选取 K 个样本作为聚类中心;


2、计算各样本与各个聚类中心的距离;


3、将各样本回归于与之距离最近的聚类中心;


4、求各个类的样本的均值,作为新的聚类中心;


5、判定:若类中心不再发生变动或者达到迭代次数,算法结束,否则回到第二步。


西瓜数据集


from sklearn import datasets

复制代码


调参


n_clusters:整型,缺省值=8 ,生成的聚类数。


max_iter:整型,缺省值=300 ,执行一次 k-means 算法所进行的最大迭代数。


n_init:整型,缺省值=10 ,用不同的聚类中心初始化值运行算法的次数,最终解是在 inertia 意义下选出的最优结果。


init:有三个可选值:’k-means++’, ‘random’,或者传递一个 ndarray 向量,此参数指定初始化方法,默认值为 ‘k-means++’。(1)‘k-means++’ 用一种特殊的方法选定初始聚类,可加速迭代过程的收敛(2)‘random’ 随机从训练数据中选取初始质心。(3)如果传递的是一个 ndarray,则应该形如 (n_clusters, n_features) 并给出初始质心。


precompute_distances:三个可选值,‘auto’,True 或者 False,预计算距离,计算速度更快但占用更多内存。(1)‘auto’:如果 样本数乘以聚类数大于 12million 的话则不预计算距离。(2)True:总是预先计算距离。(3)False:永远不预先计算距离。


tol:float 类型,默认值= 1e-4 与 inertia 结合来确定收敛条件。


n_jobs:整形数。 指定计算所用的进程数。内部原理是同时进行 n_init 指定次数的计算。(1)若值为 -1,则用所有的 CPU 进行运算。若值为 1,则不进行并行运算。(2)若值小于-1,则用到的 CPU 数为(n_cpus + 1 + n_jobs)。因此如果 n_jobs 值为-2,则用到的 CPU 数为总 CPU 数减 1。


random_state:整型或 numpy.RandomState 类型,可选,用于初始化质心的生成器(generator)。如果值为一个整数,则确定一个 seed。此参数默认值为 numpy 的随机数生成器。


copy_x:布尔型,默认值=True,当我们 precomputing distances 时,将数据中心化会得到更准确的结果。如果把此参数值设为 True,则原始数据不会被改变。如果是 False,则会直接在原始数据上做修改并在函数返回值时将其还原。但是在计算过程中由于有对数据均值的加减运算,所以数据返回后,原始数据和计算前可能会有细小差别。

目录
相关文章
|
6月前
|
编解码 算法 数据挖掘
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
170 0
|
6月前
|
SQL 数据可视化 算法
SQL Server聚类数据挖掘信用卡客户可视化分析
SQL Server聚类数据挖掘信用卡客户可视化分析
|
3月前
|
数据采集 资源调度 算法
【数据挖掘】十大算法之K-Means K均值聚类算法
K-Means聚类算法的基本介绍,包括算法步骤、损失函数、优缺点分析以及如何优化和改进算法的方法,还提到了几种改进的K-Means算法,如K-Means++和ISODATA算法。
116 4
|
3月前
|
数据采集 自然语言处理 数据可视化
基于Python的社交媒体评论数据挖掘,使用LDA主题分析、文本聚类算法、情感分析实现
本文介绍了基于Python的社交媒体评论数据挖掘方法,使用LDA主题分析、文本聚类算法和情感分析技术,对数据进行深入分析和可视化,以揭示文本数据中的潜在主题、模式和情感倾向。
180 0
|
3月前
|
数据采集 自然语言处理 数据可视化
基于python数据挖掘在淘宝评价方面的应用与分析,技术包括kmeans聚类及情感分析、LDA主题分析
本文探讨了基于Python数据挖掘技术在淘宝评价分析中的应用,涵盖了数据采集、清洗、预处理、评论词频分析、情感分析、聚类分析以及LDA主题建模和可视化,旨在揭示淘宝客户评价中的潜在模式和情感倾向,为商家和消费者提供决策支持。
|
6月前
|
机器学习/深度学习 数据采集 搜索推荐
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像
|
6月前
|
数据采集 机器学习/深度学习 存储
MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩
MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩
|
6月前
|
数据采集 算法 搜索推荐
数据挖掘实战:基于KMeans算法对超市客户进行聚类分群
数据挖掘实战:基于KMeans算法对超市客户进行聚类分群
783 0
|
6月前
|
机器学习/深度学习 自然语言处理 数据可视化
【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类
【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类
228 2
|
6月前
|
机器学习/深度学习 存储 编解码
【数据挖掘】网格聚类STING、概念聚类COBWEB和模糊聚类的讲解(图文解释)
【数据挖掘】网格聚类STING、概念聚类COBWEB和模糊聚类的讲解(图文解释)
357 0

热门文章

最新文章

下一篇
无影云桌面