Kmeans是一种无监督聚类算法。简单理解就是对于样本集选取k个中心点,迭代出每个点距离k个重点的距离,然后分配到离其最近的簇中。需要确定合适的k值,k值太大会导致模型过拟合,k值太小会导致模型欠拟合。
评价标准主要是看轮廓系数S(S∈[-1,1]),越接近1,则聚类效果越好。越接近-1则聚类效果越不好。
a为样本点到同一簇其他点的平均距离。b为样本点到不为同一个簇的其他点的平均距离
简单的K-means实现
KNN是一种有监督分类算法。简单理解就是根据周围数据比例来判断自己类别。拿下图举例,假设虚线此时K=3,实现此时K=5。当K=3时,红色比蓝色为2:3,所以绿色会被认定为蓝色类。当K=5时,红色比蓝色为6:4,所以绿色将会被认定为红色类。
这也说明K取值不同对于实验数据影响十分大。
利用sklearn库中自带的鸢尾花数据实现KNN过程