Python 回忆录
2021/07/27
非监督学习
现在有一些数据,只有特征值 没有目标值,我们对这些数据进行分类。非监督学习,对相似样本进行分类,使有相似特征的样本分在同一类里(同一个目标值)。简单来想,分成几个类 就是目标值有几种。
聚类方法
k:分成多少类,是一个超参数。
一般来说都会知道,要分成多少类,暂时不考虑会分为多少类
上图给出了一些样本,确定了k为3. 需要把这些样本分成3类。
- 第一步:随机从样本中取3个点,当做3个类别的中心点(k1,k2,k3)
- 第二步:计算样本其余点到3个中心点的距离(a,b,c)。距离哪个中心点最近,那个点就是哪个类别。分成3个族群
- 第三步:分别计算这三个族群的平均值,把3个族群的平均值与旧中心点(k1,k2,k3)比较
- 第四步:如果族群平均值和旧中心点相同,结束聚类;如果不同,就把族群平均值换为新的类别中心点,继续重复第二步到第四步
k-means API
sklearn.cluster.KMeans(n_cluster=8,init='kmeans++')
n_cluster:开始聚类中心数量,init:初始化方法
from sklearn.cluster import KMeans
import matplotlib