#python机器学习#K-Means聚类(算法介绍+iris实例代码)

K-Means聚类

聚类算法概念:

  聚类分析又称群分析,它是研究分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。聚类分析是由若干模式组成的,通常,模式是一个度量的向量,或者是多维空间中的一个点。聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性。
  通俗意义上,就是把一个未知分类的数据集合,根据我们的需求根据特征对其进行分类,方便我们进行批量处理和发现数据集合单元之间的相关性。
一个具有注脚的文本。1

 
K-Means算法的基本流程:
 
#python机器学习#K-Means聚类(算法介绍+iris实例代码)_第1张图片
 
 
距离计算方法介绍
闵可夫斯基距离

d i s t ( X , Y ) = ∑ ∣ x i − y i ∣ p p dist(X,Y) = \sqrt[p]{\sum|x_i-y_i|^p} dist(X,Y)=pxiyip
 
01-曼哈顿距离(当p=1)
 
d i s t ( X , Y ) = ∑ ∣ x i − y i ∣ dist(X,Y) = {\sum|x_i-y_i|} dist(X,Y)=xiyi
02-欧式距离(当p=2)
d i s t ( X , Y ) = ∑ ∣ x i − y i ∣ 2 2 dist(X,Y) = \sqrt[2]{\sum|x_i-y_i|^2} dist(X,Y)=2xiyi2

 
03-切比雪夫距离(当p=无穷大)
d i s t ( X , Y ) = max ⁡ ∑ ∣ x i − y i ∣ dist(X,Y) = \max{\sum|x_i-y_i|} dist(X,Y)=maxxiyi
 

在实际的应用过程中,选择欧式距离居多,平时我们计算两点之间的距离默认选用的也是欧式距离。

 
轮廓系数介绍
 轮廓系数是用来评估聚类效果集中程度的指标,分类越集中,轮廓越清晰,则聚类效果越好,在视觉上,表现出高内聚,低耦合的状态:
1、不同分类之间的距离大
2、同一类内部距离小

 
#python机器学习#K-Means聚类(算法介绍+iris实例代码)_第2张图片
轮廓系数计算公式:

S i l ( i ) = a i − b i m a x ( a i , b i ) \boxed{{Sil(i)= }{a_i-b_i \above {2pt} max(a_i,b_i)}} Sil(i)=max(ai,bi)aibi

K-means代码演示

## PART 01-无监督K-means聚类算法
##假设没有target的情况下,对鸢尾花数据集进行分类
#分类K值的确定:1、根据实际的业务需求进行分类;2、利用网格搜索的方法

机器学习中K-means算法函数介绍:
#sklearn.cluster.Kmeans(n_cluster=,init=)
#n_cluster:开始聚类的数量
#init:初始化的方法
#labels:默认标记的类型



##读取数据集
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris=load_iris()

##导入算法函数
from sklearn.cluster import KMeans
estimator=KMeans(n_clusters=3)
estimator.fit(iris.data)

##计算预测值
y_predict=estimator.predict(iris.data)

#模型评估
#轮廓系数,越接近1,效果越好,越接近-1,效果越差
from sklearn.metrics import silhouette_score
score_sil=silhouette_score(iris.data,y_predict)
print('该模型的轮廓系数为:',round(score_sil,2))

聚类结果:

output
该模型的轮廓系数为: 0.55

用轮廓系数评估法评估结果为0.55,介于0-1之间,说明聚类效果较好,但是还有可以优化的空间。


  1. [概念来源:百度百科] ↩︎

你可能感兴趣的:(机器学习,聚类,机器学习,算法)