k-means聚类的步骤:
api:
聚类一般做在分类之前,如果数据没有目标值的时候,就需要先做聚类,再进行类别的预测
案例
利用iris的数据进行聚类
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
def kmeanscluster():
data = load_iris().data
# print(data.data.shape)
km = KMeans(n_clusters=3)
km.fit(data)
predict = km.predict(data)
print(predict)
print(load_iris().target)
plt.figure(figsize=(10, 10), dpi=80)
#建立四个颜色的列表
colored = ["orange", "green", "blue", "purple"]
color = [colored[i] for i in predict]
plt.scatter(data[:,1], data[:,2], color=color) #因为feature过多,而平面智能展示两个特征,所以随便取两个特征画图
plt.xlabel("1")
plt.ylabel("2")
plt.show()
if __name__ == "__main__":
kmeanscluster()
k-means聚类的性能评估指标
如果〖𝑠𝑐〗𝑖 小于0,说明𝑎𝑖 的平均距离大于最近的其他簇。
聚类效果不好如果〖𝑠𝑐〗𝑖 越大,说明𝑎𝑖 的平均距离小于最近的其他簇。
聚类效果好轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优
模型评估的api:
一般来说,聚类的效果很难超过0 .7
k-means聚类特点分析:采用迭代式算法,直观易懂并且非常实用
k-means聚类缺点:容易收敛到局部最优解(可采取多次随机进行聚类以减轻)、需要预先设定簇的数量(k-means++解决)