聚类属于无监督学习:训练数据中只有x没有y
聚类算法又叫无监督分类,目标是将数据划分为有意义的簇,将所有样本按照K个质心进行聚类
质心:一类坐标的平均点
聚类过程:先随机选取K个质心,根据质心生成簇,计算簇的质心,找到新的质心,直到簇与质心不在变化,聚类完成
聚类与分类:
聚类:在未知数据上进行划分,无监督
分类:已知数据进行划分,有监督
聚类使用场景:使用聚类找到同类客户,实现精准营销
聚类中使用距离衡量样本之间的相似性,簇中样本距离越小样本相似度高
kmeans中通常使用欧几里得距离,在文本处理中通常使用余弦距离
盲点:在聚类中没有损失函数的说法,损失函数只有在需要求参数的模型中使用,不求参数的模型不适用损失函数
n_clusters表示聚类的数量,是聚类中的重要参数
聚类模型评估:(主要依据实际业务)使用轮廓系数
轮廓系数:计算簇内差异与簇间差异,表示范围是[-1,1],越大说明效果越好
代码实例:
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
x,y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=1) #自己创建数据集500个数据,二维数据,具有随机性使用random_state固定数据