K-means介绍
这是写机器学习笔记以来的第一个无监督学习算法,最常见的无监督学习就是聚类,也就是将无标记的数据分成几种集群,这些集群是根据某种相似度指标进行划分的。例如欧式距离等。聚类常常被用来探索数据集,例如推荐系统,会使用聚类定位一个用户感兴趣的产品。市场营销会对相似用户进行分组等等
而K-means是最流行的聚类算法之一,由于它的速度以及稳定性广受欢迎。其中K代表的是K类,也就是聚成几类,Means代表的是中心。这个算法的本质就是确定K类的中心点,当你找到了这些中心点,也就是完成了聚类
K-means原理
k-means的原理非常简单,具体步骤如下:
- 选取k个点作为初始类的中心(图心),点是随机抽取的,sklearn可选取最优点
- 将每个点分配到离它最近的图心,形成k个类群,然后重新计算每个类的图心
- 重复第二步,直到类不发生变化,或者设置最大迭代次数,当迭代次数一到就停止迭代
Sklearn实现
引用数据分析45讲的数据集,具体数据集在这 数据集下载地址
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
import warnings
warnings.filterwarnings(