k-means属于无监督学习算法,无监督算法的内涵是观察无标签数据集自动发现隐藏结构和层次,在无标签数据中寻找隐藏规律。
聚类模型在数据分析当中的应用:既可以作为一个单独过程,用于寻找数据内在规律,也可以作为分类等其他分析任务的前置探索。
例如我们想探寻我们产品站内都有哪些社交行为群体,刚开始拍脑门想可能并不会很容易,这时候可以根据用户属性、行为对用户进行聚类,根据结果将每个簇定义为一类社交群体,基于这些类训练后续的分类模型,给用户打标签后进行个性化推荐、运营。
k-means算法与距离
K-means聚类的目标,是将n个观测数据点按照一定标准划分到k个聚类中,数据点根据相似度划分。每一个聚类有一个质心,质心是对聚类中所有点的位置求平均值得到的点。每个观测点属于距离它最近的质心所代表的聚类。
模型最终会选择n个观测点到所属聚类质心距离平方和(损失函数)最小的聚类方式作为模型输出。K-means聚类分析中,特征变量需要是数值变量,以便于计算距离。
我们使用距离来测量两个样本的相似性,距离的实质是他将两个具有多维特征数据的样本的比较映射成一个数字,可以通过这个数字的大小来衡量距离。
几个常见距离计算方法:
欧几里得距离-直线距离,不适合高维度数据,对某一维度大数值差异更加敏感;
曼哈顿距离-也叫出租车距离,用来标明两个点在标准坐标系上的绝对轴距总和,只计算水平或垂直距离,对某一维度大数值差异不敏感;
Hamming距离-可用来测量含有分类值的向量之间的距离;
余弦距离-通过计算两个向量的夹角余弦值来评估相似度,适用于结果与数据中特征的取值大小无关,而与不同特征之间比值有关的案例;
k-means的实质是每次都把质心移动到群内所有点的‘means’上,不是建立在距离这个基础上,而是建立在最小化方差和的基础上,方差恰好是欧几里得距离平方,如果采用其他距离但依然去最小化