17-非监督学习-k-means聚类

2019-10-01  本文已影响0人  jxvl假装

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聚类的性能评估指标
在这里插入图片描述 显然,到其他族群的距离越大 越好,到本族群的距离越小越好

模型评估的api

在这里插入图片描述
一般来说,聚类的效果很难超过0 .7

k-means聚类特点分析:采用迭代式算法,直观易懂并且非常实用

k-means聚类缺点:容易收敛到局部最优解(可采取多次随机进行聚类以减轻)、需要预先设定簇的数量(k-means++解决)

上一篇 下一篇

猜你喜欢

热点阅读